#making-mods-general

1 messages · Page 398 of 1

lucid iron
#

Data layers

gray bear
#

?

lucid iron
#

Use data layers (the mod) to show accessible tiles

gray bear
#

O

hard fern
#

Oh lmao

#

There's so many places to escape

gray bear
#

qi dissaproves i'd imagine

#

i can't just make them impassble somehow right? i need to like, change them

tiny zealot
#

the Buildings layer blocks passage, so you can just put the same tile (or a blank one) on that layer

gray bear
#

cheating,,, i like it

autumn tide
#

hey! I'm trying to make a dialouge mod, how would one make it so that there were multiple possible dialouge options for one prompt? (I'm aware of the $c thing btw, but it's too restrictive) like for example, instead of having one ipossible line for the key "spring_1", i could have multiple responses.
not sure if I put it right, I can explain further if I was unclear!

gray bear
#

well not tech but hey

#

random dialouge?

tiny zealot
#

if you're not using tools the game itself is aware of (like $c), then you can randomize the value of the key by using one of the layers available to you before the game sees it: CP's Random token and/or i18n

autumn tide
#

is there a resource that explains those? I'm very new to this lol

tiny zealot
gray bear
#

was just gonna ask where random is in docs

tiny zealot
gray bear
#

ichor too quick

autumn tide
#

Thanks! I've genulinely got no clue what I'm doing lol, just mimicking a random dialouge mod using the wiki as a source

tiny zealot
#

fake it till you make it, as they say

gray bear
#

if you need any specific help with something feel free to come back

#

im going to check if my map is escapable now... 😭

autumn tide
gray bear
#

uhm,, i have earthy enabled

autumn tide
gray bear
#

oh i elft

#

the tilesheets in

#

yeah that checks

gray bear
#

-# don't ping me in reply please

#

never do this map makers. this just leads to recolor incomp

#

thoughts on the map?

blissful panther
#

I think it looks really nice!

lucid iron
#

I think you can still chair out through diagonals

gray bear
lucid iron
#

But that's a Feature so dw about it

blissful panther
#

Yeah, I would put a secret somewhere if you did that or something. Could be fun!

autumn tide
tiny zealot
#

chair clipping is sacred, to me

gray bear
#

using a chair hard

lucid iron
#

Claude this is a summit replace

gentle rose
#

chair clipping?

lucid iron
#

It's gonna have a bg bc it summit

gray bear
#

it will have bg b_nod

lucid iron
#

You should try it in your perfection save

autumn tide
#

oh crap

gray bear
#

nw

autumn tide
#

heh sorry forgot it was an addition/overlay

gray bear
#

iz alright pats

lucid iron
#

(but if u wish for a panorama bg on custom maps i got just the thing order now from 1-800-mmap)

tiny zealot
gray bear
#

now to test with my 280+ mods

oblique meadow
#

Silly question all - wondering if anyone else has seen this issue. I added Mahogany seeds to my FTM foragables... and players cant pick them up. They just... sit there.

gentle rose
#

oh yeah I was missing the placing part lmao

oblique meadow
#

Everything else works fine

lucid iron
#

That's a base game quick yeah

#

Does ftm let you add trees instead? Or stump?

gray bear
#

i don't need to load my map if i'm just replacing it right

oblique meadow
#

I can add stumps. Yeah

lucid iron
tiny zealot
#

\ (ed: please forgive this. a rare cat intrusion)

lucid iron
#

Oop @

oblique meadow
#

ok. So I should replace the mahogany seeds. Simple enough.

gentle rose
gray bear
#

kewl. there isn't some kinda unknown when condition to make the map change only when the player reached perfection

#

or is there

lucid iron
#

There's mailflag right

tiny zealot
oblique meadow
#

Hey that's offensive to those of us who are likely (arguably) dumber than your cat....

gentle rose
oblique meadow
#

and can still code

lucid iron
#

I think he can do a harmony skipping prefix, as a treat

gray bear
gentle rose
#

if chatgpt can occasionally accidentally give code that compiles, so can he

gray bear
#

right how do i use this

lucid iron
#

When HasFlag

tiny zealot
#

"HasFlag|contains=Farm_Eternal": true

gray bear
#

i was so close

#

ty

tiny zealot
#

you can also just do "HasFlag": "Farm_Eternal" if it's your only one but i am in the habit of just doing contains every time

oblique meadow
gray bear
#

for multiplayer?

oblique meadow
#

i dont know. Im remembering what I read on the wiki and has worked for me. So im not sure about nuance

uncut viper
#

you don't have to specify

uncut viper
#

it defaults to current player

royal stump
gray bear
#

seed bug

royal stump
#

you can pick them up by hitting them with a pickaxe, but not ideal

gray bear
#

see how would i publish this mod, is in itself is a spoiler

royal stump
#

(and requires you to click past them, it won't swing if clicked directly, misconfigured items tend to do that)

gray bear
#

no glaring red errors c_party

oblique meadow
gray bear
#

welp, i have rtf

#

don't know if this happens if you install the mod without reaching the summit

#

or how i;d adress that

#

quite nice :3

#

ignore my skirt being in front that's fs

#

or not

#

whyyyyy

#

i didn't touch the bench

#

is it just not tall enough for some of the sitting animations

gentle rose
#

wait, is there a missing tile when you load it into the game?

gray bear
#

missing tile?

#

dun think so

gentle rose
#

mind if I circle it?

gray bear
#

sure

#

do u,, need the files

gentle rose
gray bear
#

fuck

oblique meadow
#

That's where you go when you need peace after taking the time to get perfection. Stand there and jump

gray bear
#

tis unpassable

#

to be fair to myself this is a tile

#

it's just like, a mistake

#

reminds me of myself atm

#

i didn't change the map dimesions or anything so perfection scene should be fine?? can i like, trigger it

tiny zealot
#

you can't ebi it, since it's built in code when needed and isn't in the data files

#

if you remove the mailflag Summit_event and set the flag Farm_Eternal, then enter the summit, it should play

gray bear
#

i have perfection so should be fine. do i use my mod to remove it? how

tiny zealot
#

debug seenmail Summit_event false will remove a flag (in this case, Summit_event)

gray bear
#

alright lettuce try

calm nebula
#

Instead of certain things being "this tile index on this tilesheet", making them Actions instead

gray bear
lucid iron
#

Shane's indoors

hard fern
#

Indoors shane....

gray bear
#

shane is more of an outdoors boyfriend

lucid iron
#

Hm I didn't realize there's like, a line there

gray bear
#

yeah,,,

lucid iron
gray bear
#

there's prolly a mod to edit the sky

uncut viper
#

you shouldn't have an outdoors boyfriend. you should always keep your cats boyfriends indoors because otherwise they're kinda environmentally destructive

lucid iron
#

Is that supposed to be the horizon

gray bear
#

prolly. is too harsh

#

since im here, how would i fix it

lucid iron
#

C#

gray bear
#

nvm

#

sky is fine

lucid iron
#

In the mmap panorama thing I didn't implement this line and just let the gradient stretch

gray bear
#

oh it's meant to be water

#

i think

uncut viper
#

yeah it always read to me as an ocean view

gray bear
#

see uhm

#

fall no have the sun

lucid iron
#

Yeah ig i should do option

#

I don't think that sun exists in game

gray bear
#

or is that not in the perfection event

hard fern
gray bear
#

yes

hard fern
#

Well thats probably why it looks funny

gray bear
#

oh can i like

#

edit the config to fix

hard fern
#

It's not taking the ocean horizon into account

#

Like it just edits the sky

gray bear
#

buh

royal stump
# oblique meadow Well Im glad I accidentally helped. I was trying to fix it myself and was gettin...

Followup in case it helps: Any objects with "Type": "Crafting" or "interactive" in their Data/Objects entry will probably have that pickup issue. You can work around it by spawning them with FTM's "item" category, e.g. like this:

"SpringItemIndex": [
  {"Category": "Item", "Name": "Mahogany Seed"}
],```
(I've found the code causing the issue and I'll see about fixing it in future updates, but it may take a while due to ongoing reworks)
PS: Items spawned this way will expire overnight by default, so I'd recommend using `"DaysUntilSpawnsExpire"` to keep them around longer (e.g. `"DaysUntilSpawnsExpire": 0` to make them permanent)
hard fern
#

And the mountains and... Stuff

gray bear
#

stuff

#

#nevergonnagiveyouup

#

perhaps i simply yeet CMB

#

oh wait

#

event with spouse is fine but... after ||it just kinda pans up and the map no longer shows||

#

i kept og map for nothing

tiny zealot
#

i went to check this and debug perfection gives you all the things required for perfection but does not set the flag (or the other flag). to get those you have to sleep a day; then in the morning you can go to the summit

gray bear
#

o

#

cool

#

if i have no spouse will it be sir qi

calm nebula
#

Hi DH!

#

Long time no see

tiny zealot
gray bear
#

does perfection finish the cc

lucid iron
#

Well u need it to unlock ginger island

abstract gull
#

Alguém pode me ajudar nisso por favor
O meu SMAPI não funciona no meu celular
Já baixei nova versão dele
Mas não funciona no meu celular e 32 bits
Não consegui achar um SMAPI que funciona no meu celular

lucid iron
#

I can't read this but 32 bit and SMAPI don't work

gray bear
#

yeah but does it do it via normal means or joja

lucid iron
#

Bea you need to have CC to get perfection

gray bear
#

i know. i'd assume using the command gets me lewis

#

(u can also complete cc by joja)

calm nebula
#

Normally yeah but with cheats and mods you're capable of doing anything

#

Also you're perfect the way you are

tiny zealot
#
            public static void Perfection(string[] command, IGameLogger log)
            {
                Game1.game1.parseDebugInput("CompleteCc", log);```
so the first thing it does is whatever `debug completecc` does
gray bear
#

i was not expecting atra praise

#

am grateful

gray bear
royal stump
#

debug perfection might still have issue with certain custom NPCs, but in general, that + sleeping once should work & avoid the qi cheat thing

#

(last I checked, the command missed conditionally social NPCs in particular, e.g. someone in SVE)

#

maybe NPCs with unlock conditions too, since it manually spawns Kent/etc to cover the base game

#

also yeah, it completes every bundle in the CC and remodels the place, afaict

calm nebula
#

Lol it misses dwarf

royal stump
#

it does befriend dwarf in testing, they exist and count as social from the start & ig the language thing doesn't affect it it gives you the translation book

gray bear
#

went before making it official to see if me patch works

royal stump
#

not sure if friendAll works without the full perf command tho

gray bear
#

oh no,, i've got 100 scenes to get trought in my home

royal stump
#

okay yeah, friendAll reveals dwarf on its own but doesn't befriend them SDVpufferpensive

gray bear
#

how dare it, he is friend shaped

#

do you only get the flag when you get the achievment

#

i want it to work when you reach the summit

#

heck

lucid iron
#

What if qi just kicks u off in lush foresty summit

gray bear
#

yeah don't really need the when condition

#

oh well

#

i do wonder if the forest itself loads,,

#

tree might require new save

lucid iron
#

Yeah that's the downside of paths trees

gray bear
#

suppose i could make this for new saves and another one with pre-planted onces for ongoing ones

#

i can't use betas to make them spawn in right

#

or can i

#

still no su though

uncut viper
#

BETAS is for destructive uses of terrain features only, it cannot create

gray bear
#

was worth a shot. thanks button

#

seriously should there be a sun

#

why no sun peepoFangs

#

farmer can do this

#

this is a feature

gray bear
#

wait u told me ebfore it is

hot gale
#

lol this is so much harder than I ever anticipated

gray bear
#

spin

lucid iron
gray bear
#

i'll give that a go

lucid iron
#

Try with the built-in island panorama first

#

That one is obviously different

gray bear
#

try to edit it?

#

where is it sweats

lucid iron
#

You need to add the customfield to the location data

#

But honestly it's a long shot, I'll test it myself later and tell u how goes

gray bear
#

thank you chu SDVpufferheart

hot gale
#

Interesting that everything has 3 views because they just mirror the right facing, except shirts. They have all 4 frames drawn manually.. wonder why they didnt just mirror the shirts like everything else

#

I guess because the shirts are asymmetrical huh

fossil osprey
#

I guess it's because the animations of the arms aren't the same when the farmer is facing left vs right, so shirts would need all 4 directions drawn

hot gale
#

I dont think the shirts actually interact with the arms in the sprite, do they? It seems they just overlay the 8x8 area on the chest of the farmer

fossil osprey
#

Some do iirc? Definitely not all of them

hot gale
#

I know fashon sense has a ton of big sleeves

calm nebula
#

Oh fuck sleeves

#

King Kai, the game mutates specifc pixels on the farmer for sleeves based on three pixels on the shirt

hot gale
#

omg what

#

Im seriously considering not using humans for my mod, trying to recreate farmer construction is proving to be way more difficult than I anticipated

fading walrus
#

Reject humanity embrace goos

hot gale
#

My original idea was to use Junimos, but I got ambitious and wanted randomized humans so I thought of trying to recreate the construction of the farmer, and using the randomization function from character creation

#

Wanted the town to really feel alive

tiny zealot
hot gale
#

Wish I had known how cursed it was beforehand 😅

obtuse wigeon
hot gale
hard fern
#

terrifying

hot gale
#

About to throw in the towel on human NPCs 🤣

violet valley
#

If I am trying to modify an existing event with the Load action, what do I put for the target?

patent lanceBOT
calm nebula
tiny zealot
violet valley
calm nebula
#

Tbh I'm surprised i only say "fuck farmerrender" once in this chat

#

Well

#

Twice now

violet valley
#

ok. and I could modify an existing event with it?

hot gale
#

Really a huge bummer how cursed FarmerRender is

#

Should have been real easy for me to stitch up random NPCs

violet valley
urban patrol
#

yes, if your patch occurs after the other mod adds their event

violet valley
#

i dont really understand how to EDIT an existed event with EditData

urban patrol
#

you would just make your key under "Entries" be the id of whatever event you want to edit

oblique meadow
#

Dear content patcher. Please give me the ability to have my mods auto water and auto fertilize without having to learn how to do it in C# kthx

violet valley
#

and that would directly edit it?

urban patrol
#

it's the same as adding except you don't have to load a blank first

violet valley
#

oh

urban patrol
#

that would replace the entire event with whatever you write there

violet valley
#

ok nice thats what i wanted

urban patrol
#

do keep in mind the etiquette of handling other people's NPCs and characterizations and stuff, but yeah technically speaking it's simple

lucid iron
oblique meadow
hot gale
#

Maybe dwarves instead of junimos O.o

oblique meadow
#

I’ll take a look. I am trying to add an auto water feature to my greenhouse. So if that works I’ll be happy

oblique meadow
hot gale
#

Dust sprites? haha

#

oh I misread

#

lmao

#

Doy

#

nope, misread the second time? been staring at code too long.. I know what you meant rofl

#

Dust sprites are cute... hmmmm

oblique meadow
#

Haha. The number of times people in modded farmers talk about wanting dust sprites this or that…..

hot gale
#

I was going to have human sized buildings for the mod, junimos or dusts will change that completely

#

I might roll with dwarves tbh, they atleast seem like they could live in a house

lucid iron
#

I think you should probably focus on the mechanical parts

hot gale
#

I have a lot of the mechanical parts done, I am just hanging myself up on this tbh

#

I should move on

violet valley
lucid iron
#

Re shirt sleeves

#

You need to dynamically recolor the arms if you want base game logic

#

But you can also slacc n just draw those (in exchange for not being able to use the vanilla shirts spritesheet)

urban patrol
violet valley
urban patrol
#

these are two separate mods, both by you? is either a dependency of the other?

violet valley
#

no it is 1 mod by me

hot gale
#

I think drawing randomized human beings is more hassle than it is worth right now

urban patrol
#

okay then yes a config option would work

lucid iron
#

Draw like, grab the arms and hueshift em ahead of time Dokkan

violet valley
urban patrol
#

you would need two patches for Data/Events/wherever though

violet valley
#

in the same file or 2 seperate ones?

urban patrol
#

explain to me the two config options so i know what you're trying to do better

violet valley
#

No it is one config option, that when enabled it allows you to skip the quest events in my mod

#

By skipping I mean like having the skip button when enabled

urban patrol
#

to simplify things, why not just always have the skip button enabled? that way players can choose to skip if they want to, no need for a config

#

and if they don't want to skip the events then they don't click the skip button

violet valley
#

SDVpuffersquee sure

urban patrol
#

just trying to save you work haha

violet valley
#

Haha yeah, that would probably be better anyways, its what the base game + mods usually do

urban patrol
#

exactly

violet valley
obtuse wigeon
#

Trying to replace the catagory on a Crystalarium using Calcifer:

"21": {
    "CustomFields": {
        "sophie.Calcifer/Category": "{{i18n: Machines.category}}"
    }   
},

However I'm getting this error:

[Content Patcher] Can't apply data patch "(CP) Auto-Sorter Building > Include Utils/UtilsLoader.json > Include Utils/BCCatOverride.json > Califer Catagory Overrides for machines" to Data/Objects: there's no record matching key '21' under Fields.

I know for a fact Calcifer uses unqualified IDs cause that's what the other re-categorised items used, 21 should point to Crystalarium right? It's also occured for many other big craftables, however other big craftables have been re-categorised sucessfully

#

They're in another location, Data/BigCraftables, that's not annoying at all🤦

hallow prism
#

yeah all the big craftables are in another json than the objects

#

does someone happens what happens if you have a gift taste reveal in a dialogue for a yet non social character?

hard fern
#

like for a character who is hidden in the social menu that the player hasn't met yet?

hallow prism
#

yes, or with a GSQ not yet true for the socializing part

uncut viper
#

seems like it'll still add it to the list of gifted items for a specific character, but as far as i can tell that only really would be visible on the social menu, so if theyre not on the social menu then it doesnt matter
i didnt see anywhere that itd stop itself if the character was unsocialiable but there is a possibility i missed it

jovial ginkgo
#

so, i have a question... i've often seen mods around that add new items to stores, but is there a way to remove an item from a store?

uncut viper
#

you can set its entry in the Items list to null with Content Patcher, and that will remove it

jovial ginkgo
#

oh okay, good to know

uncut viper
#

can also set its sale condition to "FALSE" too which will make it never show up, which may not be a bad idea to prevent other mods that edit that entry from giving warnings in the log bc the item no longer exists

jovial ginkgo
#

ah, that's good!

hot gale
#

Well that was much easier

hallow prism
#

if it's your item, you can also set a flag on buying it

#

and then use this flag as condition to not be present for the item to show

violet valley
#

is there a game state query to check if one of certain mod's config options is enabled/disabled? (i know there is the When condition, but im looking for a gsq)

urban patrol
#

is it your own mod's config option?

#

and what do you need the GSQ for

violet valley
#

it is my own, and I need the gsq for making a custom Central Station tourist conditionally spawn (idk if you can use when conditions on central station tourists, but if you can that will solve my problem)

hallow prism
#

you can use tokens in GSQ

violet valley
#

oh XD

hallow prism
#

so if your token can be read as true/false it's useable directly in a GSQ

urban patrol
uncut viper
#

and all tokens can be made to read true/false if you add the |contains= part

hallow prism
#

(thanks nic for the proper documentation!)

uncut viper
#

if it doesnt read as true/false to begin with

hallow prism
#

oh yeah good point

violet valley
#

Ok good to know

uncut viper
#

also, When conditions can be placed on literally any patch. though ofc you'd need to look at CS's documentation to see if it specifically says they should not be conditional

#

(but i doubt it)

violet valley
#

doubt what?

uncut viper
#

i doubt they cannot be conditionally patched in

violet valley
#

oh

#

SDVpufferclueless i'm kinda confused, so should I just use a When condition?

uncut viper
#

if CS supports GSQs in conditions you should use those. i was only saying it so you'd know that there is no need to wonder if any specific mod supports When conditions. its not decided on a per-mod basis. its a content patcher feature

violet valley
#

ok. lol im a bit new to GSQs, how would I check if a config is toggled with GSQs?

urban patrol
#

use the contains format that button mentioned

#

like in the screenshot i sent

violet valley
#

I know but how with that SDVpuffersquee

urban patrol
#

i can't format it for you without knowing your config options or where you're trying to use the GSQ

#

try writing something out yourself and feel free to send it here to be checked

violet valley
#

Ok. I gtg, I'll be back in like 30 mins, can I ping you then?

urban patrol
#

sure but i might not be around

violet valley
#

Ok

obtuse wigeon
#

I'm trying to replace the category for seeds from a mod called Alchemistry however I can't seem to figure out why this isn't changing the category, it works on vanilla seeds and I have the mod as a soft dependancy, I think I have the seed ID correct:

{
    "LogName": "Califer Catagory Overrides for Alchemistry seeds",
    "Action": "EditData",
    "Target": "Data/Objects",
    "Fields": {
        //Spring Seeds
        "Morghoula.AlchemistryCP_AddersTongueSeeds": {
            "CustomFields": {
                "sophie.Calcifer/Category": "{{i18n: SpringSeeds.category}}"
            }
        },
    },
    // "When": {
    //     "HasMod": "Morghoula.AlchemistryCP"
    // }
},
lucid iron
#

calcifer has categories?

obtuse wigeon
#

Category overrides yep!

lucid iron
#

is it released?

obtuse wigeon
#

My mod? or calcifer? Calcifer is released, but this is an update to my released mod

lucid iron
#

no i mean, is calcifer nexus on the version that has this feature yggy

#

ppl typically use spacecore for this afaik

uncut viper
#

(this may or may not be relevant to you or the issue, but the way you currently have your json set up is overwriting the entire CustomFields dictionary)

obtuse wigeon
#

There's not much documentation reguarding Calcifer but it's being work on, oh and yes it does have this feature, I know for certain cause Another mod uses it

uncut viper
obtuse wigeon
uncut viper
#

you'll need to use TargetField to drill down into the CustomFields part

lucid iron
#

ok i decompiled to double check it is there SDVpufferthumbsup

uncut viper
#

why decompile, the source is available

lucid iron
#

the reason why i was worried is cus, last time i told someone calcifer has stats token

uncut viper
#

its in their docs

obtuse wigeon
lucid iron
#

but soph correct me that it's not there on nexus version

#

hence decompile to make sure it's in the released version

uncut viper
#

this is the first i heard of its stat token as well, its amusing to me that unlike the EMP stat token, it does go through the effort of checking whether or not anything changed in its UpdateContext function, but like EMP, it does not matter bc it will return true practically always anyway

lucid iron
#

anyways back to your problem do u have spacecore too? maybe its getting bonked

uncut viper
#

both spacecore and calcifer just prefix skip Object.getCategoryName

lucid iron
#

oof

obtuse wigeon
#

With using TargetField do I have to have seperate "Action" sections?

uncut viper
#

well actually, let me double check spacecore, it might be a postfix

lucid iron
#

yea you do

obtuse wigeon
#

I do have spaceCore but it isn't interacting with the catagory, I'm adding support for if a user has either of them, Calcifer or SpaceCore

uncut viper
#

ok yeah spacecore is a postfix, but it only works if its in ObjectExtensionData anyway

lucid iron
#

yea ok not that problem then

obtuse wigeon
uncut viper
#

so SpaceCore will override Calcifer if the user provides both but spacecore wouldnt be removing calcifer if not

lucid iron
#

well if u wanna use Fields then you should use sc version of this feature

#

but hrm

uncut viper
#

they wanna support both

lucid iron
#

i guess you'd have to init the asset too so it's kinda annoying kyuuchan_run

uncut viper
#

wdym init it

#

im pretty sure just using Fields and providing the itemid will create it if it does not exist already

#

and if it does exist itll just edit the one field

lucid iron
#

i thought it had to have an entry

obtuse wigeon
#

I do want to support both as a soft dependancy, and only if a config option is enabled, everything works, except modded seeds and the fact I'm overwriting the "CustomFields"

uncut viper
#

an entry does not need to already exist, one will just be created with default values

lucid iron
#

hm ok DokkanStare

#

idk why it no work for me in past but i prob just did smth else wrong

uncut viper
#

at least, this is what i was told and iirc what i recall successfully testing with CMF

lucid iron
#

or maybe im conflating targetfields behavior with fields

#

anyways atlas it does look like u r put in right data

#

do usual sanity check things like patch export ig blobcatgooglyblep

#

harmony summary and check for getCategoryName if u wanna be extra sure

obtuse wigeon
#

I seem to have forgotten how patch export works

patch export AtlasV.AutoSorterBuilding
[Content Patcher] Couldn't load asset 'AtlasV.AutoSorterBuilding' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.

Patch reload works with that ID

lucid iron
#

you need to put the asset name, Data/Objects

obtuse wigeon
#

Whoops, thank you

#

comes back with "CustomFields": null

#

It's being included correctly bc vanilla seed cat overrides are in the same json and they're present

lucid iron
#

patch summary then

#

Or maybe something else affecting?

obtuse wigeon
#

it's applied the old seed cat override json and not the new one? shouldn't "patch reload <PatchName>" invalidate those and reload the new ones?

#

omg

#

I'm in the wrong folder

#

I've been restructuring things for over an hour thinking that it's working because I get no errors

lucid iron
#

Sanity checks SDVpufferthumbsup

obtuse wigeon
#

Thank you for helping me figure that out, turns out I'm pretty good at restructuring too because I only had 1 error, Target path was wrong

lucid iron
#

@inland rain hello I am making a mod called Have More Kids that changes the childbirth system and I'm looking into adding support for free love.
Looking at Pregnancy.cs here I believe my custom night event replacing which happens in this postfix gets bonked by the skipping prefix in free love. There's a few things I can do:

  • I send in PR to have free love do no pregnancy changes when have more kids is installed, and use free love api on my end to handle picking a spouse to get pregnant
  • I send in PR to have free love call have more kids api that I'll make up for this
  • I do some reflection/harmony nonsense
    What do you prefer Bolb
wanton pebble
#

Is there a specific way to write "When the game is in multiplayer" in Content Patcher?

lucid iron
#

i don't believe so, what is the context

wanton pebble
#

Finally getting to the bugfix for DNR's Winter Star date bug where switchevent doesn't work in cabin

#

trying to only load Data/Events/Cabin when the player is in multiplayer mode

#

The actual patch ins I can do easily - just patch them when "IsMainPlayer" is false

#

But I need the load to probably happen on main player as well with 2+

lucid iron
#

if there's no Cabin doesn't it not load regardless NotteThink

#

or do you specifically want it to load only on the host

wanton pebble
#

I want it to load on everyone in multiplayer, but if the game is singleplayer, not load it at all

lucid iron
#

but if there's no Cabin location in the world then the patch never applies right

wanton pebble
#

Wouldn't it throw a (user-facing) error?

calm nebula
#

No

lucid iron
#

anyways i know theres gsq IS_MULTIPLAYER

#

could to the ol condition a mail flag on it trick

#

i just dont really think u need to blobcatgooglyblep

wanton pebble
#

Nah, if atra's saying it wouldn't throw an error then you're correct chu

#

I can just load it regardless, no issue, and then just patch in if "IsMainPlayer" is false

lucid iron
#

well im glad atra is here to vouch for me kyuuchan_run

wanton pebble
#

And it'll work for iterative testing, too. If I have to change things for the Winter Star date then I can leave the regular date for the person in the farmhouse, but patch a different date end for the farmhands

#

Thank you both of you

lucid iron
#

to elaborate more on never applies, an asset like Data/Events/<event location> won't actually load for real until something requests it, usually in C#

calm nebula
#

I'm also very dumb so

lucid iron
#

which could be an informational mod like event lookup ofc

calm nebula
#

I mean wouldn't it be a fork?

#

And therefore never accessed regardless

lucid iron
#

but since it is an events asset it shouldnt do anything until you go to <event location>

calm nebula
#

(You can make cables in single player(

wanton pebble
#

true. The fork would fork properly and never require Data/Events/Cabin and the IsMainPlayer stops the Data/Events/Cabin EditData

wanton pebble
lucid iron
#

yea im not sure how you'd like

#

prevent another player from activating the cabin event blobcatgooglyblep

wanton pebble
#

sorry, my singleplayer vanilla farm*

lucid iron
#

hopefully bein married is sufficient

#

(as an event precond i mean)

calm nebula
#

I think the Farmhouse data asset for events will only trigger an event for the player's house

inland rain
#

nvm it's complicated :/

lucid iron
#

Ok i send in some kinda PR then AquaThumbsup

#

I think first option is probably easiest, and I'll populate the same npc parent moddata field on my side

inner pier
#

Hello - does anyone have familiarty with the BETAS framework? I'm hoping to make myself a dirty update for a mod that uses Stats as Tokens (currently outdated).

lucid iron
#

you don't need BETAS to read stats

obtuse wigeon
#

It seems Content Patcher isn't detecting something in Data/Objects or I haven't done this right, I'm getting this error:

[Content Patcher] Can't apply data patch "(CP) Auto-Sorter Building > Include Utils/UtilsLoader.json > Include Utils/Calcifer/AA_CalciferLoader.json > Include Utils/Calcifer/Seeds.json > Califer Catagory Overrides for Alchemistry seeds" to Data/Objects: the field 'Morghoula.AlchemistryCP_AddersTongueSeeds' doesn't match an existing target

With this code:

{
    "LogName": "Califer Catagory Overrides for Alchemistry seeds",
    "Action": "EditData",
    "Target": "Data/Objects",
    "TargetField": ["Morghoula.AlchemistryCP_AddersTongueSeeds", "CustomFields"],
    "Entries": {
        //Spring Seeds
        "sophie.Calcifer/Category": "{{i18n: SpringSeeds.category}}"
    },
    "When": {
        "HasMod": "Morghoula.AlchemistryCP"
    }
},

Morghoula.AlchemistryCP_AddersTongueSeeds Does exist in Data/Objects as I'm actively looking at the patch export

lucid iron
#

but if you specifically wanted them as CP tokens, use EMP

inner pier
#

Oooo

#

Thank you

brittle pasture
obtuse wigeon
#

I did

inland rain
#

I do that a lot

#

it's an enumerator though, so a bit tricky to catch

lucid iron
#

this seems worse than me just patching the relevant free love methods with a skip prefix

inland rain
#

transpilers are always better 😄

#

transpilers are the least invasive, very precise

uncut viper
#

and very easy to break, when a skipping prefix is not always the worst choice

inland rain
#

if they break, you update your mod

#

if they break, it just means they don't run

lucid iron
#

but since u r active instead of invasion we should do diplomacy SDVpuffersquee

uncut viper
#

well, yeah? thats what makes them broken lol

inner pier
# lucid iron you don't need BETAS to read stats

Also, does what you said mean that the game engine has tokens available for a lot of the local player's stats? I could just edit a content.json to the game's reference for those stats and then I wouldn't need "Stats as Tokens" or some framework like that?

uncut viper
#

if a transpiler doesnt run thats pretty detrimental to a mod

inland rain
#

well, it shouldn't run if the code has changed

lucid iron
#

so stats is just a look up from some string to some number

uncut viper
#

also a skipping prefix is less likely to need an android specific patch

lucid iron
#

game uses em to count stuff, and mods can add stats

#

the native game way to check stat is a game state query called PLAYER_STAT

#

this you can use in various things that check gsq, for example shop item

inland rain
#

a skipping prefix is the most ham-handed solution

#

I'm not sure I can avoid it here though

inner pier
#

Does the game natively record how much of each monster slain / fish caught / itesm foraged / seeds planted / crops gathered / rocks broken

brittle pasture
#

skipping prefixes are overhated ngl, unless it's one of those that reimplement the entire base function because the author can't/don't want to use transpilers

uncut viper
#

the Game State Queries wiki page has a list of stats the game uses

#

in the docs for PLAYER_STAT

#

it isnt 100% exhaustive but iirc includes all the ones that have props to begin with in Stats.cs

inner pier
#

Ohh it is THE buttons

lucid mulch
#

Skipping prefixes are good for "do something else and never run original"
bad if its "copy paste original make 1 line change, skip original"

inner pier
#

Okay ty

inland rain
#

yeah that's true

uncut viper
#

i am button yes hello SDVpuffersalute

inner pier
#

I'm just trying to make myself a dirty update of the mod New Year's Eve to where it will run without Stats as Tokens

inland rain
#

i use skipping prefixes usually if it's a very specific case that needs to be done differently / skipped

inner pier
#

There content.json isn't complex, it's brute force for calling a lot of the player's info for the scene

inland rain
#

FreeLove is just messy though... much messier than I originally thought it would be going in

uncut viper
#

(also i think a postfix is by definition the least invasive)

lucid iron
#

well in Pregnancy.cs case in particular, if you had a postfix there i'd just swap out the event type at the end yea

uncut viper
#

(i hope everyone can at least agree that if you can do it in a postfix, do it in a postfix)

lucid mulch
#

(finalizer)

lucid iron
#

but i'd need to reflect into free love to get the picked spouse in that case

uncut viper
#

i forget finalizers exist, but dont they not always run in some cases?

inland rain
uncut viper
#

harmony ones specifically

lucid mulch
#

though I probably want people to stay in the postfix box so their stack traces get marked

lucid iron
#

harmonymethod after

uncut viper
#

Harmony can set priorities

inland rain
#

I thought priorities only work for internal priority

uncut viper
#

both by int like SMAPI or by specifying someone elses harmony id

inland rain
#

never got it to work across instances

lucid iron
#

that said there's also differences in when spouse is allowed to get pregnant

lucid mulch
#

afaik finalizers always run no matter what, importantly regardless if an exception happened or not

lucid mulch
#

in my profiler beta builds I switched profiler to exclusively use finalizers instead of postfixes for its tracking and seems to have been a bit more reliable.

uncut viper
#

(i didnt know thats how you did that kind of priority without annotations, very handy to know)

lucid iron
#

would you, automagic enjoyer, use manual patching though

uncut viper
#

sometimes i have to, unless i want to add dumb edge cases to my automagic

#

my automagic would fail if it was trying to patch a mod that wasnt installed, for example

#

b asically any time i want to conditionally patch i do use manual patching

inland rain
lucid iron
#

i still need access to which spouse actually got picked tho

#

i can just reflection that but adding api prob better

#

the max number of kids is also decided differently, pure config option vs # of defined unique kids for the mod

inland rain
#

yeah lastPregnantSpouse is a static field you could access

inner pier
#

Sorry to bother again, just wanted to check if I'm on the right course

#

Going off of the Game State Queries page, there is the first token the mod wants to get which is total monsters killed. What it does is create a variable "Total Monsters Killed" then it gets that by going to StatsAsTokens with a Query :

"Value": "{{Query: {{Vertigon.StatsAsTokens/MonstersKilled:player=localPlayer|monster=Green Slime}} +
It sums up through the kill count for all the different monsters in game that StatsAsTokens tokenizes.

But I could just ask the game engine for that number and it would look like
"Value": "{{Query: {{PLAYER_STAT localPlayer monstersKilled}}

uncut viper
#

no, you will need Esca's Modding Plugins if you want to use it in a When condition

#

you cannot use a Game State Query in a When condition because it is not a token

lucid iron
#

content patcher query is a different concept

uncut viper
#

but Esca's Modding Plugins adds a token that resolves a Game State Query

lucid iron
#

it's for doing stuff like adding numbers together

gentle rose
uncut viper
#

localPlayer would also not be the right syntax for the playerkey, it'd be Current

inner pier
#

maybe Chuve if I get what you're saying, the content.json isn't doing a "When" with the player stats

#

I think I agree there - the content.json wants to create it's own variable, and the When later uses the variable the content.json made

#

it's actually an If but I digress

lucid iron
#

ah no i think i confused you lol kyuuchan_run

uncut viper
#

The Query Token =/= Game State Query

#

Game State Queries are a thing in the vanilla game
Content Patcher Tokens are only a Content Patcher thing

#

When conditions use Content Patcher tokens

#

"Query" is the name of a specific Content Patcher token but it is not for Game State Queries

lucid iron
#

so atm this mod is using a token named Vertigon.StatsAsTokens, you can change them to Esca.EMP/PlayerStat for the most part it looks like

#

im not sure about this syntax with green slime though, don't think game tracks that? only monstersKilled right

#

ah i see it's a separate thing, Stats.specificMonstersKilled

inner pier
#

Must get Esca's. Got it. And yes, the plan is that it should be a one to one translation with another source of tokens.

#

The mod funnily enough is trying to get monstersKilled (total) but StatsAsTokens only tokenized each monster separately so the mod had to sum that up XD

uncut viper
#

MonstersKilled is the stat yes, its possible that Stats- yeah

lucid iron
#

dunno if that's accessible throuhg anything

uncut viper
#

did it separately

#

its accessible via C#

lucid iron
#

well if you dont care then just use monstersKilled

uncut viper
#

there is a specificMonstersKilled string to int dictionary in Stats

inner pier
#

ooh nice

uncut viper
#

or maybe not string to int idk whatever the hell a StatsDictionary is

#

but wont be accessible via the Esca's Modding Plugins PlayerStat token

#

it would be with the EMP GameStateQuery token though

#

through PLAYER_KILLED_MONSTERS

inner pier
#

Yeah I was struggling to find where the tokenized stats were in Esca's github

#

Let me look at EMP

uncut viper
#

they do not have individual tokens

lucid iron
#

i am fine with that it is just what if you wanna rearrange internals

uncut viper
#

you use the PlayerStat token and provide it an input

#

e.g. {{Esca.EMP/PlayerStat: MonstersKilled}}

inland rain
lucid iron
#

ok, then no code change on free love side PecoWant

inland rain
#

i just published a change on github

#

it's a postfix now

inner pier
#

So what I would do is "Value": "{{Query: {{Esca.EMP/PlayerStat monstersKilled}}

lucid iron
#

need a :

inner pier
#

and I woudl still have to find the stat from the wiki

lucid iron
#

{{Esca.EMP/PlayerStat: monstersKilled}}

uncut viper
#

ignore Query

#

you do not need it

lucid iron
#

and dont need the query cus no maffs

inner pier
#

ahhh

inland rain
#

with any luck the mod still works now

inner pier
#

it can maffs if it wants to

#

jk

uncut viper
#

also use MonstersKilled

#

not monstersKilled

#

it may or may not matter but the stat has it capitalized

#

it was lowercase pre-1.6

lucid iron
#

is it

inner pier
#

the wiki listed monstersKilled, is there somewhere else you're finding those Button?

uncut viper
#

yes all stats are proprties

#

thus they get property casing

#

monstersKilled from 1.5.6 is now obsolete_monstersKilled in 1.6+

#

im looking in the decompile and also ive just used stats a lot

lucid iron
#

i thought the string arg is the important one

inner pier
#

like a decompiled Stardew file?

uncut viper
#

hence it may or may not matter. do you know how it works in EMP? bc i dont

#

always best practice to match the known case, imo

inner pier
#

off I go to tinker

#

may be back tomorrow night

#

thank you again 😄

inner pier
#

Ohh it's got examples, not the whole thing

#

I see now

uncut viper
lucid iron
#

what does canonical version mean Think

uncut viper
#

its what it is in the game itself

lucid iron
#

its present in both forms but, StatsDictionary<TValue> : SerializableDictionaryWithCaseInsensitiveKeys<TValue> so it doesn't matter yay

#

still im psure the lowercase form is the one rendered into the save

uncut viper
#

looking at EMPs code is it not disregarding that case insensitivity?

#

its turning it into a plain Dictionary<string, uint>

lucid iron
#

hm terrible times kyuuchan_run

uncut viper
#

prime example of why i think it best to follow vanilla where possible
it just doesnt seem like EMP is strictly doing that unless you think accessing Stats.Values directly is the right way to interact with stats (i wouldnt)

lucid iron
#

i only really used custom stats so in a way it is the right way blobcatgooglyblep

uncut viper
#

that is definitely still not the right way why are you not using Stats.Increment

#

or Stats.Get

lucid iron
#

is that not what u mean by direct access

uncut viper
#

no i mean by doing Game1.player.stats.Values["My Custom Stat"] = 1

#

the EMP token is grabbing Game1.player.stats.Values directly

#

and turning it into a normal dict with case-sensitive keys

lucid iron
#

since it is become case sensitive tho

#

monstersKilled is the one that works i think NotteThink

uncut viper
#

i would agree with this

#

which is why i find the situation unfortunate and agree yes terrible times

royal stump
#

SDVpufferlurk I probably should make that case-insensitive, but wrestling all the individual wrapper properties into a CP token seems like a mess

uncut viper
#

you can just call stats.Get

#

ive been told by Pathos himself before that as long as I cache the value a token returns immediately after, that grabbing it fresh in GetValues is just fine

#

so if i were to make a playerstat token i would likely have my own string->int dict that starts empty and fill it up as things are requested in GetValues

#

and iterate over that dict in UpdateContext

royal stump
#

probably, yeah, I just preferred grabbing the dictionary instead of doing it one by one as they're used by tokens

#

but it's been long enough that I forget my reasoning/excuses, I'll make a note to do something with it

uncut viper
#

bonus: if you do it the fill-as-needed dict way, you could potentially not return true every time

#

though i guess also is there anything stopping you from just

#

making a second StatsDictionary

#

instead of just a Dictionary<string, uint>

#

then you'd get the case insensitivity in your cache

royal stump
#

I'd rather just make the dictionary case-insensitive unless there's a reason SDVpufferthinkblob

#

seems like more memory for w/e the serializabledict involves

uncut viper
#

tbh i dont really understand fully how case-insensitive dictionaries work to know if theres a reason not to when copying the keys from an existing dict

#

which is to say: 🤷‍♀️

royal stump
#

yeah, conceptually I wouldn't expect any issues, though I'll poke it a bit after the change

zenith sapphire
#

Guys does exist a way to look up for all items that a mod adds to the game? like for debug i need to know all items for (for example) the mod The Great Catch add

royal stump
#

(okay yeah, I was misremembering how some of the properties worked, should be fine to switch to Get caching)

zenith sapphire
#

With LookUpAnything it doesnt seems to work as i can just look IF i know the item name

#

I wanted a filter for like "modname" and then look for everything the mod add

lucid mulch
#

you can guess based on id conventions, but there isn't a mechanism to actually trace the origins of the item

zenith sapphire
#

Damn that's very hard when you have alot of mods and want to keep trace of what you add

uncut viper
#

LA's search mode and i think CJB cheats iirc both would work if you searched by Mod ID if that mod followd the ID convention

royal stump
#

it may help to load a save and use the list_items command + your mod ID, if you use the conventional format

uncut viper
#

i might be misremembering in the search mode thing

zenith sapphire
royal stump
#

yep

brave fable
#

CJB Item Spawner lets you search by internal name just fine, i use it to pick from my own modded items all the time

#

so blueberry. will show all of my items, raisedgardenbeds will do all of the items from that mod, etc

obtuse wigeon
#

Oh thats a great little tip, I can find my stuff so easily by searching my name

brave fable
#

i'm sure if i wasn't named after a literal fruit i could write it without the period there as well. what a thrill

obtuse wigeon
#

at least theres only like 5 blueberry items in vanilla

brave fable
#

ah, but we're not in vanilla, are we SDVdemetriums

obtuse wigeon
#

Berry true

inland rain
#

a lake!

#

oops missing one tiles still 🤦‍♀️

obtuse wigeon
#

What mod makes your hotbar sideways? or is that part of the open world mod?

inland rain
#

i think it's called custom toolbar or something?

#

it toggles when I press middle mouse button, so I keep toggling it by accident

#

also it has a bug I need to fix rq

obtuse wigeon
#

Oh thats pretty cool, I didn't know that was even possible, great for decorating when it always gets in the way

oblique meadow
drowsy pewter
#

So if I have a dynamic token in CP and it contains comma delimited entries, is there a way i can refer to the dynamic token to pull the value of only one entry?

inland rain
#

procedural stuff is hard bc of all the border stuff

inland rain
#

the lake tiles need a border inside, then a grass border outside, then the light grass needs a dark grass border

obtuse wigeon
#

also the dirt types and sand too

#

basically stardew is just a lot of borders

versed wyvern
#

So I'm planning to add a shop and shopkeeper NPC whose stock expands with particular other mods I make installed, would there be any problems foreseen if I just have every one of those other mods have identical patch actions to add the NPC and her assets, because I don't feel they're important enough to separate into a standalone mod?

drowsy pewter
#

perfectly fine

uncut viper
#

as long as you put them behind HasMod conditions the player wont even know about those patches unless they have the mod in question installed

obtuse wigeon
#

as long as you don't overwrite the shop entries (unless you want) and have something like a when condition so error items aren't added, seems like a pretty fine plan

#

Actually it's pretty similar to a modded catalogue I think?

drowsy pewter
#

when adding the shop you should add only the shop info in the intial patch and have a second patch to add the shop entries

otherwise if you add the shop alongside entries ABC, and patch in another mod the shop with entries ABZ, it will remove the C entry

If you add the basic shop in both mods, and add ABC and ABZ separately in other patches, you will get entries ABCZ

#

etc

#

basic shop as in, the seller, shop location, basically everything except for the actual items in the shop

tiny zealot
#

i would also consider just having each of the mods do the shared patches with priorities instead of HasMod conditions

uncut viper
#

you can still add as many entries as you want in the shop creation patch, as long as the other mods dont also re-add the shop itself

#

if the Main Mod adds the shop and the others all use TargetField then no entries are lost

#

even if the main mod also adds a bunch of entries in the single patch

#

in fact adding the shop info itself in both mods would cause problems as the Items list would be overwritten with a default value

#

(which would be an empty list)

versed wyvern
#

Alrighty, I think I do need to go with what 6480 cautioned because the idea here is there is no "main" mod, I need the shop to exist when any of the mods are installed

drowsy pewter
#

yej

versed wyvern
#

So all of the mods each add an empty shop and then have additional patches to add to its stock

uncut viper
#

if Mod A does an EditData on Data/Shops to add a new shop using Entries like this:

"Entries": {
  "{{ModId}}_MyShop": {
    ...
  }
}

and then has a second patch adding to the Items specifically, and then Mod B does the same thing, Mod B will be erasing Mod A's entries

versed wyvern
#

Hmmm

tiny zealot
#

should be solvable with patch priority, no? especially if mud controls all the mods

drowsy pewter
#

Yeah put the patch to add the empty shop as being earlier than everything

#

then the rest will resolve fine

#

otherwise by default it goes:
empty shop A > add entries A > empty shop B > add entries B

If you make adding the shop come earlier with patch priorities it comes
empty shop A > empty shop B > add entries A > add entries B

#

hopefully the whole thing makes sense to you

versed wyvern
#

So I need to add a Priority:Early to the shop creation patches in each mod and then they should resolve the way I want them to?

drowsy pewter
#

should if you do it right

uncut viper
#

priorities should solve it, yes. i just wanted to make sure it was pointed out because it wasnt said originally

versed wyvern
#

Cool, I definitely would've missed that if it wasn't brought up so thanks y'all googlythumb

humble timber
#

this is a very random question but uhhh
im brainstorming events rn and was thinking of what the best way to execute a character fainting animation for their sprite would be SDVpufferthink would i want to try to somehow keep it fitting in a 16x32 space or is it easy enough to use custom size sprites for events that i shouldnt worry about that

urban patrol
#

if you warp the character out and use a TAS you can have whatever size you want

#

then warp them back in whenever you want them to return to normal

humble timber
#

gotcha

#

ugh im gonna be in events hell for ages i can feel it

versed wyvern
#

If fainting vertically is fine I've seen such sprites in RPGMaker games and the like that looked fine

#

Like stuff like this looked fine in top-down perspective

humble timber
#

Lol

#

Maybe! i'm still in the brainstorming phase and not actually sure how i want it to look yet

humble timber
#

wh
what are you making. i am intrigued

glossy cargo
#

Square Hole Bundle

obtuse wigeon
#

That's evil, I love it!

#

everything can fit in the square hole

glossy cargo
#

(And yes, I got explicit permission from Alison Burke to use her face in the mod)

humble timber
#

WAIT LMAO i didnt even notice that

#

😭 incredible

obtuse wigeon
#

That's pretty impressive ngl

glossy cargo
#

I'm waiting on permission from the other tiktok guy, to also use his voice lines

#

i'd like to have him say "It goes in the Square hole" every time you donate

#

hopefully he'll answer the DM

glossy cargo
#

I'm giving my all. I need to get to 100!

humble timber
#

oh my god 😭 SDVkrobusgiggle

obtuse wigeon
#

Are the compatible with each others? meme bundle playthrough

glossy cargo
#

Yes of course

obtuse wigeon
#

Perfect!

glossy cargo
#

it's a whole setting called "Meme Bundles" and you get an entirely meme CC

humble timber
#

meme bundles SDVpufferrise well i know im gonna have to do a playthrough eventually,,,,

glossy cargo
#

I also let players customize the number of bundles per CC room, so they can have up to 54 bundles in one playthrough if they want

glossy cargo
obtuse wigeon
#

I've never had the chance to play the stardew archipelago yet unfortnatly

humble timber
#

oooh

glossy cargo
#

Meme Bundles is in the currently-in-beta version 7. If you play the official release, it's not in it yet

humble timber
#

same, ive yet to play it

hot gale
#

Dynamic HUD that tracks the name of your Town and how many Villagers you currently have :D

tropic hare
#

hello! I am learning how to create mods related to recipes on this website (https://stardewmodding.wiki.gg/wiki/Category:Tutorials). I found this piece of code:
"Baked Fish": "137 1 246 1/6 5/198/l 12/"
According to the instructions, "/l 12/" should be the unlocking condition for the recipe. However, it is not specified what kind of unlocking condition "/l 12/" represents. If anyone knows, please let me know?Or someone could tell me where to find the answer?

vernal crest
brittle pasture
#

l 12 is not any recognized conditions (probably leftover from old versions of SDV)

tropic hare
zenith sapphire
#

guys i dont know why but some fishes in my mod can be catched without the minigame , why? what i should check?

fossil osprey
#

Sounds like the behaviour of trash/algae/non-fish fishable, but I don't know what's the real difference code-wise

brittle pasture
#

did you add a Data/Fish entry for them

#
  • set the correct type and category
zenith sapphire
#

Those are the settings for all my fishes

brittle pasture
#

that looks good
and the Data/Fish entry?

brittle pasture
#

also you should make the Name the same as the ID

#

yeah I see the issue, you have a space on your Data/Fish keys

#

so the name doesn’t match the object

zenith sapphire
#

oh that's why?

#

so i just need to remove the space in (modId).fish name ?

brittle pasture
#

yes
make sure the key in Data/Objects and Data/Fish is identical

zenith sapphire
#

fixed! thank you!

brave fable
zenith sapphire
#

Oh that's very useful! thanks!!

zenith sapphire
hallow prism
#

like fire salamander when your object is firesalamander

#

oh

#

ok i entirely missed selph answer somehow

#

can i still blame it on waking up, maybe

obtuse wigeon
#

Blaming it on just waking up is perfectly valid, even if it's 8 at night and you've been awake for 12 hours, it's always 6am somewhere

bold crypt
#

I successfully made a basic farm map with Tiled and loaded it into the game. I just used the spring tilesheets. Will these update to the other season’s tilesheets as I play?

brave fable
#

yes; the game will try and load seasonal tilesheets with the appropriate names for any tilesets with an image source starting with spring_

tender bloom
#

Only if you don’t include the tilesheets locally (in the mod folder) though iirc?

brave fable
#

naturally, this also means it will fail and throw errors if the matching tilesheet images aren't found

tender bloom
#

Blueb probably remembers better though

brave fable
#

nope

#

far too many unique and clandestine behaviours along the pipeline from tiled to location for me to remember them all hahah

#

so close spacecore, so close

vital lotus
#

What's close here?

brave fable
#

custom skill buffs aren't listed as or with buffs

vital lotus
#

oh... it's supposed to be with farming down there

brave fable
#

somehow the implementation also means love of cooking doesn't know about its own custom skill buffs SDVdemetriums

#

suppose it would've been too easy if buff effects were iterable, far too easy if arbitrary custom effects were covered in the same behaviour

versed wyvern
#

Does anyone happen to know if changeSprite NPC without the [sprite] argument will change a character back to their default appearance if they're currently using something else?

latent cape
#

Um is it just me or did ambientNightLight command is gone from the wiki and the game or am i imagining things this whole time

versed wyvern
gray bear
#

are expressions chosen automatically for gift taste dialogue?

#

can i like, set em

calm nebula
#

Yes and yes

gray bear
#

awesome. thank you SDVpufferheart

stone crypt
versed wyvern
#

It changes them to whatever their current base outfit is but like if it's winter then it just seems to keep them in their winter outfit because that's their base for the season

lucid iron
#

Ah do you actually want them to go to base outfit

#

Maybe if you tag a !IS_EVENT on their winter outfit

#

Or add a IS_EVENT conditioned appearance entry for their base outfit

steep valve
#

Besides showFrame and animate in events, how else are NPC sprites used?

#

Also in walking animations, evidently, but that's only the first 16 on the sheet as far as I know

tiny zealot
#

any animations: spouse patio animations, schedule animations, to name two

violet valley
#

if I use i18n for an event, should it be like this?

/speak Abigail "{{i18n:OMEGAlinc.EventPlaceholder1}}"

round timber
#

youll have to escape the quotes like this /speak Abigail \"{{i18n:OMEGAlinc.EventPlaceholder1}}\"

violet valley
#

ok thats what I thought thanks

true pendant
#

Hello everyone, I want to recolor a tile sheet via config for my custom location. What "Target" should I specify for my tile sheet?

valid nova
#

For someone who has never made a mod for any game, only edited minecraft mods and done some basics in javascript, how hard would it be to make a chest colour changer that allows hex codes? Kinda like the colourful chests mod but with hex instead of sliders.

gray bear
steep valve
gray bear
round timber
#

that is very C#

brave fable
#

(they specifically mentioned the colourful chests mod in that message)

true pendant
# gray bear load your original tilesheet, and then editimage the edits

I don't quite understand how to do this, here is the code I'm trying to use

    {
      "Action": "Load",
      "Target": "assets/spring_van_extra",
      "FromFile": "assets/spring_van_extra.png",
    },
       {
          "Action": "EditImage",
          "Target": "assets/spring_van_extra",
          "FromFile": "assets/spring_van_extra_SBV.png",
          "Enabled": "True",
          "When": {
          "Recolor": "Starblue",
          }
       },
       {
          "Action": "EditImage",
          "Target": "assets/spring_van_extra",
          "FromFile": "assets/spring_van_extra_default.png",
          "Enabled": "True",
          "When": {
          "Recolor": "Vanilla",
          }
       },
gray bear
lucid iron
#

Difficult part is honestly the UI

gray bear
#

better chests used to have hex codes right im not imagning it

round timber
#

isnt better chests ded

gray bear
#

it is. i guess my point is that it is possible

lucid iron
#

I think it was sliders too

gray bear
#

ooh right

lucid iron
#

If anything entering hex is less ui than slider lol

gray bear
#

true thonk

gray bear
valid nova
#

Sorry im not responding my cat is sat on me lol ty for the responses I might see if I can look at how better chests done it

lucid iron
#

Naw just look at colorful chests

gray bear
#

ah that's not available anymore. listen to chu

lucid iron
#

It's basically same code anyway but more specific to you

#

I suspect you can clone this and add in a hex option in the gmcm and call it a day

valid nova
#

Oo tysm 😊

true pendant
gray bear
#

gotta make sure the target is the same

#

if your modid just Vanillin.VanFarm? better to use that for both or just {{ModId}}

#

"Enabled": "True" is not needed if you're using When

true pendant
# gray bear `"Enabled": "True"` is not needed if you're using When

Still doesn't work, in Tiled my tile sheet is called z_van_extra maybe that's the issue?

{
            "Action": "Load",
            "Target": "{{ModId}}/SpringVanExtra",
            "FromFile": "assets/spring_van_extra.png"
 },
       {
          "Action": "EditImage",
          "Target": "{{ModId}}/SpringVanExtra",
          "FromFile": "assets/spring_van_extra_SBV.png",
          "When": {
          "Recolor": "Starblue",
          }
       },
gray bear
#

maybe being more matchy like zSpringVanExtra would work?

#

can you stop tagging me in replies please? i'm already here

true pendant
#

In fact, the name of the tile sheet in Tiled will not change anything. I just don’t understand what “Target” needs to be specified for a custom tile sheet.

gray bear
#

i think the filename is more important than the tilesheet name

#

if the name of the png is spring_van_extra try
"Target": "{{ModId}}/spring_van_extra"

#

or even
"Target": "Maps/spring_van_extra"

true pendant
#

I didn't use "Action": "Load" for spring_van_extra because it automatically loads it via TMX map

gray bear
#

the load is for the edit

#

example ish

hard fern
#

You need to first load your texture if you want to edit it

gray bear
#

im not 100% sure about this but like, does the target need to match the tilesheet file name

#

i do it that way but i am, unsure really

hard fern
#

Uhh 🤔

hallow prism
#

(And not have it in maps folder otherwise this has priority and you cant edit)

gray bear
#

oh! forgot about this

#

thank you Lumina t_pray

hallow prism
#

I usually put mine in assets

hard fern
shy harbor
#

If I'm making a custom window, is there a way to change how light emits from it with CP?

gray bear
hard fern
#

Like you can just specify the "fromfile" to whatever

gray bear
#

well yeah ofc

hard fern
#

But everything from there needs to match

gray bear
#

and change fromfile accordingly

hard fern
gray bear
#

yeah,,, happens to us all

valid folio
#

https://smapi.io/json/none/1d8a03016f3c43a7af60630136c01c34

Hi, how are you?

I have a little problem: I want to add a new rule to my machine, but it’s not working. The idea is to make crème anglaise, which requires an egg, and I want to use the egg as the activating item. I’ve tried several tags, both from the wiki and by looking at the game’s objects.json, and even though I have the egg in my inventory along with the other necessary ingredients, the machine doesn’t work.

Here’s the link to the full machine file. The crafting recipe should be: egg (any), sugar, milk (any), and vanilla extract (an item from my mod). The error is probably something silly that I’m not noticing. The validator doesn’t show any errors, and all the other product crafting recipes work fine, but the crème anglaise one doesn’t.

gray bear
#

i didn't add a .png to my from file once and was confused why it no worky

gray bear
valid folio
# gray bear only thing i can gather is it's the only recipe using 3 items

Yes, could that cause a problem? Is there a limit to the number of ingredients? Otherwise, the only thing I could try is using just egg and milk, because I tried without sugar—so milk, egg, and vanilla extract—and it didn’t work. I’ve been looking at the Cornucopia Mayonnaise Machine, and it seems like they enter a rule for each type of egg. As a last resort, I could try that; it’s more tedious, but if it works…

gray bear
#

i am reading the docs right now and like,,, they long

#

how to summon selph

#

so this limitation thing, i don't think that's it bc of using diff numbers

#

all the examples only go up to 2 though

hard fern
#

Ive read fhe emc docs and exploded

gray bear
#

selph is very thorough

#

ok i have found! a 3

valid folio
gray bear
#

uhh

hard fern
#

Something like this is probably okay....?

gray bear
#

this is a specific we need the author case

#

also unrelated you got a Flavored_Yogurth in there

hard fern
#

Yogurth....

round timber
#

its not against the rules to ping someone SDVpufferthumbsup especially when you have a valid reason to do so

valid folio
#

In my eagerness to do something different, everything ends up becoming really complicated haha. I don’t want my machines to make the same products as other machines, nor do I want it to seem like I’m copying ideas.

oblique meadow
#

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

gray bear
oblique meadow
#

Just do what makes you happy. Dont worry if you seem to have overlap

#

🙂

valid folio
oblique meadow
#

Hopefully the fridge. Or it will spoil

gray bear
#

oh. you should probably use i18n instead of, whatever a LocalizedText string is

brittle pasture
gray bear
#

that's a lot of milk :o

#

ty Selph

brittle pasture
#

if you want an OR list you need separate OutputItem entries

#

or just use category_milk to catch every milk item

#

oh yeah cornucopia milk isnt category_milk, in that case add another entry using whichever tag they’re tagged as

#

(it’s always fine to ping me, though I may not always be available)

gray bear
#

seperate outputitem entries like seperate lines?

#

or wait no

brittle pasture
#

I mean a separate output item where everything’s the same aside from the first fuel slot

drowsy pewter
valid folio
gray bear
#

apologies

#

line 52

#

selph this is what you mean right sweats

hard fern
#

🤔 im thinking maybe i can change up something in my mod... maybe i can make embroidery pieces that you can actually place as furniture.

gray bear
valid folio
#

Wait, I got lost haha. My idea is to make it as compatible as possible with mods that add all kinds of milk, but what would the corrected code look like? I think I’ll understand it better that way.

brittle pasture
hard fern
#

i still feel like my mod is a little chaotic and disjointed in places SDVpufferflat so i can hopefully get back into working on it. i took a step back but now i can take a step forward

brittle pasture
tiny zealot
# steep valve Would you be willing to name more, by any chance? And also how I could find wher...

i don't have a comprehensive list; those were just two things that came to mind right away.
some animations are in Data/animationDescriptions in the unpacked content; those are mostly schedule animations, though there may be somewhere else they can be referenced.
spouse patio animations are somewhere else, but i forget where. check [[Modding:NPC_data]] maybe?
and in events you have animate as well as showFrame.
may be more stuff but that's what i know offhand

gray bear
valid folio
# gray bear line 52

But it doesn’t cause any problems in the game, and the item gets the correct name when I produce it. Should I delete it anyway?

hard fern
#

but i think i just put too much into it

gray bear
#

that's fair

hard fern
#

and now everything is tangled up together

valid folio
gray bear
hard fern
#

ok i have 1 question: does the vanilla game already have some strange machine that could potentially function like a mortar and pestle

gray bear
vernal crest
gray bear
#

oooh, inchresting. sorry, didn't know

gray bear
vernal crest
#

Flavoured items are their own fun niche of objects

gray bear
#

wonder if i should move to also using LocalizedText

valid folio
gray bear
#

if you don't want it to be used, yeh

gray bear
vernal crest
gray bear
hard fern
gray bear
#

thonk

#

my logic says furnace

#

but it make ash

hard fern
gray bear
#

i love mayo dye

#

nothing makes powders, the farmer like, crafts fairy dust

valid folio
#

I’m going to make the suggested changes and I’ll let you know how it goes. Thanks everyone for your patience.

hard fern
#

its ok i'll just... make my own mortar and pestle i guess? or skip that step and just like... make the player throw in a whole ass malachite into a dye pot because that makes sense.

gray bear
#
Stardew Valley Wiki

The Wood Chipper is used to convert Hardwood and Driftwood into other products. It can be purchased from the Carpenter's Shop for data-sort-value="1000">1,000g starting the first day of Winter in year 1. The player receives a letter about the wood chipper from Robin on the second day of Winter in year 1. A Wood Chipper may be purchased from K...

#

wood chipper would probably make a powder

round timber
#

flowers are very soft wood if you squint blobnod

gray bear
#

yes

vernal crest
# gray bear wonder if i should move to also using LocalizedText

In the case of flavoured items it's used in order to allow the name to update after the object has been created. From reading the wiki, that use might also apply to regular objects (since apparently it's needed to change the object's display name if a player changes language after the object has been created and that might be the case for non-flavoured items too) but if it doesn't I don't know that there'd be a great deal of purpose in starting to use LocalizedText. It wouldn't hurt, I don't think, but outside of this sort of case or event dialogue I am not aware of advantages*.

* disclaimer being that I'm only just getting to grips with LocalizedText myself so I might be really missing some overall advantages

hard fern
#

everything is wood if you squint

gray bear
#

do you use wood glasses

hard fern
#

the frames can be made of wood

gray bear
#

honestly if you dehydrate a flower wouldn't it just powderise

hard fern
#

not necessarily

#

there's a reason pressed flowers exist

#

(ofc if you crush it it turns into powder)

gray bear
#

we lack crushers

#

there's only one for geodes

hard fern
#

get the farmer to grow giant ass crusher claws

gray bear
#

yes

#

there are mods that just add mortar but not an option. vanilla lack crush

hard fern
#

cant wait to release my "turn everything into powder" mod where you can put everything into my super cool powderizer and turn fish into powder.

#

(send help)

gray bear
#

(how)

brittle pasture
#

WAG and Alchemistry both adds their own mortar
just make one of them a hard dependency ezpz /s

gray bear
#

so would you use a cheese press to make pressed flowers

#

🎙️

hard fern
violet valley
#

oh

violet valley
gray bear
#

bait maker make bait

violet valley
#

i know but kinda the same concept

gray bear
#

all machines are the same concept

hard fern
#

is there a mod for everything bait

gray bear
#

hey selph,,,

#

ive an idea for u

violet valley
gray bear
#

nw

#

yeah stardew machines all use the same logic, mostly, just diff quantity and maybe add coal