#making-mods-general

1 messages · Page 114 of 1

unique sigil
#

oh hey, thank you so much for replying. i'd never thought of this workaround myself haha. i'll get back to you once i try this out! SDVpufferheart

lucid iron
#

if fish data doesnt add up to 1

#

the rest of the chance gives you random trash?

brittle pasture
#

they'll start pulling from the Default location which has a 100% trash entry with low precedence

lucid iron
#

oh hm whats the sunfish entry then

brittle pasture
#

where is this, farm?

lucid iron
#

greenhouse

#

i made it outdoor and stuff

#

in general i think any map w/o fish data get sunfish?

#

for some reason

calm nebula
lucid iron
#

ah so the some reason is CA

brittle pasture
#

GetFishFromLocationData

#

returns a sunfish if nothing is found

lucid iron
#

it should return a tastier fish such as bass

calm nebula
#

The first fish, if it's trash or a hard fish, is replaced with sunfish

unique sigil
#

wait, is that why i fished a single (1) sunfish from my custom farm cave and never get any ever again despite the fish data not containing sunfish??

#

thats kinda silly

calm nebula
#

Yup

brittle pasture
#

anti disappointment measures, hmm

lucid iron
#

i think content patcher is aggressively optimizing me again

#

seasons all get lowercased even if i use Summer in config

calm nebula
#

Yes

lucid iron
#

rip ppl named Summer i guess

uncut viper
#

i thought that was fixed SDVpufferthinkblob

tardy adder
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 19 C# mods and 10 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

oh, i guess it was only fixed for i18n

gaunt orbit
lucid iron
#

did CP support title only configs

brittle pasture
#

ah makes sense

uncut viper
unique sigil
lucid iron
#

they saved first catch for legend

#

it was a run to catch all fish in 1 in game day

tardy adder
brave fable
#

is this for a framework mod?

#

ah, CustomTVChannel

tardy adder
#

Yesh

brave fable
#

do you have more than one content file? it says the value of your currentChannel field has a duplicate entry in whatever internal dict the framework is adding it to

tardy adder
#

just one

brave fable
#

possibly one of Food Safety, Gardening, Gossip Girl, and Interdimensional Cable TV shares the same channel ID

tardy adder
#

I checked them, also no

brave fable
#

doublecheck your files and use a more unique ID if possible

tardy adder
#

And no matter what number I put its still giving the same error

brave fable
#

does the key remain the same in the error? eg. Key: 295041

tardy adder
#

no

#

If I change the currentChannel it changes the error to that key

#

I even rewrote it for testing the error... T-T CustomTVChannel doesn't like the food safety trivia

brave fable
#

if you remove the other tv channel mods, do you still get the same error?

#

that'd narrow down whether it's a conflict or a local issue

uncut viper
#

you have two copies of the mod in your Mods folder?

tardy adder
#

If it's on its own it works fine, no errors

uncut viper
#

thats what the trace seems to indicate

tardy adder
#

No I only have one >->

uncut viper
#

well, it successfully adds the content.json from the "Food Safety Channel - Copy" folder

#

if you look at the trace messages in that error log, it shows it adds that one, then the gardening channel, then fails on the third

#

which i presume is an unintended copy

tardy adder
#

No, that was an intended copy (I copied it after getting the error to test)

#

It shows the error whenever another mod adds a TV channel is present :s

teal bridge
narrow vault
lucid iron
narrow vault
#

(buy one fish from traveling merchant or other shop that sells fish and add to fishpond, you can fulfill quest, then get them out to gain fishing xp, which does not add the fish to the collection)

lucid iron
#

u can do as much prep as u want prior to that day as long as you never fish

teal bridge
#

I... suppose you could maybe call it a challenge run then, certainly doesn't sound like a "speed run" since it would require hundreds of in-game days of prep.

#

If you do that much prep though, it seems pointless to worry about that particular exploit for Legend?

narrow vault
#

it is a challenge run and rng grind fest, one guy did it in 1.5 and it took hundreds of attempts to get a single successful run of entire fishing collection filled in one in game day

lucid iron
#

yea wrong word probably

#

i think its important for EXP maybe, but i gotta find that vid again first

hard fern
#

i guess the speedrun starts as soon as you catch your first fish

lucid iron
teal bridge
#

I mean, with unlimited prep you can be at level 10 fishing (or higher with buffs), and whatever tackle you want, so Legend should be pretty easy.

hard fern
#

ah yes

lucid iron
#

looks like it's 1.5 going by timestamp

#

is sunfish a new thing

teal bridge
#

Sunfish is a very old thing IIRC.

tender bloom
#

I haven’t watched this one but I did watch the one with getting to level 10 fishing in one day

hard fern
#

🤔 sunfish being the first catch thing?

narrow vault
tender bloom
#

No that’s super old

#

Sunfish replaces trash though

#

So you’re not guaranteed sunfish

narrow vault
#

he did use the tutorial for the legend as the exploit of the first ever fish not escaping still works/worked

hard fern
#

first catch pulls from a pool of low level fish right? if i fish at the ocean, i can catch a herring as my first fish

tender bloom
#

Yeah, herring and other easy fish don’t get replaced iirc

lucid iron
#

hm i feel like it was different vid

#

they didnt chair highway

narrow vault
#

that's at least the same vid i saw at least, and he did end up filling the entire fishing collection in one in game day in the end

lucid iron
#

definitely leveled fishing with non fishing ways tho

tiny zealot
#

or at least it did last time i checked, which may have been in 1.5

uncut viper
#

(technically, it was actually erroring when trying to add the gardening channel, not yours, because your channel info was somehow being used for hisame's content pack. but changing your ScreenFile from assets/Speaker.png to assets/Speaker2.png stopped that from happening)

#

and sure enough, changing your ScreenFile to match Gossip Girl's filename instead breaks Gossip Girl

#

i was looking at the framework in ilspy because the source is unavailable and could not see any reason why this would happen

#

might have something to do with their ChannelData class having a constructor that takes an argument but is loaded in via contentPack.ReadJsonFile but i dont know how a constructor even really works in that context or why it'd carry things over into the next json file it reads or why it doesnt do that if the screenfile is different

#

(tbh given that possibility i cant even say im 100% certain its not something to do with SMAPI's ReadJsonFile)

calm nebula
#

There is always a zero arg

#

I think

uncut viper
#

i dont know how or why thatd cause this kind of error, though

#
internal class ChannelData
{
  public ChannelData(ChannelInfo info)
  {
    this.channelInfos = new List<ChannelInfo> { info }.ToArray();
  }

    public ChannelInfo[] channelInfos;
  }
}

this is their class theyre reading into with the json

#

ignore the mismatched brackets i copied it wrong

calm nebula
#

That's an attempt at a copy constructor but Jesus christ wow that is weird

uncut viper
#

yeah their whole setup in this mod is what i would describe as "not like, wrong or anything (except for this bug ig) but weird"

tardy adder
uncut viper
#

like idk where trhe ChannelInfo info argument even comes from when ReadFromJsonFile is called

#

but it must come from.... something? because it sets it to Kath's food safety info, which is the only top level field inside the content.json... but then every json read after it also gets kath's info

#

even though the ReadFromJsonFile is done in a foreach loop on GetOwnedContentPacks

calm nebula
#

I dunno

uncut viper
#

i have no clue! ive no clue how any of that class works with this

calm nebula
#

I've been out of the c# game for too long

uncut viper
#

but if there was, wouldnt channelInfos be null?

calm nebula
#

Tbh I have an extremely strong bias against non open source frameworks

calm nebula
calm nebula
#

For frameworks, I think it's important for someone else to be able to take over if you leave

uncut viper
#

i mean, so do i, but i more just care bc i just cant figure out why it breaks in such a weird way

calm nebula
#

shrugs

#

I'm going to the gym lol

uncut viper
#

like, why the fuck does changing the ScreenFile field, nested inside channelInfo and inside channeltype inside that, fix it?

#

ScreenFile isnt even used for any keys

#

have fun dont drop a barbell on your foot

#

also @ Kath re: reporting it to the mod author: they havent been online since august 3rd, so. dont get your hopes up. just rely on not matching your screenfile name, i guess. maybe prefix it with your modid

wheat finch
#

Another mod checked off the 1.6 update list!

tardy adder
lucid iron
#

hm i cant seem to ungreenhouse the greenhouse

finite meadow
#

alright ! it's done! now time to update in nexus! 😛 (also a meteorite randomly landed while testing)

hard fern
#

yahooo my books

tiny zealot
#

is there any worse feeling than finding a showstopping bug in your 1.0.0 release and having to slam a fix into production at attack speed

teal bridge
#

Not finding a showstopping bug in your 1.0.0 release and having it reported a week later?

tiny zealot
#

ok, yeah, you got me there

rancid temple
#

Not finding a showstopping bug in any release, nobody ever reporting it despite a decent amount downloading it, and only stumbling upon it when you decide to play for the first time in months?

teal bridge
#

Depends on how you rank being totally invisible vs. being a highly-visible failure.

hard fern
#

Such is the plight of a cheeto

brittle pasture
#

if nobody reports it, does it exist? SDVthinking

tender bloom
#

Worse: a bug you can’t reproduce but players reliably report

#

Like the one where some harmony stuff didn’t work on macOS specifically

tiny zealot
#

oh no

tender bloom
#

Something something compiler inlining

rancid temple
#

All that said, there's truly no worse bug than whatever one you happen to be dealing with at any given moment

teal bridge
#

Some bugs can be fun.

silver pelican
#

Any idea how to make cars move like Zuzu City? frogdance

uncut viper
#

well are you making a CP mod or a C# mod

silver pelican
#

CP :>

uncut viper
#

then the answer is you do not

silver pelican
#

dang it SDVpufferchickbig2 anyhow, thank you!

velvet narwhal
#

I contemplated trying something like that with tile animations but that's a timing problem

drowsy pewter
#

make an animated tileset consisting of 2000 tiles that span the length of the map and--

silver pelican
#

I thought about it but I thought it would look off xd

drowsy pewter
#

its only something I would do if I wanted to be buried a week later

lucid iron
#

i mean if the road repeats

#

and u only have 1 car

velvet narwhal
#

I'd rather sooner figure out making a custom critter or somehow duplicate the train

calm nebula
#

And the car didn't stop for pedestrians

ivory plume
#

Just have a long, complex animation with thousands of frames that only repeat after a few minutes.

drowsy pewter
#

Yup, it's simple

ivory plume
#

(Soon: "the SMAPI update causes lag, when will it be fixed?")

calm nebula
#

Pathos, Canadian drivers are super nice and pause for pedestrians

#

This is very weird to this American

brittle pasture
#

just use MEEP and spawn Cows reskinned into cars

#

or Custom Companions

silver pelican
velvet narwhal
#

Just make everything bicycles, they never stop for no one

uncut viper
#

if you make map updates ontimechanged, you could have cars move really slowly, one tile at a time. just pretend its bumper to bumper traffic

teal bridge
#

I think it's more accurate to say that rural drivers stop for pedestrians, pretty much regardless of country.

calm nebula
#

Oh god

slender badger
drowsy pewter
#

hi ichor, bye ichor

calm nebula
#

Just learn c# lol

#

If someone as dumb as me can do it

velvet narwhal
#

With a good enough outlook, you too can understand smapi events

silver pelican
velvet narwhal
#

Atra if you're dumb then I'm a grain of sand

silver pelican
brittle ledge
wheat finch
#

Someday I'll actually get the motivation to learn C#.

#

When I successfully use CP to make the deconstructor accept copper, gold, iridium, and radioactive bars and don't have to rely on PFM for that. That's when I'll feel smart enough to start learning C#.

drowsy pewter
#

I'd like to learn at some point

wheat finch
#

There are a couple things I want to do with my shop mod that aren't possible in CP in 1.6 that I'd love to have the C# knowledge to enact.

uncut viper
#

like what, out of curiosity?

ivory plume
#

Snap giveaway for the first person who wants it: LEGO: The Hobbit on GOG. (Just reply here and I'll DM you the game key.)

[Edit: claimed by Button!]

brittle pasture
wheat finch
#

I wish they'd finished the trilogy with that game.

uncut viper
#

i mean i would take it but only if no one else wanted the game particularly

wheat finch
rancid temple
#

Oh, I made an example of this since I gave wrong information the other day

#

If you want it

wheat finch
#

Sure. Would be good for future reference since I have other mods that rely on PFM that I'd like to move to CP for the stability.

rancid temple
#

Probably should have made sure that output method doesn't increase a stat or something...

#

Doesn't seem like it, should be good

brittle pasture
#

@forest moat I updated Culinary Delight's recipe_replacements.json with the new IDs in WAG 2.0. since both you and flour used generic tags the vast majority of your recipes actually still works, so I didn't need to do much work!

#

(stuff like lemon_item or cream_item or etc.)

forest moat
brittle pasture
#

no need! as said I didnt take much time

#

only like 5 lines in total

drowsy pewter
#

Well yay! I'm glad there wasn't much to do

ivory plume
#

The mod compatibility list is now mostly up-to-date for 1.6.9–1.6.14!

(Some mods marked compatible still log errors, but they at least don't seem to cause issues in-game. We can update the list incrementally for the remaining ones if they don't work correctly.)

forest moat
royal stump
#

whew, finally tweaked FTM's readme to talk about data/additionalfarms instead of MTN, just under 4 years after the latter stopped working SDViconghost
(and also to stop calling content.json a "config file")

lucid iron
blissful osprey
#

Guys. Is it possible to start with an iridium pickaxe or rod? Im asking cause in trying the new tool but this is what i get [(T)Iridiu${^^
}$mPickaxe] and it dosent fit

brittle pasture
#

what are you trying to do?

blissful osprey
#

I wanna try and start with a iridium rod

#

Or pickaxe

#

Any would do

ivory plume
blissful osprey
#

But i get this [(T)Iridiu${^^
}$mPickaxe]

#

And it dosent fit

#

Using the recent tool arround internet

lucid iron
#

Just give yourself one with debug commands

#

But also are you make a mod

silver pelican
#

unless youre trying to make a mod out of it?

#

wasnt there something like a starter pack mod pepehmmmm

brave fable
lucid egret
#

hi guys sooooo i'm the current maintainer of adventurer's guild expanded and evidently i'm not all that amazing at coding (even if its just CP).

i did update it from 1.5 to 1.6 but i've seen people talk about the bugs and how messy my update was SDVpufferdizzy so if you guys wouldn't mind, are there any suggestions you would make regarding the coding to help make it smoother or idk, less messy? SDVpuffersob

#

also sorry if thats not what this channel is for

fossil osprey
#

It is the right channel dw ^^

lucid egret
#

ah okay thank you SDVpufferheart

unique sigil
#

is there really no way to apply seasonal tilesheet changes to indoor maps without creating a whole new LocationContext for it or use the Outdoors T map property?

i ran into a roadblock with one of my farm cave maps; it uses spring_outdoorsTileSheet.png but the seasonal changes and recolor only applies to spring and for the rest of the seasons it uses the vanilla spring color which is not good. but if i change the location to outdoors it would probably make weather effects apply in FarmCave (also not good)

#

some other dilemmas to consider is that the map needs to have the TreatAsOutdoors T property because i want the farm cave to be able to have forage bushes. i would hate to have to sacrifice this feature because of what's essentially a visual issue

cinder thorn
#

Use the same tmx map file, copy it to 3 different files, change the tilesheet name of these files to the correct season then replace it with your map conditionally? (I don't even know if this can works but you can try)

#

Either by load the whole tmx file or do EditMap Replace mode for the entire map?

frozen elm
#

That's how I usually do it. It works, but it's a bit of a pain, I do wish there was an easier way (like a map property "seasonal" or something like that)

unique sigil
# cinder thorn Use the same tmx map file, copy it to 3 different files, change the tilesheet na...

the problem with that is i'm not sure if that will still work correctly with recolors. ive cut my losses and decided to just make a non seasonal foliage tilesheet (with 3 variants to accommodate recolors) just for this map and set a dynamic token to automatically replace the tilesheet depending on what recolor mod the user has. it doesnt work.

then i removed the dynamic tokens and just used a config. for some reason even that is not working. i'm stuck with the vanilla variant regardless of what i'm doing. at this rate i'm just going to do away with recolor compat entirely

cinder thorn
#

I did think about recolor compat, as long as the recolor is set up properly it should not be an issue

unique sigil
#

and by the way, the original issue i had was that i used the forest foliage from spring_outdoorsTileSheet.png, which was recolored correctly in spring by VPR (the recolor i use). but when the season changed i found out that the foliage didnt change to VPR's summer color; instead it reverted to vanilla spring for some reason

frozen elm
cinder thorn
#

Hmm, the new vpr update should be fixing that problem already

#

Let me check our code again

unique sigil
#

it was a VPR thing? then to be fair ive held back on updating to VPR 2.0. lemme check this first by changing my recolor to something else

cinder thorn
#

It was an old vpr thing

unique sigil
#

if my tokens still arent working then i will just have to take the L and get rid of recolor compat

cinder thorn
#

Grapeponta old code editing seasonal tilesheet by checking the season token, which cause that issue you said

unique sigil
#

tbh im a bit concerned that this was because of my map properties. but thats the thing, that is the feature of this cave layout and i refuse to get rid of that

cinder thorn
#

We have changed for it to always change the seasonal tilesheets to their correct season so it should fix that issue

unique sigil
#

because i think at that point its no longer a VPR issue

slender badger
frozen elm
#

It should work fine with recolour compat in general though if you replace the tmx with different season versions

cinder thorn
frozen elm
unique sigil
#

note: the colors apply correctly in spring but not other seasons, which is the biggest mystery here

cinder thorn
frozen elm
#

I don't think you should use the recolour token in the target, the way it is now it loads different tilesheets depending on the recolour

#

Instead of overwriting the one you are actually using in the map

unique sigil
#

i was applying the method i use for my tilesheet SDVpufferthinkblob so i shouldn't do that with maps? (i never made a map with a tilesheet specifically made for it, they're all dependencies)

frozen elm
frozen elm
#

I would just call it foliage and then replace with whatever version the token gives

#

Actually I don't think you should do that in the tilesheet either as it should cause the same problem there

unique sigil
#

right i swapped to earthy and this still happens, so not a VPR specific issue but the way things are set up

cinder thorn
#

It should be Target Maps/foliage_vanilla

#

And you keep the FromFile like that

unique sigil
#

i've done so many tweaks to the method in the past 2 hours i forgot exactly what i was doing. i'll try to redo this from the beginning

frozen elm
#

Either you change the name everywhere or you keep it at vanilla like pooh said, I think you might have some not matching names now

#

Actually keeping it foliage_vanilla makes more sense in your case, I was thinking of how I did it in my tilesheet but there I had them in different folders so the token was in the folder name

#

Oh you did the folder thing I guess I should read properly, I still think the issue is in your tmx though

unique sigil
#

what did i do wrong.....

cinder thorn
#

Post your tilesheet load code here again

unique sigil
#

wdym invalid tilesheet path i've set this up the way i usually do stuff SDVpufferflat

#

dynamic tokens:

       {
         "Name": "recolor",
         "Value": "vanilla",
         "When": {
           "Farm Cave Type": "Fantasy",
           "Foliage Recolor": "Vanilla"
         }
       },
       {
         "Name": "recolor",
         "Value": "desaturated",
         "When": {
           "Farm Cave Type": "Fantasy",
           "Foliage Recolor": "Desaturated"
         }
       },
       {
         "Name": "recolor",
         "Value": "bright",
         "When": {
           "Farm Cave Type": "Fantasy",
           "Foliage Recolor": "Bright"
        }
      }
    ],```

tilesheet load:
```{
        "Action": "Load",
        "Target": "Maps/foliage",
        "FromFile": "assets/{{recolor}}/foliage.png",
        "When": {
          "Farm Cave Type": "Fantasy"
        }
      },```

the .tmx file image source is the vanilla variant of foliage.png (which is in the unpacked Maps folder i usually make maps already), and the tilesheets in the release folder are sorted like in the image so the token is the folder name
#

im confused by the fact that if i use this method i get that error and the map won't load entirely, but if i put the foliage.png files in the assets folder and name them so the token is in the filename, the changes wont stick past spring (image source in .tmx file is changed accordingly of course)

cinder thorn
#

"When": {
"Farm Cave Type": "Fantasy"
}
What's the current farm cave type? If you set it like that your foliage only load if the type is fantasy and won't load if it's anything else

unique sigil
frozen elm
#

ooh if you had it in the assets folder together with your tmx then it pulls directly from the assets folder and not where you load it to, that should explain that

unique sigil
#

that type is the only type that hasn't made it through playtesting because of this stupid recolor issue

frozen elm
#

Doesn't solve the tilesheet path problem though

cinder thorn
#

Do you put the load tilesheet code before the load tmx map?

unique sigil
#

honestly at this point i'm ready to take the L but im concerned if even if i do that the colors would still remain vanilla after spring...

unique sigil
cinder thorn
#

Could be

#

Try put it before

unique sigil
#

alright i'll try that

stable grotto
slender badger
#

Like "FromFile": "assets/{{Foliage Recolor}}/foliage.png",

unique sigil
unique sigil
#

no compatibility deeds go unpunished etc etc

unique sigil
#

i give up with the seasonals, it's not worth the hassle to set up (again, not sure it can automatically do that given the map is still indoors, just with TreatAsOutdoors to spawn the forage bushes)

cinder thorn
unique sigil
#

now i can simplify stuff and prep for publishing at long last

#

i am not messing around with LocationContext for this since it's a vanilla location and all

stable grotto
#

as long as all the files have a season prefix/suffix I think it should just work by loading all of them (PIF does that one way or the other)

unique sigil
#

welp, i'll try that for another time

#

for now i will just say the cave is evergreen SDVpuffersquee

#

okay this whole debacle made me forgot to say thanks for this solution because it did work in setting up the FTM spawns esca! the CustomFields -> GSQ setup was enough, i did not need to set up trigger actions (i think because each farm cave map already has a specific load condition tied to the config token?). but it's working perfectly regardless! SDVpufferheart

lucid egret
solemn glade
#

Hi there, new to modding and will want to try it out soon. Can Content Patcher be used for entirely new items or would that be a thing for Json Assets? - I'm assuming as well that things like Alternative Texture may be better in the long run for certain "props"

brittle pasture
#

CP does that now, yes

solemn glade
#

If its purely for aesthetic/visual changes not functional changes

brittle pasture
#

AT is only for textures, not new items

tiny zealot
#

yes, you should avoid JA for new projects. it's only still around to keep the lights on for old mods

solemn glade
#

Gotcha, so CP has got functionality for entirely new items now and AT is better suited for changing appearance of base-game items

#

think AT is the way forward then

#

I like the idea of not having mods clashing and luckily mods like AT allow you to grab as many as you like

tiny zealot
#
  1. you can still use CP to change appearances, but CP changes what every instance looks like, while AT lets you change it per-item
solemn glade
#

That's very nice

tiny zealot
#
  1. strictly speaking, CP didn't gain any functionality, but the game's data structure allows modders to use CP to add items more easily and without fear of conflicts with other mods (starting with 1.6)
solemn glade
#

Oh right the 1.6 update allowed that

#

Yeah

#

In terms of clothing, is it best to mostly stick to Fashion Sense?

tiny zealot
#

it depends on your taste. like with other items, it's easier to add new clothing items with CP now due to data changes in 1.6

#

fashion sense has fewer restrictions on what's possible to achieve (check out The Toppest Of Hats for an extreme example of not having limits)

calm nebula
#

The the what

tiny zealot
#

personally, i prefer mods that add "real" items, since that gives me more space to interact with the mods, instead of just firing up the mirror

calm nebula
#

I'm of two minds of it

#

For cosmetics I like the mirror

#

But I also tend to dislike items for the sake of items

tiny zealot
#

for me, acquiring the items is at least half of the fun, and more than that if it's memorable in some way. then when i wear the thing, i remember how i got it, which i love to do

ivory plume
#

(With the latest Fashion Sense update, you can now have a single Content Patcher pack which add items while also registering them with Fashion Sense if it's installed, so they appear in the mirror and such.)

tiny zealot
#

oh, what a nice feature!

solemn glade
velvet narwhal
#

oh i can finally have tags for the fashion sense stuff eyeshake

tiny zealot
#

however, would you like one of 19180233 varieties of witch hat

calm nebula
#

I think it's due to pants being annoying

#

And few pixels = not much detail

velvet narwhal
calm nebula
#

Morning, pathos!

tiny zealot
#

can i offer you a witch hat or a cottagecore dress in this trying time

velvet narwhal
#

i'll take 1 scrunggly oversized snuggie

brittle pasture
#

yeah 4 pixels per leg, borders included, are not much to work with (provided you're sticking with vanilla scaling)

brittle ledge
#

Yeah, most of the masc or unisex stuff tends to be shirts and hats (e.g., the Digimon Survive FS pack)

calm nebula
#

Can someone make a slanket

wheat finch
#

What the hell is a slanket?

velvet narwhal
#

snuggy blanket i assume, which sounds neat but i'm short so that'd be more like a snuggy ballgown to me SDVpufferthink

tall raft
#

Misread that as "snakelet" and was like "a bracelet for snakes?" (I'm a dumb dumb)

sacred sluice
#

Hey guys

#

excuse me

#

what is that site that you can send your code and it will generate a link or something like that?

brittle pasture
#

!json

ocean sailBOT
#

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

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

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

sacred sluice
#

Thanks!

solemn glade
#

Well if its simple enough, I would be more than happy to make some of my own for males. Will have to freshen up on my pixel art

solemn glade
tardy adder
#

Mike NPC is fighting the users again, he either duplicates or ceases to exist... Who knows why, the users never give me a proper log 😔

#

Also I shouldn't be trying to see what's wrong with it... on my phone, in ze bus >->

oblique meadow
#

Hey all. Dumb question and Im a bit stumped. So im making a custom Farmhouse. Ive checked the wiki, googled, checked out other farms and I cant figure out how to change the danged Bed start location from 9,8 . I've set the DefaultBedPosition Tile property on the back layer...and nada. Am I missing something?

rare orbit
#

btw? if i use the converters for shop tile framework to content pacther will it work for mods like stardew aquarium? or is it too complicated to convert that part?

#

im just thinking since shop tile framework isn't really constantly updated like say content patcher i figured it'd make it easier to convert the stf files to cp

brittle pasture
#

perhaps, though aquarium also does some of the asset stuff in C#

tiny zealot
#

It Depends™️
if memory serves, aquarium still uses all of the obsolete dependencies it does because its creator(s) didn't have enough time to redo everything, so it's probably not that straightforward

rare orbit
#

true true

#

just wondering since i assume the converts mainly do straight forward mods? like ones that just add extra items to vanilla shops rather than fixing whole expansion shops

#

it still works for me but i just was simply pondering

#

since idk how long shop tile framework will be updated for and i know that for now at least content patcher likely will be updated and actively maintained

long jungle
#

// turns a line into a comment, right?

What are the other symbols that are used for longer comments/paragraphs?

drowsy pewter
#
text here
*/```
long jungle
tiny zealot
rare orbit
#

true true

#

so the converters are mostly good for say stf mods that add items to vanilla shops? while anything adding to outside vanilla is a bit harder?

velvet narwhal
#

converters are mostly for 1.5.6 mods and xnb mods

latent mauve
#

not sure what you mean by "adding to outside vanilla" here, unless you mean making content packs for other frameworks? Which is still supported, it's just that a lot of those legacy frameworks got their features pulled into Content Patcher or the features got dehardcoded in vanilla at this point (custom music, shops, etc.), so it's easier to just use Content Patcher to accomplish those tasks.

mighty quest
#

GetHarvestSpawnedObjectQuality(Farmer who, bool isForage, Vector2 tile, Random random = null)
I understand that the base game doesn't care what the object is. But the introduction of this method now makes it a lot more clunky to set quality based on the object.
Would be great if we could pass the object instance as a parameter instead of passing obj.isForage() and obj.TileLocation

rare orbit
brittle pasture
#

That's not really related?

rare orbit
#

it kinda is

#

right??

iron ridge
#

my converters do not support JA items

rare orbit
#

wait really?

iron ridge
#

like the ocnversion will work

drowsy pewter
#

Why do you need to convert an STF mod anyways

iron ridge
#

but I severely doubt it will work without manual changes

iron ridge
rare orbit
drowsy pewter
#

Just wanted to make sure its for personal use

rare orbit
#

so more than likely it's more so under the hood changed rather than a simple conversion?

#

it is unless i get the green light from the original creator!

rare orbit
#

!converters

velvet narwhal
rare orbit
#

oh ok

#

sorry bout that

#

does anyone who has made recipe mods for content patcher mind helping me out with it? mostly the content files. i've reviewed the tutorials several times but i still don't entirely get it

#

not like make it for me but showing me the steps

#

sorry if i am being rude. i am trying not to be.

velvet narwhal
#

since it's just a string, each "field" on the wiki is determined by each /, so when you're seeing "field 0, 1, 2, 3" etc, you can count it like this: 0/1/2/3/4/5/6/7
it's also best to look through the unpack for how the vanilla recipes run

rare orbit
#

mhm mhm!

#

so for the custom recipes i should have it like this:
Blueberry muffins
1 blueberry: 258 1
2 wheat flour: 246 2
1 sugar: 245 1
1 egg: 194 1

#

dang it didn't finish

#

that's correct right??

velvet narwhal
#

yeah they'd need to be within the field used for the ingredients, i can't access the wiki right now but it should look like /258 1 246 2 245 1 194 1/

tiny zealot
#

(sorry, tangent, but i am thinking of a recipe that calls for two sacks of flour and one (1) blueberry /lh)

rare orbit
#

ohhhhh thank u so much!

velvet narwhal
pine elbow
#

Hi, can anyone give me the basic template for replacing character portraits and sprites(including winter+festivals)? I have no experience in coding

mighty quest
#

can anyone tell me what file SpawnFishData is being read from?

#

specifically CatchLimit

royal stump
#

as a class, SpawnFishData seems to be a single "Fish" entry from Data/Locations

ocean sailBOT
mighty quest
#

So CatchLimit is just set to -1 on the constructor and never read from any file?

royal stump
#

CatchLimit is a field in Data/Locations fish entries

brittle pasture
#

the Quick Start section has an example for swapping in a portrait

pine elbow
mighty quest
#

ok so that's probably not relevant to legendary fishes, right?

#

I'm trying to figure out how 1.6 limits legendary fish catches

royal stump
#

I'm pretty sure it's set to 1 for those

#

bit hard to tell because I don't know the fish IDs, but there are 5 entries with "CatchLimit": 1, in the base game, and the rest are -1

mighty quest
#

in Data/Locations it's only set to -1

royal stump
#

in the Data/Locations asset, e.g. the first entry in Town's Fish list

mighty quest
#

oh youre right

#

thanks

tardy adder
#

Was wondering why Leo ct dialogue wasn't appearing, forgot he has LeoMainland ><

quaint moss
#

Is it normal for marriage dialogue separated by #$e# to be cut off completely for the day at random? Like the spouse has more text boxes to display but you cannot talk to them anymore after the first one.

#

This happens frequently to two different NPCs of mine, and has happened since 1.5.

velvet narwhal
#

i haven't tested in depth but it probably has something to do with the spouse kissing effect, i've kind of left the initial spouse dialogues with either all #$b# or just single lines, and if i wanted more in depth ones i use BETAS for after kiss dialogues

quaint moss
#

I wonder if this happens in vanilla too, would be nice if it could be fixed if it's really as simple as it sounds

velvet narwhal
#

considering an npc dies, figuratively, upon marriage, it'd have to rewrite the marriageDuties method

rancid temple
#

Hm, can't say I've noticed any weird marriage dialogues with vanilla NPC's. Only just got married in SVE but all the lines I've gotten so far have been the correct number of boxes as far as I can tell looking at the code

#

Wonder if it's something specific with those NPC's

icy viper
#

@brittle pasture Hey, sorry for the noob question. I'm wondering if there's a docs or something like that for your API?

brittle pasture
#

which ones?

gaunt orbit
#

what are you trying to do galaxy?

icy viper
#

Oh, I thought I could read what extra items are being put lol

#

Can I?

lucid iron
#

Yeah GetExtraOutputs

brittle pasture
#

ah, I keep forgetting I put that function there

#

wait no, I was thinking of GetFuelsForThisRecipe

#

yeah GetExtraOutputs should work

#

though it returns item queries, not the items themselves

lucid iron
#

I still haven't implemented display for category emc fuels

#

Is there mod out there using that kasumidetect

brittle pasture
#

if you want to get the actual extra outputs for a certain recipe, the most reliable way to do so is reading the chest inside the primary output after the machine's already outputted

brittle pasture
gaunt orbit
#

for a split second I saw emc and thought someone had ported Equivalent Exchange / ProjectE to stardew

brittle pasture
icy viper
#

Sorry I wasn't clear, I meant input items. As for what though, still not clear atm lol. I was thinking maybe I could use it for custom preservatives.

brittle pasture
#

if I yeet it tomorrow probably nobody would notice

lucid iron
#

Input is just vanilla stuff

#

Unless u r use emc fuel feature

tropic walrus
#

How do I add a custom mineral to geode item pools? I assume they aren't added automatically, at least

gaunt orbit
#

rrrggghh I gotta fix my controller input system and I don't wanna

gaunt orbit
gaunt orbit
#

oh right wiki is dying

icy viper
gaunt orbit
#

well there's a field on the item data for the geode that you can add entries to

icy viper
#

Wiki died? What happened?

gaunt orbit
#

if you unpack your gamedata you'll see it

gaunt orbit
brittle pasture
#

but can you be clearer as to what you're trying to do?

lucid iron
uncut viper
gaunt orbit
iron ridge
#

Wiki fine for me

gaunt orbit
#

I wonder what's up

brittle pasture
#

it's probably the console release surge

lucid iron
#

It was getting really fat

gaunt orbit
#

maybe it's just me then

lucid iron
#

But yeah wiki getting ddos'd basically

gaunt orbit
#

wiki has been hideously slow for me lately

lucid iron
#

It's slow for me too

velvet narwhal
#

all of my info is packed in this peanut brain woopsDerp1

lucid iron
#

Still ppl don't check wiki for mods thing there's smapi.io

gaunt orbit
lucid iron
#

It was hitting page size limits tho, had to be moved

uncut viper
lucid iron
#

Ppl check smapi.io which is basically a cached version of the wiki page

#

Now it'll be a cached version of the github

brittle pasture
velvet narwhal
#

praise be the wiki moderators, constantly checking for trolling as well as seeing my dumb minimal edits because i made (1) typo

lucid iron
#

Why did they keep doing that...

uncut viper
#

i think it was just edits to the wiki page that were the main source of the problem

lucid iron
#

Was it 1 particularly motivated person

uncut viper
#

not actually loading it

#

server-wise anyway

brittle pasture
# lucid iron Why did they keep doing that...

well meaning ppl who don't know 1.6 exists, seeing that ||Caroline likes horseradishes|| on the wiki, went to give her one and getting lowered hearts and deciding to "correct" it

tropic walrus
icy viper
# brittle pasture but can you be clearer as to what you're trying to do?

So, basically I wanted to make a product that takes two or three items. It's kinda similar to Wine and other similar objects where it's named based on its inputs. But since the product I'm thinking of also has "fuels" unlike wine I also wanted to take those into consideration and name them accordingly. I don't think that's gonna be possible with CP so I was thinking of resorting to C# and learn how I can achieve that.

#

Sorry if that makes things even more confusing. I am not very good at explaining things.

brittle pasture
#

though if you do use a custom OutputMethod I suppose you need the API to get the fuels that will be eaten before applying your own changes

icy viper
#

Yeah, there's that but for the time being, I hope the one in the docs is enough. Thanks!

lucid iron
#

Do you? I think vanilla fuel is taken independently of output method

#

Like anvil

brittle pasture
#

yeah

#

so don't use vanilla fuel if you want those features

icy viper
#

Gotcha SDVpufferthumbsup

velvet narwhal
#

woopsDerp1 what happened to darkwings for it to jump 0.0.9 versions

brittle pasture
#

I was too lazy to move the text cursor 2 characters to the right

#

when incrementing the version number

uncut viper
#

also theres infinite versions between 0.0.0 and 0.1.0

clever sinew
#

Might be wrong channel, yell if so, but how many individual npc tastes do folks think is good when adding new objects?

#

I.e. does everyone need to care about this new item or can I be lazy 😭

brittle pasture
#

tbh whatever your heart desires

lucid iron
#

I have added 0 PecoSmile

#

But it's a creative writing thing u know

#

Would penny enjoy this Object

clever sinew
#

My heart is torn unfortunately. I guess the better question is, is it weird to have some custom tastes but not all

#

The kids hate this vegetable thing and nobody else really cares

velvet narwhal
#

i do a flat loved/liked/hated but that's dependent on what i've made

clever sinew
#

Food and how folks feel about it is just such a varied thing

#

I think at a certain point I will just go with my gut and make myself stop overthinking it

velvet narwhal
#

you could also leave it to the whims of vanilla

#

cause iirc vanilla has categories set

clever sinew
#

I thought it was just like “all milks all eggs all fruits all veggies” sort of thing, no?

brittle pasture
#

yeah

dire nest
#

Hello 👋 . I need help with a CP mod. The cask in my mod Uppergrade does not use the production time I've set. For example, I've set a production time of 56 days for wine, but it actually takes 62 days and 1 hour. Why is this happening? I think this behavior is new since the 1.6.9 update or so.

https://github.com/Molenfeuer/Uppergrade/blob/main/data/cask.json#L190

brittle pasture
#

that file looks fine to me, weird. UI Info/Lookup Anything shows 62 days?

rancid temple
#

I've noticed the time in UIIS2 is wrong

dire nest
rancid temple
#

Or maybe it's Lookup Anything that's wrong

#

Lookup Anything shows the correct time based on math

gaunt orbit
rancid temple
#

But UIIS2 always shows longer times, maybe as if it's skipping the time between 2 and 6

#

I thought there was built in math to deal with sleeping time though

brittle pasture
#

that seems plausible

#

is the 62 days coming from the mouse hover or F1? the former's UI Info, the latter's LA

rancid temple
#

Maybe I have it backwards, for a wine I didn't add but is being added by a mod, UIIS2 is showing a shorter time and LA is showing longer

#

I was testing earlier with the Crystalarium when I noticed it

#

Crystalarium is way off

dire nest
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 31 C# mods and 37 content packs.

gaunt orbit
#

@tropic walrus

{
  "Target": "Data/Objects",
  "TargetField": ["749", "GeodeDrops", "Default", "RandomItemId"],
  "Entries": {
    "MyItemId": "MyItemId" 
  }
}
``` This would add an item with the id `MyItemId` to the drop pool for the omni geode at the same rate as everything else
for more info, use the `!unpacking` command to get instructions to unpack your game files for use as a reference, and see here <https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editdata.md> for detailed documentation on using CP for data edits
teal bridge
uncut viper
#

who says semver is limited to int

teal bridge
#

The System.Version fields are limited to int.

gaunt orbit
lucid iron
#

i thought u could just -Whatever

uncut viper
#

well yea, but semver isnt just smapi. just bc smapi limits to ints doesnt mean there are limited version numbers

#

or that limit, anyway

lucid iron
#

so what is stop u from 0.0.2147483647-1

calm nebula
uncut viper
#

i dont think smapi handles negative version numbers

gaunt orbit
calm nebula
#

Nothing says I can't put the entire script of bee movie there

lucid iron
#

thats the string "1"

#

not a number Dokkan

uncut viper
#

i would disagree with this but its not important bc it was a joke throwaway comment anyway and i dont actually care

gaunt orbit
#

(sorry)

uncut viper
#

no you're fine! i just dont want another situation where people think im serious about something im entirely not about and get on my case about it lmao

calm nebula
#

0.0.0-bee.movie

teal bridge
teal bridge
velvet narwhal
#

gotta implement that, "Ability To Read" mod, with the "Good On You For Reading" secondary mod, and if only one is installed, it sends the bee movie in smapi

lucid iron
#

i kind of admire the bravery to release incomplete mod

uncut viper
gaunt orbit
#

only mods that meet mvp

velvet narwhal
#

will mods be complete when vanilla stops updating

teal bridge
lucid iron
#

yea so incomplete as in

gaunt orbit
#

updates are temporary, scope creep is forever

lucid iron
#

mods that r arguably not even mvp

gaunt orbit
#

I know I'm just joking

calm nebula
teal bridge
#

I think it's like the modder's version of patent trolling. You know it doesn't actually do anything useful, but it's important to occupy the name and page before anyone else can take it.

gaunt orbit
#

just do the thing that happened to WAILA and name it with increaingly deranged reinterpretations of the existing name

teal bridge
#

In my mental map of semver, 0.0.1 means "ludicrously unstable" and 0.0.0 means "literally doesn't do anything".

lucid iron
#

what is WAILA bolbphase

uncut viper
#

what am i looking at

#

minecraft mod that tells you what you're looking at

gaunt orbit
#

and now we're on to WTHIT (What The Hell Is That)

lucid iron
velvet narwhal
#

don't we already have that? sampi, scampi, smepi, spami

lucid iron
#

well those r just mispel

#

these r actual mod names?

gaunt orbit
#

(that's the mod icon for WTHIT)

velvet narwhal
#

time to dig into 'i can't remember the history of why it's called "smapi"'

uncut viper
#

Stardew Modding API

velvet narwhal
#

so we can butcher it

gaunt orbit
#

call it by its full name
Stardew Modding Application Programming Interface

drowsy pewter
#

Please, Mr. Application Programming Interface was my father

dire nest
calm nebula
#

Probably

rancid temple
#

I think the issue is with LA since it's showing longer, maybe missing the math for sleeping times

calm nebula
#

Yes

rancid temple
#

I can watch machines finish in time with UIIS2

brittle ledge
#

when I've done items it's generally been poking the people whose NPCs I enjoy and going "Hey, would your character like/hate X?"

clever sinew
#

Makes sense! Thank you

next plaza
#

(Re: semantic versions being negative - I tried that the other day and SMAPI didn't accept it)

rancid musk
next plaza
#

Ah, interesting, I didn't realize that. I mainly tried it because SMAPI's SemanticVersion stores it as int

calm nebula
#

PR pathos to make it a uint

next plaza
#

That'd probably be considered a braeking change 😛

lucid iron
#

what would it break

next plaza
#

Mods referencing the version numbers

brave fable
#

negative values would underflow to an absurdly high number instead of just throwing an error about negative values?

next plaza
#

No, SMAPI won't parse a negative sign. (Source: I tried it)

atomic vale
#

is the tag fish_pond_ignore a base game tag?

next plaza
#

(As for mods using SemanticVersion... CP uses it a fair bit for all the migration stuff)

lucid iron
#

hrm i still cant figure out how to ungreenhouse a greenhouse

calm nebula
#

Apparently according to my phone I walked 16 km today

calm nebula
brave fable
lucid iron
#

well i want to let people decide if they want to obey season rules in the greenhoues, for planting

calm nebula
#

That said, breaking my mods more is good, not bad now

next plaza
#

Why would someone want that SDVPufferThink

lucid iron
#

i thought unsetting map prop IsGreenhouse would work but it didnt

atomic vale
lucid iron
#

yea

#

its just a setting, bc i did make the greenhouse seasonal

#

anyways i prob just give up cus it is hardly essential feature

next plaza
#

(Hardcoded in GameLocation constructor)

calm nebula
#

You're a c#

lucid iron
#

the map having IsGreenhouse is a red herring then

calm nebula
#

You can do what you want

lucid iron
#

i am but i put my content modder hat

calm nebula
#

The Italians think we do not cook apparently

#

They have given out tiny recipe books

atomic vale
#

the wiki is not liking me

next plaza
#

It makes it so that item can't be used in fish ponds

low snow
#

hi do you have any essentials mod for a witchcore modpack ?
im working on making one and if you have any advices, mod etc ill be grateful

lucid iron
low snow
#

thanks

atomic vale
#

can you in a mod remove a tag and only that one tag

drowsy pewter
#

context tag, yes you can

#

if you know how to add a tag, then do the same thing but set the tag value to null (no quote) instead of the tag value

#

if you dont know how to add a tag, ill grab an example rq

drowsy pewter
atomic vale
#

thx

drowsy pewter
#

no prob

#

(thanks pathos for making context tags more easily modifiable)

tender bloom
#

I should update my wiki snippet for context tags

atomic vale
drowsy pewter
#

Wow, wiki is super slow for me rn

atomic vale
#

same

drowsy pewter
#

but there is a list somewhere on that page hidden under a dropdown

atomic vale
#

wow it jsut spat outa 503 error!

drowsy pewter
#

"raw tag dump"

#

Haha the page loaded for me but yeah it must be struggling rn

atomic vale
#

the wiki host is the one stuggling

#

what does fish_upright do

#

I am 100% stumped

tender bloom
#

Maybe related to how fish move in aquariums?

pine elbow
#

i'm following the Content Patcher page on the fandom for mod-making and it says to use "2.3.0" because it is the most recent version. Is this referring to smapi? In that case, do i have to use "4.1.7"?

lucid iron
#

its the version of content patcher

#

although, it should actually be 2.4.0 now

#

i didnt know we had fandom for mod-making

atomic vale
pine elbow
#

also what is the difference between "load" and "editimage"

brittle pasture
pine elbow
#

wait so do i use both?

latent mauve
#

As a general rule: Edit is for changes to existing assets, Load is for brand new assets/targets that don't exist yet.

brittle pasture
#

If you're doing total portraits replacement it probably doesnt matter what you use

latent mauve
#

Using Edit for things like portraits avoids running into mod conflict issues where two mods try to load the same asset exclusively, so neither works.

pine elbow
#

but specifically what does it mean by editing? like you're transforming the location?

#

You're replacing the image

#

the guide says "load" is for replacements though

latent mauve
#

EditImage in this case would tell the code to replace an image at your Target with the asset in your FromFile

pine elbow
#

ohh okay

#

so what does load do then

latent mauve
#

Load tells it to create a file at your Target, using the asset at your FromFile. But this can also overwrite if it already exists.

#

So both technically will do the same thing, but EditImage avoids the conflict if someone's using another portrait mod, too, and both of you are trying to Load in the same destination.

pine elbow
#

okay, thank you

teal bridge
#

Is reload_i18n supposed to... reload i18n? It's not reloading i18n for me. Does it not work on the default.json?

brittle pasture
#

If it's CP I think you need to also patch reload afterwards

#

reloading a C# mod's i18n always worked for me

teal bridge
#

Not CP. I'm looking at the TranslationHelper and it hasn't updated.

tiny zealot
#

if you put the strings into assets you might need to invalidate them

teal bridge
#

Nope, none of that. Just regular, vanilla, string in default.json, change it while running, and after a reload_i18n command, the translation helper still has the old string.

brittle pasture
#

uhhhh make sure you're modifying the file in the Mods folder?

rancid temple
#

Reload command only lists i18n reloading in reference to CP, does it for sure work with C# mods?

calm nebula
#

Can you make a minimum example

#

And upload it as a bug to the smapi github

#

(Sorry)

pine elbow
#

what does {TargetWithoutPass} do?

teal bridge
#

Hmm, it says This only affects new translations the mods fetch; if they cached some text, it may not be updated.. I guess maybe the "they" here includes SMAPI itself.

brittle pasture
#

(I may have also Berenstain'ed myself and reload_i18n never worked with smapi)

teal bridge
#

It's listed under SMAPI in the help, not Content Patcher.

calm nebula
#

What you are doing should work

uncut viper
teal bridge
#

Ah well, it's not really important enough to chase down, just irritating.

teal bridge
#

Oh geez, I know what the problem was... sigh, I've already been spoiled by my own tools, I was editing the json file in the source path instead of the mod path.

#

Nothing to see here, please disperse!

atomic vale
#

avg me when i get hooked and code till 7 AM and then fall asleep

mighty quest
#

Is Century Egg a new vanilla item?

#

nvm

drowsy pewter
#

Lol

mighty quest
#

Is it intended that Object.onReadyForHarvest only runs when the object is in the current location?
Edit: Only happens with CJB instant ready cheat.

stone hornet
#

can someone help me look over a mod?

brittle pasture
#

!json

ocean sailBOT
#

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

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

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

stone hornet
lucid iron
#

you do Load to create a texture/asset

#

and thereafter you can make edits as you wish

stone hornet
#

op put editimage before load actions

brittle pasture
#

are they the same image

stone hornet
#

same image, yes

lucid iron
#

that part doesn't matter

brittle pasture
#

that could also be faulty code

uncut viper
#

are they the same target?

brittle pasture
#

oh yeah loads always run before edits

lucid iron
#

you can edit image on a load you did if it's something you want to conditionally change

stone hornet
lucid iron
#

but yea pls link mod?

uncut viper
stone hornet
#

but why did they use edit for the winter sprites but not for the regular sprites?

tiny zealot
#

if the regular sprites includes e.g. summer and fall outfits, then it's because vanilla doesn't have summer and fall outfits, only winter and not-winter

stone hornet
#

theres no summer/fall, just default

tiny zealot
#

can you tell us what mod it is? that might help

stone hornet
#

okay

tiny zealot
#

if it's pre-1.6, then that might also explain it, since winter outfits were added in 1.6. it's hard to guess without seeing some code or knowing what the mod is

uncut viper
#

(the reason we need it is because there is no one correct way to do almost anything with sdv modding or content patcher, and context matters a lot)

stone hornet
stone hornet
tiny zealot
#

yeah the original release was during 1.5, so that's probably it

brittle pasture
#

just downloaded, yeah in this case there isn't really a difference

uncut viper
#

i would probably choose a different mod to study from, or just study from the content patcher docs themselves

stone hornet
uncut viper
#

well, it would be very difficult to get far at all if you're just copying things from other mods without understanding at all what they do, since everything in this content.json is also on the content patcher docs, but you're always welcome to ask in here for help understanding things too

tender bloom
#

one thing to keep in mind is that other mods are sometimes badly made

#

it's best to look at a few examples to get a broader idea, and figure out what's the same/different

drowsy pewter
#

I love when I'm helping someone and I point out some misconception in their code and theyre like "oh i got it from <other mod>", when i know that the other mod got it from another mod, and another mod misunderstood an example I gave them in the first place

#

That's both a very vague and very specific sequence of events but I feel like it's happened a few times.

velvet narwhal
#

my favorite game of telephone

drowsy pewter
velvet narwhal
#

jokes on them i hope no one uses my mods as references, it's a mess in there

#

do as i say not as i do yadda yadda yadda

drowsy pewter
#

anyways looking at other mods generally teaches you what works (ofc, always check if it does work in the first place), but its up to you to learn the best practices

#

which is not an overnight thing

next plaza
#

Real modders cobble something together from documentation without any examples. And then proceed to take at least ten times as long to learn or do anything

shadow pagoda
#

Is there a way to know if the player has something in their hand? Like when they're in their inventory, and they click on an item so it follows the cursor. It's not considered in their inventory, which make sense.

tiny zealot
#

in what context? in C# you can check Farmer.ActiveItem and/or Farmer.ActiveObject

lucid iron
#

i can have as many %item as i want in mail right

brittle pasture
#

yes

lucid iron
#

hm

uncut viper
#

unless you ask certain people in here who will say you can have only as many %items until you reach the max length of int32 for the length of your mail string

#

/lh

lucid iron
#

button ilu

#

but hm can i %item object a tool think

#

its not a default tool

uncut viper
#

doesnt it take qualified item ids

lucid iron
#

wiki's prob outdated

brittle pasture
#

the new mail commands are still only on 1.6 migration page

#

%item id (T)IridiumMilkPail

lucid iron
#

ok cool

#

i am attempting to get rid of mfm dependency in birb mod

brave fable
#

you need a milk pail for birds SDVpufferthink

teal bridge
#

Gotta carry those eggs in something, right?

shadow pagoda
brave fable
#

that's usually handled per-menu instance in IClickableMenu menu.heldItem

velvet narwhal
brave fable
#

i don't believe heldItem is a single inherited member between many menu types, maybe a member of MenuWithInventory?

unique sigil
#

quick question: is it possible for a farm map to just... not have a greenhouse?

lucid iron
#

i format this mail wrong somehow bolbthinking

"Dear @, ^^Your grandmother, an avid birder of many years, left you this. We hope you find a way to continue her tradition this spring. ^^Good luck, and watch for bird's nests! ^The Pelican Town Ornithologist's Guild%item id (T)Ivy_OrnithologistsGuild_LifeList %item conversationTopic (T)Ivy_OrnithologistsGuild_LifeList 14 %%[#]Ornithologist's Guild: Introduction
velvet narwhal
#

Guild%item maybe?

uncut viper
#

mail commands need to end with %%

#

and your first one does not

lucid iron
#

oh i thought it was only 1 time

velvet narwhal
#

"{{i18n:Mail.HandHolder}} %item id (O)FlashShifter.StardewValleyExpandedCP_Fungus_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Stalk_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Void_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Slime_Seed 1 %%[#]{{i18n:Mail.HandHolder.Title}}",

uncut viper
#

it might be one time actually idk

velvet narwhal
#

this is what i get away with woopsDerp1

uncut viper
#

i forget what i did last time i needed two commands

brittle pasture
#

no it's every time

uncut viper
#

ok good i didnt gaslight myself

lucid iron
#

yay worked i got da book

velvet narwhal
#

all of us depending on memory cause some of us have wiki access with no lag, and others do

uncut viper
#

not even i18ning it smh

lucid iron
#

i did i18n it

#

this is the patch export

#

in case the err was inside i18n

uncut viper
#

oh ok. forgiven

lucid iron
#

but hm

#

the mfm delegate was

(l) =>
    !Game1.player.mailReceived.Contains(l.Id) &&
    (SDate.From(Game1.Date) >= new SDate(5, "spring", 1) ||
    SaveDataManager.SaveData.ForPlayer(Game1.player.UniqueMultiplayerID).LifeList.Count > 0),
#

i dun remember what checks for later than spring 5 year 1

#

was gonna just use DAYS_PLAYED 5

velvet narwhal
#

spring 5 is community center isn't it?

lucid iron
#

no likr

#

whats the equiv in gsq

velvet narwhal
#

oh, yeah days played 5 works

lucid iron
#

might actually be 4

velvet narwhal
#

if you wanna keep to syntax you can do SEASON spring, DAY 5... right?

#

or was it SEASON_DAY spring5

lucid iron
#

it has to be spring 5 y1 or later

#

cus ppl install mod in middle of play

velvet narwhal
#

i'd check days played then

#

it might act weird on people who use the day skipper (probably) but eh

uncut viper
#

someone can correct me if im wrong but i dont know if days played would account for farmhands joining late

rancid temple
#

Also days played would be more annoying to test

uncut viper
#

it just gets incremented on newdayafterfade but if theyre not there when it happens, then...

brittle ledge
uncut viper
#

1.6.9 added a DAY_RANGE GSQ though i believe so you can just check for spring 5 or later

brittle ledge
#

CC intro is first Sunday (assuming you activate the cutscene) iirc

uncut viper
#

DATE_RANGE <min season> <min day> <min year> [max season] [max day] [max year]

#

so DATE_RANGE spring 5 1

velvet narwhal
#

vanilla really did eat up mfm

lucid iron
#

hm the AddMail thing happens 1 day after mod install

#

strange

uncut viper
#

well thats not really an mfm specific thing thats just a gsq

#

are you adding mail into the correct mailbox

brittle ledge
#

in fairness 1.5 already had a lot of mail stuff available to CP

#

so 1.6 was more nail in the coffin kind of thing

lucid iron
#

this mail stuff sure is complicated sleep

velvet narwhal
#

iunno i find machines the most complicated

rancid temple
#

CC intro cutscene is available starting on the 5th of Spring

velvet narwhal
#

I'M NOT CRAZY

brittle ledge
#

oh hm

lucid iron
#

i take like

#

30% debuff in figure it out, when i dont like the syntax

brittle ledge
#

actually yeah, I think boulder triggers overnight so you don't actually see it until the 6th

velvet narwhal
#

is it because mail has so many ways to get it that you're just like SDVpufferclueless

lucid iron
brittle pasture
uncut viper
#

i dont like machines because i dont like whatever the fuck goes on with flavoured items

brittle pasture
#

yeah that's pretty cursed

velvet narwhal
#

i have no idea how it works and i probably will not bother to Figure It Out

rancid temple
#

I don't like flavored items in general

#

Reminds me of the dumb meta data shit from Minecraft

hard fern
#

Does anyone....

rancid temple
#

Does anyone like flavored items?

velvet narwhal
#

mid sip of flavored water SMCPufferChickSweatSip

hard fern
#

Yeah

velvet narwhal
#

i assume, the people who make EBAGI content packs do

rancid temple
#

I bet CA did when he first made it

#

Because it saved a shit ton of time making a bunch of extra assets

brittle pasture
#

(every day I wake up I pray no one has made a mod that uses that feature)

lucid iron
#

so is there way to get mail immediately on install

velvet narwhal
#

i now gotta use it, sorry

brittle pasture
#

(because I'm sure there's like ten thousand bugs)

lucid iron
#
"{{ModId}}_Mail_Introduction": {
    "Id": "{{ModId}}_Mail_Introduction",
    "Trigger": "DayStarted",
    "Condition": "!Ivy.OrnithologistsGuild_HAS_LIFELIST, DATE_RANGE spring 5 1",
    "HostOnly": false,
    "Action": "AddMail Current Mods_Ivy_OrnithologistsGuild_Introduction",
    "MarkActionApplied": true
}
rancid temple
#

You can send mail on day started now

velvet narwhal
#

you can set Now after the mail ID

lucid iron
#

i did this but it still took sleeping

velvet narwhal
#

that's default tomorrow without it

uncut viper
#

custom GSQ SDVpufferthink

lucid iron
#

ah ok

brittle pasture
#

yeah needs Now

lucid iron
#

i didnt want to figure out what this is in detail sleep

#

i added the gsq as part of the changes

hard fern
#

Why do i keep misreading gsq as je ne sais quoi

uncut viper
#

it moreso just made me curious why you didnt just add the mail with C# on day start after spring 5

#

if you're already in c# territory

lucid iron
#

cus i have some -ism or other about this

uncut viper
#

fair enough

velvet narwhal
#

"if it can be done in cp it be done in cp"

lucid iron
#

and OG has a cp component too so

#

its not hueg diff either way

uncut viper
#

tbf you could also just as easily add to Data/TriggerActions with C# too if it was the desire for a trigger action specifically

#

but yeah it doesnt matter

#

you dont need MarkActionApplied

#

or HostOnly

lucid iron
#

i'll prob get rid of hostonly yes

#

but i was thinking it could be MarkActionApplied: false in case ppl lose their book somehow?

rancid temple
#

Aren't those just the default values?

lucid iron
#

its a tool tho so u would need cjb to do that

uncut viper
#

they are yes

brittle pasture
#

or add them to the bookseller

#

or the ||lost crow shop||

lucid iron
#

ah true DokkanStare

velvet narwhal
#

the book is a tool? should auto keep

#

does lost and found still exist in the manor or was that usurped by 1.6.9

brittle pasture
#

right, but you can still lose it some other way

rancid temple
#

Do custom tools go to lost and found?

brittle pasture
#

no

lucid iron
#

u gotta add it

rancid temple
#

Ah

uncut viper
#

MarkActionApplied: false wouldnt work anyway though, it'd give you the mail every day forever

brittle pasture
#

you need to condition on the farmer not possessing the tool somehow

lucid iron
#

but theres a gsq guarding it

uncut viper
#

i dont know what a lifelist is

lucid iron
#

anyways i prob won't do any additional operational changes

#

but i'll put suggest when i send PR

#

lifelist is the book/birbdex from birb mod

#

it's a tool

rancid temple
#

Does the GSQ check everywhere for it?

lucid iron
#

it used to not be tool and caused pam to not take her potato juice

uncut viper
#

how does the LifeList counter keep track of when they lose the tool?

lucid iron
#

i have no idea

#

didnt read that part of code

#

but i could very well just search all inventories for it, not that bad

rancid temple
#

Wouldn't that ping off multiplayer then?

lucid iron
#

putting it in ||crow shop|| is pretty on brand tho

#

so yea i'll just leave this mail alone

uncut viper
#

yeah actually if the lifelist counter works off of player uniqueid then im not sure how it'd determine if the players tool is in a chest or not without searching globally, in which case im not sure how it accounts for other players

#

it feels like it would either give you a new mail if you put your lifelist in a chest for a day or alternatively only the first player would get this mail

lucid iron
#

hm

#

i think it should be omit probably

uncut viper
#

why not just check for them having the mail flag

lucid iron
#

so it just get shortcircuited anyways

#

MarkActionApplied is sufficient here

reef cosmos
#

Can anyone tell me why the Greenhouse_Dirt map is not loading properly? I've been messing with it for a while now and nothing seems to fix it. Here's what my content.json looks like

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 35 C# mods and 143 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

deep cypress
#

Working on my mermaid farm mod. Went and broke the game so bad BusStop would not load.

hard fern
#

SDVpufferwaaah im so bad with writing dialogue... This is take 3 of it now? Oh boy...

shadow pagoda
velvet narwhal
reef cosmos
unique sigil
deep cypress
#

I needed that, thanks Kisaa!

Also, is there a way to set where the incoming warp from BusStop (forest, backwoods too) puts one, or does that all need to be manual map edits to those respective maps? Or does one typically just lop the warp points where vanilla lops them, all willynilly?

unique sigil
silver pelican
hard fern
#

Isn't there a way to edit the map properties..?

#

Yeah, that way

unique sigil
#

e.g. BackwoodsEntry is the tile you warp to when entering the farm map FROM backwoods.

reef cosmos
reef cosmos
silver pelican
unique sigil
hard fern
#

I had a weird dream i was trying to romance lewis,

#

So ...

#

I guess that's going to the wip pile

unique sigil
#

weirdest nonsequitur ive ever read in this server /lh

hard fern
#

Too much sdv brain XD

velvet narwhal
hard fern
#

Indeed . .

velvet narwhal
#

where's my quote

#

.q 6240

patent lanceBOT
#
#6240

@velvet narwhal #making-mods-art message Honestly I think you do actually have a special talent for ~~derailing ~~giving inspiration and motivation cause last time I ended up releasing a whole mod for 1000+ wallpapers after you asked one innocent question! :bongo_cat_heart: :VMVLmaoDog:

unique sigil
reef cosmos
unique sigil
reef cosmos
unique sigil
#

holy shit that is a huge map. looks awesome!

#

i like the little shoreline area!

reef cosmos
#

thank you! I was getting frustrated because I couldn't find a map large enough to play split funds with my friends. I wanted a map large enough for us all to have our own private spaces. So I just made one myself 😭

silver pelican
#

i think this is one of the ideal maps for multiplayer-mode.

unique sigil
#

fair enough. all my maps are also the result of me wanting my own food

#

i also have a giant four corners map planned - it may not be for me, but i know a lot of you like a giant farm map lol

unique sigil
reef cosmos
#

my friends and I have been playtesting the hell out of the map together. I'm constantly updating it and I think they're sick of it 😭

unique sigil
#

by the way, if you have the latest version of my tilesheets, there are magic circles now, if you're into making magic warps SDVpuffersquee

velvet narwhal
#

thinks about how far out i'm gonna need tilesheets

unique sigil
cinder thorn
unique sigil
#

the noclip out of map one?

#

or is there another map testing one i am not aware of

cinder thorn
#

Data Layers

rancid temple
#

Data Layers shows some useful information

cinder thorn
#

Like which tile is passable and which isn't

rancid temple
#

I believe you can also see which ones are warps

unique sigil
#

i forgot that one existed. will have to check that out SDVpuffersquee

rancid temple
#

Oh yeah, also buildable and tillable tiles

velvet narwhal
shadow pagoda
#

Sorry for the late reply. I just tested this out on my farm and included the following line before the if statement which only printed Weeds (O)674 even though I have a chest with parsnip seeds on the farm. Do you have any idea with this could be happening?

this.Monitor.Log(item.Name + " " + item.QualifiedItemId, LogLevel.Debug);
deep cypress
pallid sparrow
#

I know people have made mods that genderswapped certain NPCs and then had to make a sweeping pass over dialogue and text. Was that all done by manually combing through each dialogue file and text reference or is there a clever way to index and find all uses of a name across multiple unpacked files?

uncut viper
#

i mean you can find all the uses of a word in a set of files very easily but if you wanna make a content patcher mod for it it needs to be manually edited

#

bc you need to edit every entry specifically

obtuse ivy
#

hi!! i want to ask something about custom map. prior 1.6.9, it works perfectly fine but after the update, the game cant load it. what can i do to fix this?

pallid sparrow
#

Is there something faster than opening each file and 'ctrl+F'ing? I reckon it'll still be a chore to catch he/she or brother/sister, etc.

#

Basically I know how to make the content patch, and I know obviously the NPCs close to the one I'm editing will have dialogue to target, but I'd be happy to rule out the other long list of NPCs without checking a few dozen files one at a time

uncut viper
#

notepad++ and VSC and most other more-featured text editors have a "Find in Files..." sort of search alongside the usual "Find" Ctrl+F search

fossil osprey
obtuse ivy
#

my own custom map

deep cypress
#

What errors is it making?

obtuse ivy
#

invalid tile gid?

#

no idea what that is

uncut viper
#

did you ever edit and save the map when the tilesheets werent present?

rancid temple
#

Open the map back up, make sure you have all your tilesheets in the same folder and make an edit and save it

uncut viper
#

are you maybe using a tilesheet that was removed in 1.6.9?

obtuse ivy
rancid temple
#

Several

#

If they weren't being used in the base game they likely got purged

deep cypress
#

That typically means you mussed up your tilesheet somehow, yes, as they say. if the error persists, open the tmx file in notepad, find the gid which is in error, and replace it with 0. You will need to reedit the map after.

rancid temple
#

That said, most of them were pretty obviously not intended for actual use

deep cypress
#

If you have resized a image which the tilesheet used, that will cause this error.

rancid temple
#

You don't have to edit the gid value, just making an edit in Tiled with all the tilesheets present will do that for you

uncut viper
#
Maps/cavedarker
Maps/FarmhouseTiles
Maps/GreenhouseInterior
Maps/spring_BusStop
Maps/TownIndoors
Maps/WizardHouseTiles
Maps/WoodBuildings
#

these are the removed tilesheets

obtuse ivy
#

ahh i had wizardhousetiles tilesheet in my custom map