#making-mods-general

1 messages Β· Page 453 of 1

zenith tartan
#

Ohhhhh....

#

Okay! Looks like that worked! Thank you for helping with my rather dumb question!

#

And okay, so were you saying it would be worse to put that property in the project itself like Chuve said? Because it would break it on other people's PCs, right?

ivory plume
#

Yep; putting the file in the user folder is something you can just do once and forget about ever after (assuming you don't move the game folder). Putting it into the project file is quicker (if you know how to do it), but you'll need to do it for every mod project you build.

zenith tartan
#

Am I making sense? I'm really out of my depth, but I'm trying to learn

ivory plume
#

The .targets file is just on your PC. The .csproj project file is part of your mod code, which you'd upload if you make the mod open-source later.

zenith tartan
#

Okay, so if I put my specific modpath in the project file, the mod wouldn't work for anyone with a different installation path then, right?

ivory plume
#

Looking at the mod build package code, that's actually already handled. If the folder doesn't exist, it'll keep looking for one that does.

zenith tartan
#

Oh right, okay, that makes sense. I did notice it was trying to do that. I don't know why it didn't find my installation automatically, it's just on a different drive.

ivory plume
#

It checks the Steam install path in the Windows registry too, but maybe Steam didn't update it correctly if you moved it to the other drive after installation.

zenith tartan
#

Well thank you so much! I've now got a mod that tells me what buttons I pressed! Now I just gotta figure out how to make it actually do what I want!

ivory plume
#

Welcome! Feel free to ask here if you have other questions.

tired skiff
#

alright

#

i guess it's just gonna be "chatgpt fix the errors" then

drowsy pewter
#

good luck with that lmfao

livid kite
#

Did the file path for portraits change? I'm making an Anti-social NPC for a mod I'm redoing, but every time I load up the game, SMAPI says that it couldn't find the portraits. I would post a log but my Internet is down at the moment. I double checked my spelling and I know I loaded the files correctly, but nothing.

uncut viper
#

the game has not updated in 10 months

drowsy pewter
#

no

hard fern
drowsy pewter
#

or editing the wrong version of the mod files

#

happens all the time

hard fern
#

Also SDVpuffersweats yikes my power just went out for a hot second

livid kite
#

Hmmmm pondering
the thing is I copied and pasted my code from my NPC Reyla Character data into the fake NPC character data, I changed the names of course to the new NPC names, but with just changing the internal names the game isn't happy.

#

Let me see if I can send the json file to my phone and upload it to the SMAPI website

tired skiff
#

alright nice

uncut viper
#

i would familiarize yourself with this servers rules on generative AI, for future reference

livid kite
#

Annnnd, the power at my house went out... hidethepain

hard fern
#

Wow that makes two SDVpuffersweats

livid kite
#

Luckily, I still have phone service for now

#

Darn it, I guess it's going to have to wait till tomorrow 😭

lime maple
#

is there a condition for crops that they can only be planted near a body of water?

brittle pasture
#

don't think so
that would require PlantableLocationRules to be aware of a crop's tile position

lime maple
#

I'm going to make jelly (cave, sea, river) crops and if there is a condition like that it would be amazing for sea and river

brittle pasture
#

you can make it fully aquatic SDVpufferlurk

lime maple
#

without any mods?

brittle pasture
hard fern
#

(is this awuaponics)

lime maple
#

there is IsPaddyCrop

brittle pasture
#

there's a mod that adds seaweed crops using it

#

IsPaddyCrop would make it grow faster and without needing to be watered if near a body of water (like rice)

lime maple
#

can I check if IsPaddyCrop then it only grows

brittle pasture
#

no

lime maple
#

failure

hard fern
#

How much is the time it takes to grow deducted if it's planted near water?

#

(like the formula)

brittle pasture
#

25% faster

hard fern
#

Dang so my evil plan wouldn't have worked

#

I had thought maybe if you set the time to grow be ridiculously long and magically speed it up near water

#

It would incentivise people to grow it only near water

gentle rose
#

I already literally exclusively plant rice near water for the two day difference and often forget it's even plantable elsewhere so idk SDVpuffersquee

hard fern
#

It's just fun to plant paddy crops

scenic arch
#

can you make custom characters,locations,houses,festivals in mods

brittle pasture
#

in my biased opinion jelly crops make sense both balance-wise and flavor-wise to be aquatic crops anyway so there's that option if you really don't want people to plant them on dry land

hard fern
#

!god

ocean sailBOT
#
brittle pasture
#

heck there are dozens of mods that do that already

lime maple
#

sad that I cant, but jelly crops goes land vrooom

brittle pasture
#

the bigger ones we call "expansions"

scenic arch
hard fern
scenic arch
# hard fern Everyone likes a good shitpost mod

its called stardew valley - (minus) and adds a squid game festival, ddlc sayori as a romancable character, the police, cars, pierre secretly having a whole mafia, etc. really light stuff

lime maple
#

if I had a way to test IsPaddyCrop, dang, why

#

(insert why meme here)

scenic arch
lime maple
#

my case with using dependencies is that updates break things, and CP mod is supreme, usually does not break

brittle pasture
#

well it also means you can only do whatever vanilla can

#

so you're out of luck for your idea

lime maple
#

not yet

#

I'm using spaceCore, maybe there is something in there

brittle pasture
#

(it doesn't)

#

(it has a bunch of crop extension data, but no plantable rule extension)

vernal crest
#

Selph is the creator of MTF and they're very dependable

#

(And lovely)

lime maple
#

it is funny that they didn't even say it

hard fern
lime maple
#

speaks volume

hard fern
#

it parsed wonky SDVpufferwaaah

gentle rose
#

can I see the patch for the include? SDVpuffersquee

lime maple
#

I can do an absurdly long time jelly crop and another for MTF with decent time

#

I'm torn

hard fern
#

(as in if it didnt load i would have bigger problems)

gentle rose
#

yeah that's fine I just wanted to see if you had any conditions on it

#

interesting SDVpufferthinkblob

hard fern
#

...yeah...

#

i guess i can make sure my npc isnt moonwalking (again)

#

and test it for the nth time

gentle rose
#

has event lookup been updated for long preconditions? I don't use it but I've been assuming it has

hard fern
#

and yeah i can trigger the event completely naturally without debug

#

but like...

#

its totally empty

vernal crest
#

It still only works with aliases

hard fern
#

SDVpuffersweats i guess that's something i should warn users about then

#

and provide a readme with how to trigger events

gentle rose
# vernal crest No

ah. that would do it. and explains why map event markers has no complaints about that SDVpuffersquee

hard fern
#

Readme started :3

#

Event readme!!!! Event lookup hates my long event preconditions. :( so here is my handwritten how-to on how to trigger events.

lime maple
#

Selph, I have so many questions. does MTF have a condition to check if it is near a body of water?

gentle rose
#

maybe once I'm done with the map event markers update (ha) I'll PR sheku... if they have a github repo, that is

#

not for this mod apparently SDVpufferwaaah

brittle pasture
#

no, but I can add a GSQ for it
it still doesn't have anything for plantable rules though, and that one's a bit tricky to add

hard fern
#

Wait i just realized it's MTf

#

We finally have a rival to FTM

gentle rose
#

finally? it's been around for a while SDVpuffersquee

brittle pasture
#

the one thing MTF already has is the aquatic crops thing which is why I suggested it; your use case though is quite new

hard fern
#

πŸ˜” im sorry iro i have no idea when mods are birthed

vernal crest
#

And I am soooooo far away from my own event info mod being usable, sadly

gentle rose
lime maple
#

lol MTF and FTM roflmao

#

πŸ³οΈβ€βš§οΈ visibility

brittle pasture
#

(there's an even older MTF mod so I sadly can't claim that rival title)
(casey's Monster the Framework)

lime maple
#

the thing is, there isnt a way to make a crop grow only if conditions are met, maybe with custom data idk

brave fable
#

neither of them can conjure a backronym without forcing the F into Framework SDVpufferpensive contrived

gentle rose
brittle pasture
#

that can be stretch goal for MTF maybe but right now I'm neck deep in this other project

lime maple
#

can we check in vanilla if a crop is IsPaddyCrop?

brittle pasture
#

as mentioned, no SDVpufferrad

lime maple
#

whyyy SDVpufferwaaah

brittle pasture
#

but yeah, sadly I don't think there's a way to achieve exactly what you want currently

lime maple
#

(click for refund)

#

(realizes I bought it nearly 10 years ago)

#

it would be amazing, it can be planted anywhere, but it only grows if IsPaddyCrop: true

#

maybe soontm

gentle rose
#

I could have sworn betas had a grow crop traction, but it looks like it doesn't SDVpuffersquee

#

@ button literally unplayable

lime maple
#

maybe I tag master APO

#

and having him include the query in nextest release

gentle rose
#

apo?

lime maple
#

master 🦧

brittle pasture
#

that would still require passing in the tile context into the GSQ for plantable rules, which I feel is super niche

gentle rose
#

I have no idea what you're talking about ngl SDVpuffersquee

#

oh CA

#

you probably shouldn't SDVkrobusgiggle

lime maple
#

I know I was jk

brittle pasture
lime maple
#

that would be SDVpufferwow

#

in vanilla, how do we check conditions for growth?

brittle pasture
#

you don't

lime maple
#

but you mentioned above

brittle pasture
#

oh wait did you mean "grow" or "plantable"

lime maple
#

growth

brittle pasture
#

then you can't, but whether a crop is plantable in a location in the first place is vanilla yes

hard fern
#

πŸ€” i know fruit trees won't grow if there's something blocking the area around it, but i assume the code for that is completely different to crops

brittle pasture
#

in vanilla if you give a crops 7 days to grow it will grow in 7 days; the only way to control that behavior is with fertilizer/paddy

#

or not watering it

brave fable
#

the sprite is too big SDVdemetriums i have no idea what im doing

#

where do u even begin to blend the light banding

hard fern
#

How r u so good at Thing

brave fable
#

hello i JUST said i have no idea

gentle rose
hard fern
#

Yeah but i have even less idea XD

gentle rose
#

my half hearted method with non pixel art is to just add so many bands that it technically becomes a gradient

so maybe just add bands of 50/50 dithering and then dither outwards? SDVpuffersquee

brittle pasture
#

oh wait I didnt attach a file

vernal crest
#

That didn't need to be a ping. I blame babies.

brittle pasture
#

(transpiling CheckItemPlantRules to pass in more metadata for GSQs is going to be 2026 at the earliest)

gentle rose
hard fern
#

Babies.

brave fable
lime maple
#

Thank you Selph I'll take a look

#

does i18n in CP support a single (e.g.: i18n.json) file with a dict or only each separate jsons?

gentle rose
#

dict for languages?

#

I don't think so

vernal crest
gentle rose
#

understood have a good day

drifting flame
#

map draft with just vanilla tiles, i'm going to make a new version adding in some custom ones when i finally feel like it

indigo patio
#

@rapid pond Hi do you take requests?

rapid pond
indigo patio
#

pings r okay!!

rapid pond
indigo patio
#

YAY!!!!

#

Take your time!!!

indigo yoke
#

this hint isn't to cryptic on what you need to do? I feel like I spelled it out for the player here also because it's one of the wierdest things you have to do

"I wonder if one could combine lightning with a bug?\nI would need something that could harness it while close enough to a bug to study."
gentle rose
#

is it referring to a vanilla item? because I have no clue tbh

indigo yoke
#

the answer (spoilering just in case some one wants to guess) || hold a lightning rod while near a bug ||

#

yep, all vanilla

gentle rose
#

||oh, I guess it's a bit confusing because that's not really a common stardew mechanic so "close" feels like it should mean "similar to" rather than "nearby"||

#

I'm also not sure what a bug is in this case if it's vanilla, ||the mine bugs||?

indigo yoke
#

the vanilla game refers to them as such for the gil extermination quest

gentle rose
#

hmm, yeah personally it would take me a while to guess that specific solution from this clue and idk if figuring it out would be satisfying, which is what makes or breaks a puzzle imo

devout otter
#

I think you can stand to adjust a tad for clarity, like To study this, I'll need something that can harness the lightning's power while I'm close enough to a bug.

ornate trellis
#

does anyone know if theres a fixed dialogue string or w/e for a romancable that uses the angry portrait? when i set mine up i kinda didnt go by the right order vanilla does lol so im wondering if i should bother fixing it or not

hallow prism
#

mm, since you can't control what will happen in future update and mod stuff i would say it's worth changing now

#

rather than needing 154 workaround later

shut edge
#

Is there a guide or best practices list somewhere for balancing animal prices and such?

#

Perhaps balance in general, it's a concept that eludes me a bit

copper rapids
#

Hey guys, I'm currently learning how to create a C# mod and I'm running into hurdle with adding new content. Initially, I tried adding items directly via code, but it felt overly complicated. Now I'm looking into using JSON assets for content and reserving the C# code for implementing new mechanics. Is this approach (JSON for assets + C# for mechanics) generally considered good practice, or is there a more efficient/standardized way to add new items/content in a C# mod?"(sorry for bad english)

ornate trellis
#

don't use JA, Content Patcher is the way to go

spiral lion
#

Does anyone know any good turtorial for egg hunt event coding? πŸ™‚

woeful lintel
# copper rapids Hey guys, I'm currently learning how to create a C# mod and I'm running into hur...

as mentioned above, definitely don't use the Json Assets mod, Content Patcher is the way to go to add stuff easily, but adding with code isn't very hard once you understand how it works. It's just about using the AssetRequestedEvent handler to add data to the game's content.
Using CP to add stuff is simpler but requires you to split your mod in two (but you can still updload it online as a single mod), while doing everything with SMAPI directly is a bit harder but you can do basically anything since it's in C#.

#

obviously, if you need help either way, we'll be happy to help!

#

What are you trying to add?

copper rapids
#

A simple hat, just to understand how it works. I added it via JSON Assets, and now I'm trying to use Content Patcher, but I'd prefer adding it via code. Is there any sample code available?

ornate trellis
#

hm, is there some sort of page on the wiki that focuses more on the romance part of an NPC? even on the modding wiki i mostly jsut see general NPC talk but not all the things I gotta change/add if my NPC can be married thonking I jsut dont wanna miss anything

shut edge
#

can PLAYER_HAS_ITEM use categories? or context tags?

unique tusk
ornate trellis
#

oh I do know of that one, the problem is just it has no actual spouse/romance section lol. I got a bunch of NPCs already but this is my first time making one romanceable lmao

vernal crest
#

CanBeRomanced true, marriage schedule, marriage dialogue

#

Wedding sprite, I guess

vernal crest
ornate trellis
#

hmm sounds about what i have written down then, i got this so far

vernal crest
#

Looks pretty good, Void. Way more than the bare minimum. If there's other stuff that comes up you'll find it as you test, I expect.

unique tusk
vernal crest
ornate trellis
#

alrighty, then i can start without too much worry xD

unique tusk
#

Okay I deleted the unnecessary copy but it's still the same issue 😭

vernal crest
unique tusk
vernal crest
# unique tusk https://tenor.com/view/sweats-gif-25346666

I split each field into its own line so it's easier to count them. After what you've got for the field I have the field number and then the name of the field that it is. You can see for things like the instructions (field 3) that you have the completely wrong thing.

shut edge
#

"ANY PLAYER_HAS_ITEM Current 579, PLAYER_HAS_ITEM Current 580, PLAYER_HAS_ITEM Current 581, PLAYER_HAS_ITEM Current 582, PLAYER_HAS_ITEM Current 583, PLAYER_HAS_ITEM Current 584, PLAYER_HAS_ITEM Current 585",

#

ok, i am doing this wrong somehow

vernal crest
vernal crest
shut edge
#

ah, thanks

#

can i list the items in one or nah?

#

it's just the prehistoric bone items

unique tusk
vernal crest
shut edge
#

ok

#

thank you

vernal crest
shut edge
#

hmm

vernal crest
shut edge
#
 "IgnoreRain": true,
 "IgnoreWinter": true,
          "IsAttackAnimal": true,
          "AttackDamage": 5,
          "AttackIntervalMs": 5000,
          "AttackRange": 10,
          "AttackMaxChaseTimeMs": 10000,
          "AttackCondition": "ANY \"PLAYER_HAS_ITEM Current 579\" \"PLAYER_HAS_ITEM Current 580\" \"PLAYER_HAS_ITEM Current 581\" \"PLAYER_HAS_ITEM Current 582\" \"PLAYER_HAS_ITEM Current 583\" \"PLAYER_HAS_ITEM Current 584\" \"PLAYER_HAS_ITEM Current 585\"",
},```
#

it's for EAC

vernal crest
shut edge
#

odd

#

maybe EAC doesn't like it

vernal crest
#

That is my guess, yep

shut edge
#

i swear i am not intentionally doing rude things to EAC

#

the dangers of "i wonder if..."

#

for reference i am attempting to make an animal that will attack you only if you are carrying a bone item with you

#

it also produces bone items so it's like a risk reward kinda deal

woeful lintel
lucid mulch
shut edge
#

remind me the syntax for that and sure

lucid mulch
#

Patch export <asset name>

shut edge
#

would i be looking for the EAC asset here or my own

vernal crest
#

EAC

#

The one in the Target for that patch

shut edge
#
    "MalePercentage": -1.0,
    "AnimalProduceExtensionData": {},
    "FeedItemId": null,
    "OutsideForager": false,
    "AnimalSpawnList": [],
    "ExtraProduceSpawnList": [],
    "ExtraHouses": [],
    "IgnoreRain": true,
    "IgnoreRainCondition": null,
    "IgnoreWinter": true,
    "IgnoreWinterCondition": null,
    "GlowColor": null,
    "SkinGlowColor": {},
    "GlowRadius": 10.0,
    "SpeedOverride": null,
    "TextureOverrides": [],
    "GoOutsideCondition": null,
    "IsAttackAnimal": true,
    "AttackDamage": 5,
    "AttackIntervalMs": 5000,
    "AttackRange": 10,
    "AttackMaxChaseTimeMs": 10000,
    "AttackCondition": "ANY \"PLAYER_HAS_ITEM Current 579\" \"PLAYER_HAS_ITEM Current 580\" \"PLAYER_HAS_ITEM Current 581\" \"PLAYER_HAS_ITEM Current 582\" \"PLAYER_HAS_ITEM Current 583\" \"PLAYER_HAS_ITEM Current 584\" \"PLAYER_HAS_ITEM Current 585\"",
    "IsHarvester": false,
    "HarvestInterval": 1000,
    "HarvestRange": 5
  },```
#

is the relevant bit

#

do you want the whole thing?

lucid mulch
#

That's all I needed

shut edge
#

cool

lucid mulch
#

and what is eac in this context

shut edge
#

extra animal config

#

might be afk a bit but hopefully that's helpful

lucid mulch
#

not sure then, looking at their code it seems fairly normal so not sure whats making it misbehave

jaunty moat
#

harro everynyan, a small question about GMCM

Why does it get me spell out my variables in-game instead of making it a dropdown list? I checked out some other mods I have, but didn't notice anything specific. What am I doing wrong?

woeful lintel
#

I think this happens because you allowed multiple options to be selected at the same time when making the config schema

gentle rose
#

what does the config part of your content file look like?

jaunty moat
#

uhhh

vernal crest
# jaunty moat

The correct name for the field is AllowValues. You have to have it exactly as it's written in the CP docs or it won't be accepted as a real field.

jaunty moat
#

Damn, didn't notice that I had it misspelled after like 5 checks, thank you!

shut edge
#

maybe i'll have better luck next time if i go sleep awhile

#

good luck yall

unique tusk
#

Erm I tried to add the change name command twice but it appears to only work once??? In the first image his name is supposed to be "???" until it's revealed who he is. Any idea how to fix this??? 😭

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 28 C# mods and 12 content packs.

livid kite
#

it's loaded, though

quick sand
#

hello good people. does anyone know where the sprites for ginger are? i found the forage item but i cant find the in ground version

devout otter
livid kite
#

but it works in Reyla's code, though pondering

devout otter
#

Does Reyla have appearance data? Does Lilly have it?

livid kite
#

just this for Reyla. But not for Lilly, since I didn't think she needed it

devout otter
#

Ah, have you set Lilly's TextureName to Lilly?

livid kite
#

I did not

devout otter
#

Then that.

livid kite
#

ok, let me add that real quick then

quick sand
devout otter
#

Basically your NPC would seek for Portraits/<TextureName>. If it doesn't have that field, then it would seek for Portraits/<NPCInternalID>.

brittle pasture
clever axle
#

Guys is there a mod to skip some parts in the game or give myself items I don't have? Cuz I just moved to pc so my save on ps is stuck thereπŸ’”

livid kite
brittle pasture
uncut viper
uneven spindle
#

is that a valid location? my old code was referencing each of the ginger island location e.g. island_south, island_west, etc

livid kite
uncut viper
#

GingerIsland is not a valid location name, but neither are Island_South, Island_West, etc. you want IslandSouth, IslandWest, etc without the underscore

#

alternatively, if you want every location on the island, you can use the LOCATION_CONTEXT query instead, with the Island context

uneven spindle
uncut viper
#

you can always check in Data/Locations for the location names

uneven spindle
livid kite
#

I'm trying to remember where I saw "GingerIsland" as a location name pondering

#

I think I was looking at another mod on how to get the GSQ and appearance to work, when 1.6 just came out and they had that. But I also haven't had anyone mention Reyla not showing up or getting any errors, so I assumed it worked

devout otter
#

Since it's GSQ it won't really show error. It just won't ever fulfill that condition.

hard fern
#

SDVpufferlurk okay... so how to i get to randomizing that dialogue?

devout otter
#

You want your NPC to have randomized dialogue every day instead of assigning them to specific days and stuff?

hard fern
#

yeah

#

(but i also want to have fridays and sunday have specific, but still random dialogue)

devout otter
#

The simplest way, that wouldn't need to use Dynamic Token, is:

uneven spindle
devout otter
#

Just do something like"Mon": "{{i18n:Dialogue{{Random:1,2,3}}}}"

hard fern
#

ack i have to rewrite my i18n then

devout otter
#

If you don't do them by numbers, then yeah unfortunately.

devout otter
uncut viper
#

i mean you can also do {{i18n: {{Random: Key1, OtherKey, MyKeys}} }} if you really wanted

#

but using numbers in them is probably gonna be a lot easier in the long run

uneven spindle
uncut viper
#

there is zero expectation of any release date for 1.7 at present

uneven spindle
#

last i heard the 1.7 was being developed by a small team

uncut viper
#

theres not even an expected release date for 1.6.16

fast plaza
#

Pretty neat that we already have documentation on what we need to change for 1.7

devout otter
uneven spindle
uncut viper
#

(also im pretty sure the team for 1.7 is the same as the stardew team has been prior)

hard fern
#

"Mon": "{{i18n:Selena.Spring.0.{{Random:1,2,3,4,5}}}}", so would this work? I have it organized in my i18n now as
[Name of NPC].[Season].[Heart Level].[Random Dialogue Key]

uncut viper
#

Stardew Valley has not been a purely solo operation in a long while

devout otter
ivory plume
#

(For Joja mod authors, Lookup Anything now has visual themes thanks to @lucid iron and improved data mining fields.)

drowsy pewter
#

huh

uncut viper
hard fern
#

Woah.... jojafied

uneven spindle
#

ah i started playing in 1.6 and always thought that the game was made by ConcernedApe alone

drowsy pewter
#

lookup anything cosmetic update was not on my bingo card this week

iron ridge
#

Hasn't been CA alone since 1.2

fast plaza
#

Yo so, question. Whats y'alls takes on adding new mod dependencies post release? I assume it's not a good idea but I'm not sure

uncut viper
#

id have no issue with it if i needed it

#

but ive also not really released any mods where its been relevant

fast plaza
#

Fair enough fair enough

uncut viper
#

as a user though i also dont care if a mod adds a dependency as long as they say they have in their update notes

drowsy pewter
#

if it improves your mod then do it

uncut viper
#

and as a framework author whose had to read about people turning down my frameworks many times in the past bc they didnt wanna add a dependency, i also think you should just add the dependency if itd help

fast plaza
#

Do users get notified about new mod dependencies though?

devout otter
#

Yeah when they download, and again when SMAPI is loading.

fast plaza
#

Oh that's good to hear then

uncut viper
#

well SMAPI will tell them if it fails to load

#

SMAPI wont warn them beforehand that the manifest has changed to add a new dependency

#

and nexus wont say a dependency is new itll just give the same list of requirements as if it was the first time you downloaded it

devout otter
#

Honestly as a mod author I don't really think about it. If a user download the new version without adding the dependency, and then proceed to play without ever noticing that my mod is missing, they they don't really interact with my mod anyway.

fast plaza
#

Thanks for the advice y'all! I think I made a mistake when I started off my mod cuz I wanted to do as much as I could by myself. Now I'm gonna spend a bunch of time rectifying that.

uncut viper
#

i think theres merit to doing things yourself instead of adding a whole new dependency if you are capable of just doing it yourself quickly and easily. but any sort of complexity to me quickly becomes reinventing the wheel

#

i wouldnt add an entire dependency just for one simple GSQ for example, when i can just make my own version of that one GSQ, but if i needed several GSQs that a mod already adds... i might as well use it

#

(ofc that perspective probably differs between a C# modder and a purely content modder, since purely content modders often dont have the choice)

fast plaza
#

I'm figuring offloading more stuff than can be offloaded to frameworks will reduce mod compatibility issues.

uncut viper
#

that is also true and a large benefit of it

fast plaza
#

I live in constant fear that I'm gonna annoy other modders cuz of my bad coding

uncut viper
#

compat + community vetted + more people to ask for help, are all pretty big benefits of using a framework instead of rolling your own

fast plaza
#

Yee!

round dock
fast plaza
#

Fair enough!

gentle rose
#

dolphin I disagree with your themed name

devout otter
#

What why. πŸ˜”

drowsy pewter
#

dolphin is or is not a seafood

devout otter
#

While looking at people's SMAPI log, I've actually encountered twice people who don't have my mod loading because they're missing dependency. But eh if they don't care about it then neither do I.

round dock
gentle rose
round dock
#

(and yours as well, as both the author and the one who maintains your mods)

devout otter
gentle rose
uncut viper
#

(tbf if you'd done that recently i would definitely have had some Words with you /lh)

drowsy pewter
#

whoof

gentle rose
#

(what counts as recently /lh)

#

(no this was published in December or January and written in 2023 lmao)

uncut viper
#

any time after my "hm, this person uploaded a C# mod but theyre new and i dont trust them yet" phase ended

gentle rose
#

(I just made the mistake of not going over the code super thoroughly when migrating it from personal use to a published mod. whoops.)

uncut viper
#

the only time i get annoyed by bad code is when its coded badly in such a way that a) couldve easily been done a lot better for little to no effort and b) breaks one of my mods in the process
if not both of those things are true then it aint my problem

next plaza
#

How do you feel about bad code that’s breaks your mod but can’t feasibly be done better

#

(Ie. 3d mod)

uncut viper
#

im getting a lot of questions that my "if not both of those things are true" shirt already answers /lh

next plaza
#

…is β€œone” considered β€œa lot” these days

uncut viper
#

yea h

next plaza
#

Wow, I’ve got a lot of Kirby air sequels I’m excited for releasing soon

#

(One is definitely far more than I would’ve expected 6 months ago, to be fair….)

uncut viper
#

i mean, would you not have said one kirby air ride sequel being announced would be-- yeah

#

its all relative

next plaza
#

~~I'm really in the mood to play stardew VR but it doesn't exist in playable form yet πŸ˜” ~~

uncut viper
#

maybe ping the mod author and ask when its gonna be updated

next plaza
#

That mod author doesn't appreciate accountability, smh

gentle rose
#

have you tried leaving a rude nexus comment

trim sand
#

stupid question, I keep thinking about making a mod that changes the starting season & season lengths im just wondering how feasible adjusting event stuff like the mines being blocked the first couple weeks and the community center cutscene/unlock arguably need to be moved to fit into whatever season is being started in. im just not sure how feasible that whole program is, even before getting into ideas like a custom starter crop for fall growing into a mixed variety of pumpkin items (heirloom pumpkin vibes as opposed to carving pumpkins like are the normal crop) to go along with it.

brittle pasture
#

mines blockage/cc unlock/spa unlock all uses days played, so you probably don't have to worry about those

#

season length is gonna be the bigger problem; the vast majority of mods and even the game code itself assumes 28 day seasons so you got some work ahead

#

(FYI there are already mods that change the starting date and/or change season length)

trim sand
#

oh

#

huh. this i did not know.

brittle pasture
fossil osprey
#

Only thing I see with things like mine unlock, is that the game only has the spring version of them, and I don't know how easy to would be to change it

trim sand
#

i guess then itd just need be whatever replacement seasonal crops id want to make then

brittle pasture
hard fern
#

SDVpuffersweats how dire is the museum real estate situation

brittle pasture
fossil osprey
hard fern
#

maybe i should quit while im ahead then

fossil osprey
#

There are already mods that are just adding more room to the museum, nothing else

brittle pasture
trim sand
#

suppose there's a little bit of work making stuff clean (season locked cutscenes ect). has some potential concerns with custom farm houses being sure to not be giving parsnip seeds. but i suppose making a mod to pick a starting season, then making any seeds given be swapped somehow i know farm house starting gifts are weird.

hard fern
#

i can think of 2 others: cape stardew and the mod by oclarina that has a lot of ms

#

wonder how much of a hassle it would be to make a whole separate museum.

fossil osprey
#

well we have a framework for that now, so not much I'd say

hard fern
#

huh wait really?

fossil osprey
#

yeah

hard fern
#

neat.

somber hinge
#

hi ^_^ still a beginner at this. I want to make a simple cp edit to the text about your horse waiting patiently that pops up when you return from the desert. I found the string for it, BusStop_ReturnToHorse2 in Strings/Locations, but I can't for the life of me find where that string is used in the data folder. it doesn't seem to be in the Locations data. does anyone know where it is? or is there a way to just edit the string itself in strings/locations?

brittle pasture
#

you can just edit the string yes

#

just target Strings/Locations

somber hinge
#

with editdata?

brittle pasture
#

yes

#
    {
      "Action": "EditData",
      "Target": "Strings/Locations",
      "Entries": {
        "BusStop_ReturnToHorse2": "Your horse is very angry with you for leaving it. Better sleep with one eye open tonight...",
      },
    },

(but use i18n of course)

somber hinge
#

ok i must be doing something else wrong bc it isnt parsing :p json validator says it expects object but got string

#

I'm using fields instead of entries, is that the issue?

brittle pasture
#

not sure, but post your code pls

somber hinge
#

alright gimme a sec

#
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Strings/Locations",
            "Fields": {
                "BusStop_ReturnToHorse2": "text here"
            }
        }
    ]
}```
#

ok switching fields to entries made it parse

brittle pasture
#

hmm yeah Fields probably only works for nested data models

somber hinge
#

it works! that makes sense. thanks for your help

lucid iron
#

(iirc fields on string string asset has special logic for slash delim strings)

split anchor
#

Hi, I could use some help with how to format questions/responses in dialogue. For context, I'm looking at StardewValleyWiki.com/Modding:Dialgoue to learn, and the examples shown there are formatted differently than how my json files are. Can someone help my baby self understand why and how to adjust my dialogue.json? Here's a screenshot of the example on StardewValleyWiki, and my dialogue.json

crude plank
lucid iron
#

i think cmf is nice for location and adding text to all the stuff

#

ub nice for scattering unlockable bits

crude plank
#

oh right UB also works

placid moon
#

Before I go making the sprites for an idea I have - if I use custom bush mod, is it possible to make it so that seeds can only be planted in one season, and harvest can only be done in a different season, but during the other two seasons the crop will stay alive and just change looks according to my sprites? I know it is a bit unusual to have a crop that grows over the year instead of over the season, but I'm hoping to do something like this.

uncut viper
#

(there's nothin stopping you from adding a door to the existing museum that warps you to your custom CMF museum location either, if you really want it to seem attached to the existing museum)

gaunt orbit
#

how much codey-explodey do you think would be involved in a diy museum mod where you can place the museum tables as furniture

uncut viper
#

with the vanilla museum or with cmf

#

with CMF you'd just need a way to put a TileData on the furniture

gaunt orbit
#

with vanilla

#

you can put properties on furniture with harmony, spacecore, and furniture framework

#

maybe calcifer too?

#

actually even with vanilla it seems like it wouldn't be too hard. could just postfix isTileSuitableForMuseumPiece
would have to prevent picking up the furniture if it had an item on it though

brittle pasture
#

plant conditions is not possible I think

uncut viper
gaunt orbit
#

somehow I thought there would be more hardcoding than just. a net dictionary of tile -> item

#

I guess I've just been traumatized by bundles lol

placid moon
# brittle pasture plant conditions is not possible I think

Hmm. I'm still torn as to whether I have more flexibility adding a custom crop or custom bush.

I want the crop to age slowly over spring/summer once planted, then be harvestable in the Fall with it's own sprite set to reflect this (full grown vs harvested), and dormant/no growth during winter (full grown vs harvested sprites). Then if the player has it already dormant-harvested on their farm, it will trigger the growing process Spring 1, starting it all over, or if they didn't harvest it would have a sprite set for old growth dying off and new growth coming in.

It's a lot of sprite creation, but I want to do it if it's possible coding-wise

hallow prism
#

not really with current options

#

the closest would be a bush, with some differences

#

there's some options with spacecore

#

but to my knowledge there's no way to have all the things you listed

gaunt orbit
#

Well, not without c#

lucid iron
#

what is the crop exactly blobcatgooglyblep

#

asparagus?

hallow prism
#

asparagus you would plant in year 1 and start harvesting in year 3 πŸ˜„

brittle pasture
#

realistic farming mod, wait 10 years for your apple saplings to start fruiting

#

then after a mere two seasons they die off due to blight

calm nebula
#

Snap frost kills your bananas

brittle pasture
#

spend the next 2 seasons applying for government bailouts from the ferngill republic agricultural department

calm nebula
#

Why the hell did you think you could plant them up north

#

Asparagus is a fucking beautiful plant though

hard fern
placid moon
#

And the mod I'm building has community harvest event and building event that can only happen in specific seasons if certain conditions are met.

#

So..... yes, I'm maybe leaning too much towards realistic farming specs on this

lucid iron
#

i think you gotta balance accuracy to irl and pacing in context of game's og crops

lucid iron
#

like why would i plant this thing kinda deal

placid moon
#

Well, that has to do with the mod it will be a part of - it's construction material for the farmhouse

lucid iron
#

as for what you can do without custom C# i do think bush is a little more controllable for harvest times

#

since it has support for GSQ

#

i don't think it's a good idea to restrict when a player can plant something though

#

it is a pain if i get the planter thing 1 day after the plantable season monS

placid moon
#

lol, yeah, that's a good point

#

So I will need to sprite up for each season so they can plant whenever

lucid iron
#

u can use same sprite for all 4 seasons if you dont wanna deal with it

placid moon
#

Nah, I like the visuals, it's not too bad

lucid iron
#

then have fun Dokkan

placid moon
#

I can make more than 4 sprites for growth stage though in custom bush, right?

#

4 is just the min?

#

along a texture row, I mean. The instructions aren't quite clear, it just says the standard is 64x32, but it is possible to add

lucid iron
#

im not sure if custom bush has concept of growth stage NotteThink

placid moon
#

Ah, a crop has a designated field for how many days it spends in each stage, but you're right, I'm not seeing that for custom bush

hallow prism
calm nebula
#

I request some mods for this thing known as "real life gardening"

#

All melons op plz nerf

hallow prism
#

we got that with mint goes brrr

#

very realistic

brittle pasture
#

I do like some realism myself; that's basically almost all of my content mods, but yeah I concur that a "apple trees take 10 years to mature only to die of blight half a year later and pushes you into bankruptcy forcing you to apply for bailouts" mod is not very fun

calm nebula
#

Sorry, Selph

#

The taxman came and took the farm when it lay fallow for 20+ years

hard fern
brave fable
#

mod that makes those fat possums dive onto your saplings and destroy them completely

#

oh wait these are american possums

hallow prism
#

mod when you need to change your banana cultivar every few years to avoid the gros michel's fate

calm nebula
#

Also how long do bananas take anyways

#

My impression is that a banana is an overgrown grass

brittle pasture
#

pretty fast it seems (about a year)

brave fable
#

not that long. typically you obliterate the stem after harvesting, they're quite fast growing being technically grassy herbs

calm nebula
brave fable
#

(share.google ..?)

calm nebula
#

Alright

zenith tartan
#

Does anyone know where the values for the player-creation menu (the new game menu) are stored?

calm nebula
#

I expect selph to make an realistic fruit tree mod asap

hard fern
#

I feel like i was supposed to do things with my mod...

#

Ah right. How to make honey from fruit trees?

brave fable
brittle pasture
#

Better Beehouses (mod)

hard fern
#

Ah

#

Will that work with any produce from fruit trees?

#

Even custom produce?

brittle pasture
#

alternatively get my Additional Tree Equipment mod and put a beehouse on a tree

#

think so yes

calm nebula
#

It's funny because my beekeeper coworker says his pear trees are a big hit with the bees

hard fern
#

(this means I won't actually have to make the mod myself, hooray.)

calm nebula
#

So are every single gd melon and squash

hard fern
#

(i still do need to come up with recipes for my flowers though...)

calm nebula
#

Have you ever seen an inch long bee?

zenith tartan
hard fern
#

Uh. SDVpuffersweats

#

An inch? Of bee?

#

A whole bee-inch...

zenith tartan
#

I should add, I'm a total newb.

brittle pasture
#

!startmodding look into C# modding and decompiling the game

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

brave fable
#

the values are likely going to be split between the Farm, Farmer, FarmerTeam, and other classes. it's best you find the new game menu class itself and check out what's assigned when the new game is created.

zenith tartan
#

But I guess I'm not sure what part of that is the actual values, vs. the UI.

lucid iron
#

are you looking for the farmer appearance info or the remixed bundle whatever settings

brittle pasture
#

the ClickableComponent objects are UI components, whose values get pulled and set to the desired locations
if you look at the OK button handler (optionButtonClick) you can see the logic for pulling the values from those to set the farmer name/farm name/fav thing/etc

hard fern
#

πŸ€” is it possible for player's skill level to be an event precondition?

uncut viper
#

if theres not already a precondition for it just use the GSQ as a precondition

hard fern
#

and to go along with events, is it possible to make a "choice" event, like if you click yes, then you can trigger the event, and if you click no, you don't trigger it, and there's a 7 day cooldown before you can trigger it again?

#

im gonna try and explain my plan, i dunno if it makes sense, sorry in advance if it's long

#

I want two events, event A where it only triggers if you bring a certain item with you, but if you don't bring the item then it gives you event B, but i don't want players to accidentally trigger event B if they don't bring the item

#

so i want the start of my choice event to be like... "Are you sure? You can't go back if you click yes" (and it forks?) but i dunno if that's doable....

brave fable
#

yep, i've done that myself for an event, lemme find it

#
"{{EVENT}}/!ActiveDialogueEvent {{EVENT_NO}}": "
  {{MUSIC}}
  /35 38
  /farmer 35 36 1 {{CHARA}} 36 36 3

  /quickquestion yes or no?
    #no
    #yes
    (break)pause 1000
      \\speak {{CHARA}} \"maybe later.\"
      \\eventSeen {{EVENT}} false
      \\addConversationTopic {{EVENT_NO}} 7
      \\end\\pause 1
    (break)pause 1000
  /speak {{CHARA}} \"great!$h\"
  /pause 1000
  /switchEvent {{EVENT_FOLLOWUP}}
",
#

this should be what you're after? marks the event as unseen to be repeated later, adds a CT to prevent it being seen for 7 days, otherwise continues to the followup event

#

(\\end\\pause 1 is load-bearing fluff to prevent issues with arg parsing on end in multiline quickquestions)

hard fern
#

Aaa ty

brave fable
#

of course you can format it any way you prefer, like having the yes answer script come first, or indent both in the qq command, it doesn't much matter

gaunt orbit
#

I will be completely honest I didn't even know that existed! I will definitely see about using that πŸ‘€
I put a bit of work into wrangling the parrot perches into doing effects instead, but I haven't got anywhere close to finishing it

autumn tide
gaunt orbit
brittle pasture
#

yeah my impl follows vanilla's as close as possible

#

so still feel free to roll your own solution if that doesn't do what you want SDVpufferrad

tiny zealot
gaunt orbit
brittle pasture
#

tbh I haven't even looked at that part lol

#

so it seems to live in Building.drawInConstruction, which is quite a pile of code

lucid iron
#

devil whispers skip prefix

brittle pasture
#

tbh I can add an API for this, but I can't think of anything that isn't just a glorified postfix on this function

lucid iron
#

i guess you only want to target the magical.Value || daysOfConstructionLeft.Value <= 0 branch

#

the other branch is thing robin bonks

calm nebula
#

The bee was distinctively fluffy

#

Also distinctively giant

ember ledge
#

Hello! Could someone help me with using the seed checker tool?

I’ve never used it before, so I’m quite new to this. πŸ˜…

calm nebula
#

Seed checker tool?

ember ledge
#

Yeah? Are you asking me what I mean?

gaunt orbit
gaunt orbit
#

Looks like it uses numpy so make sure you have that installed

brittle pasture
#

my understanding is:

  • newConstructionTimer is the timer for the building's build animation in milliseconds. it initially gets set as 2000 (2 seconds) for magical buildings, and gradually gets decremented to 0
  • the draw "percentage" is calculated from this value; at 2000 the building's 0% drawn, and at 0 it's fully drawn. at 1000 the building's 50% done from the bottom up
  • the rest of the draw stuff is done around that percentage
autumn tide
#

..i think i messed something up-
(ik what i did wrong lol but omg this is cursed SDVpufferchickcry )

indigo yoke
gaunt orbit
gaunt orbit
brave fable
#

apparently the wizard's build anim is the same as the instant-build anim, but with some blue fire sprites from cursors instead of the usual smoke and dust from animations, as well as the initial placement using some nearby white sparkles over the whole sprite instead of more dust from animations on the foundations

brave fable
#

well the wizard animation is purely for magical buildings, which are only marked when buying from the wizard

gaunt orbit
#

Although I guess robin can instant build too

autumn tide
brave fable
#

instant-build (daysOfConstructionLeft <= 0) buildings use a similar animation but with dust and dirt instead of stars and sparkles

gaunt orbit
#

So I guess it would be as simple as hooking the constructor to trigger the animation when it's built and use data to handle making it instant?

autumn tide
gaunt orbit
#

At least for instant-build animations

brave fable
#

well the implementation is up to you, i've just looked at the construction anims before hahah

#

or rather up to selph

#

(aka. selpher, formerly zombifier)

vast hearth
#

Hello! Could you please tell me how to change the texture of an item using Content Patcher? I mean just a single piece of furniture, not the entire sheet.

brave fable
#

where the ToArea defines the region in the furniture spritesheet you're aiming to replace

brittle pasture
brave fable
#

(these sprites in cursors do line up wonderfully)

brittle pasture
#

what I see when I encounter that octopus that I hate

next plaza
#

So, I saw this (linked) recently ish, and suddenly realized it could be used to automatically rerun transpilers on hot reload (via patch->unpatch, unless Harmony has a function for that that I couldn’t find).

https://stackoverflow.com/a/72230679

#

And you could just #if that to be only on debug builds.

For attribute based patching you just could check if the type has the harmonypstch attribute and any transpilers.

For manual patching I guess you’d have to store which patches would trigger based on which type? Unless harmony has an API for fetching that stuff already

#

Remind me in 22 hours to try the above

patent lanceBOT
#

Ask me one more time and I'm going to jam a paperclip into my reset button. (#6925921) (22h | <t:1761609821>)

next plaza
#

Despite your warning uber,

#

Remind me in 22 hours to think about this too

patent lanceBOT
#

sigh...yeah I'll do it. Alexa play my destroy all humans playlist (#6925922) (22h | <t:1761609876>)

soft lance
#

Remind me in 1 hour to think on how thinking made me think about the think so after thinking we have thought, therefore all previous statements are a direct result of thinking

patent lanceBOT
#

I'll have you know daqueenlucy I am SO MUCH MORE than just a reminder bot. but fine. (#6925924) (1h | <t:1761534319>)

vast hearth
brave fable
#

when you've unpacked the game assets, open up the spritesheet in an art program of your choice (other than krita) and it'll tell you the pixel coordinates under your cursor SDVpufferthumbsup you'll use these numbers as the X and Y values

#

even Paint will do the trick

brittle pasture
#

other than krita 😌

uncut viper
#

actually there might be category based Unpatching too but im not sure if we have it in our harmony version

lucid mulch
#

I think automatically doing harmony patches on hot reload has been rediscovered 2-3 times now

vast hearth
brave fable
#

yep, all XY coordinates start from the top-right

#

generally it'll be a multiple of 16 for most spritesheets, so round it to the nearest one

next plaza
brave fable
#

likewise your Width and Height values will be some multiple of 16

brave fable
#

rounded to the nearest multiples of 16 gives you 0, 272 SDVpufferthumbsup so use those as your X Y values formatted to match the example earlier

#

it'll look something like this:```json
{
"Format": "2.8.0",
"Changes": [
{
"Action": "EditImage",
"Target": "TileSheets/Furniture",
"FromFile": "assets/furniture.png",
"FromArea": { "X": ???, "Y": ???, "Width": 32, "Height": 32 },
"ToArea": { "X": 0, "Y": 272, "Width": 32, "Height": 32 }
},
]
}

#

where the Target, FromFile, and FromArea values will depend on your use case

vast hearth
brave fable
#

using the values in the codeblock above should be good

#

you just need to add in the coordinates of the sprite in your FromFile spritesheet, which if it's just a single sprite on a 32x32 canvas, should be simple enough

#

per the comments in the original example, you can just remove FromArea entirely if the fromfile is just a single sprite

brave fable
#

perfect SDVpufferthumbsup then it can be simplified to this:

{
   "Format": "2.8.0",
   "Changes": [
      {
         "Action": "EditImage",
         "Target": "TileSheets/Furniture",
         "FromFile": "assets/furniture.png",
         // No FromArea; FromFile is a single 32x32 sprite
         "ToArea": { "X": 0, "Y": 272, "Width": 32, "Height": 32 }
      },
   ]
}
vast hearth
brave fable
#

no problem! enjoy SDVpufferthumbsup

shut edge
#

i think i may have also missed a comma....current maybe also works?

#

"AttackCondition": "ANY \"PLAYER_HAS_ITEM Current 579\" \"PLAYER_HAS_ITEM Current 580\" \"PLAYER_HAS_ITEM Current 581\" \"PLAYER_HAS_ITEM Current 582\" \"PLAYER_HAS_ITEM Current 583\" \"PLAYER_HAS_ITEM Current 584\" \"PLAYER_HAS_ITEM Current 585\"",

#

"AttackCondition": "ANY \"PLAYER_HAS_ITEM Target 579\" \"PLAYER_HAS_ITEM Target 580\" \"PLAYER_HAS_ITEM Target 581\" \"PLAYER_HAS_ITEM Target 582\" \"PLAYER_HAS_ITEM Target 583\" \"PLAYER_HAS_ITEM Target 584\" \"PLAYER_HAS_ITEM Target 585\"",

#

both of these are working now

#

sorry for confusion

patent lanceBOT
valid folio
#

Since the recent Automate update, I’ve been getting a message in SMAPI saying that it’s no longer compatible with PFAutomate. Could this be a problem for mods?

lucid iron
#

Well it depends on whether you use PFM

#

I believe some function changed in automate and so the stuff reflecting into it needs updating

#

People can either downgrade automate or wait for affected mods to update, no effort needed from content pack ppl

woeful lintel
valid folio
woeful lintel
uncut viper
woeful lintel
#

fair enough

uncut viper
#

if a problem cant be solved by removing player control, simply keep removing player control until there is no more problem. iven ever tested this theory of modding but im sure its correct SDVpufferthumbsup

drowsy pewter
#

finally, green coleslaw

valid folio
brave fable
#

amusingly green coleslaw was already a thing in the love of cooking until 2.0 hit and obliterated green cabbage forever

#

funky fridays πŸ’« now to figure out how to set it on fire

drowsy pewter
#

Looks incredible!

jaunty moat
brave fable
#

an exercise in using the perspective tool

hard fern
hard fern
brave fable
#

no SDVpufferpensive unfortunately 6480 said it looks inedible or something

jaunty moat
#

Reminds me of the, uh

#

Hut

#

From RSV

brave fable
#

if this has literally been done before i don't want to know lol

#

have to maintain a pure mind, and more importantly, plausible deniability

jaunty moat
#

One of my favorite concepts in criminal law

uncut viper
brave fable
#

wait today isnt funkay friday. this is monday

#

jesus christ

woeful lintel
#

hey, what causes the "no longer compatible" error in SMAPI? is it based on which version of SMAPI I built my mod with or is it just checking what version I put in the manifest? Someone is complaining that the latest version of FF isn't compatible with SMAPI for android

#

I can change the manifest easily, but it would be a chore (and probably a bad idea) to downgrade the SMAPI version I have installed

lucid mulch
#

its the compiled binary vs the runtime its running in

#

if you are calling functions that don't exist or have different type signatures for example

#

but there will be trace logs saying why its not compatible

woeful lintel
ocean sailBOT
#

Log Info: SMAPI v4.2.1.1 - 1750757583 with SDV 1.6.15 build 24354 on Android Unix 33.0.0.0, with 0 C# mods and 0 content packs.

woeful lintel
#

oh ok

#

I see it now

lucid mulch
#

it doesn't matter about the smapi version, its everything

uncut viper
#

the android codebase when it comes to menus especially can vary from mildly to wildly different and in any mod that deals heavily with UI you will almost certainly need android specific code, as they do not share the same whole codebase

woeful lintel
#

yeah, it would be annoing to make an android specific version to fix the bad function call

#

I guess I could just remove a feature to make an android compatible version...

lucid mulch
#

Or ask the android smapi build to add a facade for it

woeful lintel
#

that's a funny issue

brave fable
#

event positionOffset causes actors to walk endlessly with move, but not with advancedMove SDVpuffersquint interesting

ember ledge
#

And sorry if this is the wrong channel, I didn’t know which to ask on

vernal crest
#

(Also googling "how to run python scripts" should give you a starting point too)

woeful lintel
oblique dove
#

what mod is this from?

gray bear
#

uhhh shrug reminds me of the vt style

jaunty moat
ember ledge
vernal crest
crisp fiber
#

can someone help me why my custom npc isnt showing up?

tiny zealot
#

!npc see these resources

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

tiny zealot
#

(i can also see the top of CustomLocations in your data, so you should know that that too is outdated and should be replaced with the new location data format)

crisp fiber
tiny zealot
#

can you tell us which tutorials you followed to set up what you have? if they are outdated and we have the power to fix them, we'd like to

#

(youtube videos, for example, we are powerless to fix)

#

CustomLocations works but there are no advantages to using it (worse performance, less powerful)

crisp fiber
# tiny zealot (youtube videos, for example, we are powerless to fix)

My microphone sounds terrible D:
Here is how to use the latest version of NPC Creator.
Got questions? Visit my Cozy Apartment: https://discord.gg/uSGNKNf
MissCoriel's NPC Creator: https://www.nexusmods.com/stardewvalley/mods/4701

β–Ά Play video

This is part 1 of how to create a Stardew Valley NPC. Pause anytime to slow it down. This will only put your NPC in the game, Part 2 will teach you dialogue, Part 3 will be schedule, and part 4 will be Events Overview.

Useful Links:
MissCoriel's Discord: https://discord.gg/uSGNKNf
MissCoriel's NPC Creator: https://www.nexusmods.com/stardewva...

β–Ά Play video

Hey! In this series, I'll guide you through everything you need to know to make a Stardew Valley mod! In this episode, we create a custom NPC, as well as going through seasonal changes (when conditions), lights on maps, and paths (adding trees).
-----------------------------------------------------------------------------------------------------...

β–Ά Play video
tiny zealot
#

npc creator 3 chalks up another victim /lh

vernal crest
#

Unfortunately you can't use videos for modmaking tutorials anymore, they're out of date for 1.6

vernal crest
#

Ichor linked to the up to date resources we have for making NPCs

crisp fiber
tiny zealot
#

and the format is totally different

vernal crest
#

It's in the totally wrong format

crisp fiber
#

sooo whats the right format?

vernal crest
#

You could try looking at the resources that you just got linked to

#

It's even got a link specifically to the page that tells you what the new format is

livid kite
#

You can take a look at the unpacked version of the game, if you did that also

#

But I suggest, what Abagaianye said, to look at the links

shut edge
#

animal crackers can't be taken back from animals right?

crisp fiber
tiny zealot
shut edge
#

ahh

tiny zealot
#

(selph thank you for your service)

crisp fiber
#

this is formatly okay right? dialogue

drowsy pewter
#

Are you following a guide to make your npc?

#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

crisp fiber
#

yep

vernal crest
# crisp fiber yep

It looks like you might have used an "Action": "Include" patch to call the file XperDialogue.json but instead of writing an EditData inside that file with your dialogue, you just have the dialogue. You either need to use a "Load" patch instead or (if you want to use tokens, which you probably will want to at some point because translations use i18n tokens) Load a blank json file and then use an EditData patch to put the dialogue in.

crisp fiber
#

it works thx for helping me, but when i open the relationships page in my inventory the name is just 3 ? how can i fix it?

crisp fiber
vernal crest
#

Put the correct name in the DisplayName field

crisp fiber
vernal crest
#

Is it showing Xper when you talk to them?

crisp fiber
#

nope

#

i cant even talk to her xd

#

shes just there

#

but thats fine for me, i dont want a schecdule

vernal crest
#

Then something has gone wrong. Can you copy patch export data/characters into your SMAPI window, then upload the file it exports to https://smapi.io/json and then reply to me with the link for it?

vernal crest
#

I didn't say look for errors

#

I said send me the link

vernal crest
#

No, please do what I asked

crisp fiber
vernal crest
#

Did you copy patch export data/characters into SMAPI and hit enter?

crisp fiber
#

and, where can i find the 'patch export data/characters'?

vernal crest
#

You need to write those words into the SMAPI console while you have a save loaded

crisp fiber
#

oh xd

vernal crest
#

It will then tell you that it exported the file and it will tell you where. Go to that folder and upload that file to smapi.io/json and send me that link, please

autumn tide
vernal crest
vernal crest
crisp fiber
vernal crest
shut edge
#

anything bad happen if you make stuff that can produce "temporary" items like qi fruit or calico eggs? do they still disappear?

#

technically i already have a fruit ghost for qi fruits, no one's complained (or probably noticed lol)

drowsy pewter
#

i dont know how calico eggs work but qi fruits are just normal objects, the special order removes all qi fruit when its done

#

so if you spawn them in and the player does the special order they will poof

shut edge
#

interesting

drowsy pewter
#

but you can possibly patch the special order to remove that bit

#

just that it would also uhh unbalance the special order

shut edge
#

yeah

#

i wonder if it nukes planted ones, particularly giant ones

#

bonus perk of using includes, you can slightly diff which files have a problem

calm nebula
#

I believe the plants disappear too but this is a belief without evidence

#

The big one might not

shut edge
#

aaaa i think i'm doing this all wrong, that might explain some things

shut edge
#

ah neat

#

there's actually stuff in place

#

getting awfully tempted to buy one of those kits that makes a dualshock 4 have a usb C slot

#

@brittle pasture am i blind, where are ProduceData and AppearanceData meant to go?

brittle pasture
#

those are types, not fields

#

ProduceItemIds is a List of ProduceData for example

shut edge
#
      "LogName": "DiamondDog EAC",
      "Action": "EditData",
      "Target": "selph.ExtraAnimalConfig/AnimalExtensionData",
      "TargetField": [
        "{{ModID}}_diamonddog"
      ],
      "Entries": {
        "IgnoreRain": true,
        "IgnoreWinter": true,
        "GlowColor": "Cyan",
        "GlowRadius": 1,
        "ProduceData": [
          {
            "Id": "prismatic shard",
            "Condition": "ITEM_ID Input GoldenAnimalCracker",
            "MinimumFriendship": 1000,
            "ItemId": "74"
          }
        ]
      }
    },```
#

so this produce data can't be here, then

brittle pasture
#

in the documentation you should start from the top level fields and gradually follow the types

shut edge
#

i have been attempting to but uh clearly still not grasping the levels

brittle pasture
#

"Field name" is the actual name

shut edge
#

maybe i need to look at like a basic json tutorial or somethin

brittle pasture
#

have you perchance perused the examples at the bottom

shut edge
#

i have

#

and several other EAC mods

brittle pasture
#

I gotta go in a couple moments, but basically only names in the leftmost column are field names

shut edge
#

alright, that should help, thank you again

brittle pasture
#

in this case ExtraProduceSpawnList

#

it is a list of ExtraProduceSpawnData objects, so next you browse ExtraProduceSpawnData's reference to see what a typical object should look like

shut edge
#

i think that does help

#

so appearance data needs to be inside texture overrides

rotund saffron
#

Can you create titles and seperate sections in content patcher mods content.json like you can with other mods? For example in this image, Dynamic Reflections.

#

Have quite a lot of customisable stuff in a mod of mine so it would be nice to clear things up with headings

#

Read through the content patcher readme and couldn't find anything

shut edge
#

should be able to load up dynamic reflection's files and see how they did it

rotund saffron
#

Tried that, pretty sure it's completely different since it's not a content patcher mod. I tried applying what they had to mine and it didn't work

calm nebula
#

I don't think content patcher mods can currently yeah

rotund saffron
#

Damn, thanks

shut edge
#

is it not a part of GCMC ?

rotund saffron
#

Yeah but C# mods and Content Patcher mods do the config UI differently

#

Ooh I think I might have found something, they call them sections instead of titles

#

Yesss it worked. Just had to add // House Options section at the top and add "Section": "House Options"}, underneath each item for that section!

shut edge
#

nice

rotund saffron
#

Now I can finally sleep

#

I'll figure out how to order them in the morning lol

tiny zealot
#

yeah CP configschema can do sections

#

there are some GMCM features that it can't do, like paragraphs and complex widgets

rotund saffron
#

Ooh okay good to know. Yeah I don't think it can do the folders thing that Dynamic Reflections was doing with their 'go to settings' bits. That would have been super handy.

The sections will have to do! πŸ˜„

shut edge
#

well what in tarnation now

#

one dog works fine with it's EAC data, the others in another file won't leave the building if they have EAC data

#

but other dogs in that file that don't have EAC data do

#

comparison time

#

results: ???? lol

tiny zealot
#

another day, another cursed bit of knowledge of how stardew does font handling & rendering

shut edge
#

chasing knowledge we were not meant to have

#

none of these jerks will go outside >8(

tiny zealot
#

rude

shut edge
#

i must still have something set up wrong

shut edge
#

hm their home data might be a little borked, that could be it

#

yeaaa i think i might know the issue, oops

spice inlet
#

I am honestly impressed by how well modded keybinds can be used on gamepads using Star Control SDVpufferthinkblob

#

the quick actions I set in that video are only available while that context menu is open.
kinda solves the button variety limitation problem

shut edge
#

yeah ok. i had the upgraded building as their home, when it should be the regular building, and reqbuilding as the upgraded one, that'll do it

#

once again eac is innocent and i am dumb

spice sapphire
#

Hello, I have a question. I use a lot of 1100 mods (I know there are a lot of them), but on a Windows PC they work fine, but on a Mac with a better CPU and more RAM it slows down. Does anyone have any idea why this could be?

#

Same mods and same save file

urban patrol
spice sapphire
#

I tried but I don't see anything relevant

urban patrol
spice sapphire
#

Thx

gaunt orbit
autumn tide
quick sand
#

Hello. can someone help me understand how i18n and gmcm interact?

#

tried with and without the i18n prefix but it doesnt use the token. it just writes it

finite ginkgo
quick sand
#

isnt that just explaining what you put in the i18n file?

#

im confused on how you write it in the content.json so it uses it

ivory plume
#

If the translation keys exist, the config UI uses them automatically. So you'd put a non-translated key in the config schema, and the translation keys contain those config keys.

#

For example, set "Section": "Slimes" and it'll automatically display your config.section.Slimes.name translation if it exists.

quick sand
#

oh man.. thanks. not sure why i was so confused by this

#

oh no actually this is why i thought i needed to change the config schema

#

for some reason its not accepting the token

uncut viper
#

you cant use tokens at all in config schema

quick sand
#

im trying to use tokens FROM config schema

uncut viper
#

are you Loading whatever file those tokens are in directly?

#

or are you using EditData to add the slime candy?

quick sand
#

edit data

#

it works without trying to translate the description of the item

#

when i try to make the description i18n friendly it no longer accepts the token

uncut viper
#

oh, are these tokens in your i18n

calm nebula
#

Plz show i18n

uncut viper
#

CP tokens dont work in i18n either, they need their values passed in

quick sand
#

"candy.slime.description": "Summon {{query: {{green slimes}} + {{blue slimes}} + {{red slimes}}}} slimes and {{query: {{big green slimes}} + {{big blue slimes}} + {{big red slimes}}}} big slimes",

#

so this in i18n wont pull the token from my configschema in my content.json?

uncut viper
#

no

quick sand
#

in game

#

"Description": "{{i18n: candy.slime.description | slime math = {{query: {{green slimes}} + {{blue slimes}} + {{red slimes}}}} | big slime math = {{query: {{big green slimes}} + {{big blue slimes}} + {{big red slimes}}}}}}",

#

in content

#

"candy.slime.description": "Summon {{slime math}} slimes and {{big slime math}} big slimes",

#

in i18n

#

does anyone know if this will break when actually being translated later?

autumn tide
#

alr posting my first mod, uhh can someone proofread my description?
oh also, @brittle pasture, what's your nexus page? wanna credit you for your help :)

Short desc:
Dwarf portrait replacement using Content Patcher, adds 8 emotions (+ neutral). I used LavenderSkelly's fantastic Dwarf Portrait Replacement as a base, please check out their stuff too! Since Dwarf Portrait Replacement is compatible with The Last Smoluanu by Lemurkat, this is too, but mine are more exaggerated so a few lines might have weird faces.

#

Long desc:

Fairly simple Dwarf portrait replacer, just plop it into your mod folder and voila, dwarf portraits! Note that the expressions won’t naturally show up in vanilla, you’d have to have a mod that includes expressions in its dialog lines and then it’ll show up. Pls lmk if you encounter any issues!!


Lil backstory, info and credits:
Hey! This is my first ever mod, so please lmk if you encounter any issues with it! I’m currently working on a huge Krobus and Dwarf expansion bc they’re so cute together, and I wanted to give Dwarf more emotions for it, and thus, this mod was born! I used LavenderSkelly's fantastic Dwarf Portrait Replacement as a base for these since I can’t draw without a base lol, I highly recommend you check out their stuff! As the base mod is compatible with The Last Smoluanu by Lemurkat, this mod is as well. Just keep in mind that this mod has much more exaggerated facial expressions, so a few dialog lines might have weird expressions. But do not fear- eventually (in like idk a decade) when I release my Krobus and Dwarf mod, it’ll include an edit to TLS that includes making the facial expressions more consistent with my mod (said edit will be posted on Lemurkat’s side).
Also, huge thanks to the whole modding side of the SDV discord server, y’all are amazing and so helpful :))


Permissions/TOU:
Mostly, do whatever! 
If you’re editing/updating/reuploading/modifying it in any ways, message me here on Nexus for my permission before posting. If I don’t respond after 2 weeks, you can post it anyways. Either way, please credit me in the post and provide a link to this mod page.
If you’re just posting something containing my portraits, like a game screenshot or video or whatever, just don’t claim it as your own. I’d appreciate it if you included a link to this mod page, but it’s not mandatory :)

Most importantly, follow the TOU of other people’s content as related to my mod, like Lemurkat’s TOU if you’re using The Last Smoluanu.
jaunty moat
#

hey guys smol question

#

where are the feesh sprites kept

autumn tide
#

uhh maybe objects?

#

lemme see

#

hmmm Objects_2 has the goby sprite

jaunty moat
#

Well I just lowkey need to yoink the original sprites of a few fishes

autumn tide
#

alr

tired relic
jaunty moat
autumn tide
#

good luck with your mod :))

jaunty moat
#

I tried to check out the content.json of a mod that changes the fish sprites but it doesn't reference any of the files except for some code files that it comes with

#

So I am at a loss

autumn tide
#

huh

jaunty moat
ornate locust
#

Check springobjects

tired relic
autumn tide
ornate locust
#

in Maps

jaunty moat
#

Glorious, thanks for your help

ornate locust
#

Objects_2 is in a different spot from springobjects, which is seasonal for some dang reason

tired relic
#

It has most of the sprites

brittle pasture
brittle ledge
#

Spriters Resource is out of date, I'm pretty sure

#

So I wouldn't use that.

tired relic
#

They just updated it?

uncut viper
#

that image says it was uploaded 4 years ago

tired relic
#

But i did say it has some not all.

brittle ledge
#

It's best not to recommend it to folks over !unpack since it is out of date kyuuchan_nod2

uncut viper
#

its also not useful if you need to know the coordinates of what you want to EditImage

jaunty moat
autumn tide
jaunty moat
#

yeah lemme brush my teeth and I'll give it a glance

brittle ledge
#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

tired relic
#

Oh! Im dumb ik

#

I miss read

#

What about people who dont have access to computer alot πŸ€” and only a tablet that's not quite android?

#

||hubby hogs the computer constantly||

uncut viper
#

i mean spriters resource is also probably analogous to unofficial decompiles on github but for visual assets, as far as legality or piracy is concerned

tired relic
#

I own three copies of sdv πŸ˜…

brittle ledge
#

They're probably going to struggle - unpack also shows you the content json files so if you're needing information on e.g. an item or event, SR won't have that

uncut viper
#

you might, but do the people you're directing to spriters resource?

#

unpacking at least guarantees they have the game in some form

tired relic
#

Oh good point. I only did it to help.

#

And it's the first time i recommended it

brittle ledge
#

We get that SDVpuffersmile it's just that it'll probably do more harm than good

tired relic
#

Was giving the sprite outright bad as well?

uncut viper
#

that is also typically discouraged yeah
though yours was also a jpg and not as usable for reference as the unpacked file anyway as a result

tired relic
#

Oh I wasn't aware πŸ˜…

tired relic
#

I didn't realize there was unspoken rules with this

autumn tide
jaunty moat
#

eh, mod description should be informative, not some romance novel level speechcraft

tired relic
autumn tide
#

ehhhh i do tend to forgot whole words when speaking or typing if I'm excited-

jaunty moat
#

Yeah I see xd

#

dw about it

#

Language is a tool after all

autumn tide
#

good to know i didn't leave out any crucial info lol, i always gotta proofread anything i write to make sure-

jaunty moat
#

When I wrote fanfiction I proofread this shit like 5 times, putting in changes every single time

#

So I feel ya

autumn tide
#

omg there are so many times i meant to say 'I really like that!' and just said 'I really that!' while the other person just stands there like '????'

#

I REALLY THAT

tired relic
autumn tide
#

omg

jaunty moat
#

I can't believe it

tired relic
#

Profile pic

#

My account name is actually BunBun

brittle ledge
# tired relic I didn't realize there was unspoken rules with this

(For reference, generally the references you want to steer people to are:

  1. The original game files
  2. The official wiki (including the Modding section)
  3. The modding wiki (for tutorials and how-to's)
  4. Asking questions here if needed (or in other modding servers)

Other stuff may be outdated or incorrect!

tired relic
#

I appreciate it

#

But I sweepy I did too much adulting ran around with an angry almost toddler and stayed up until 5 am doing sprites im dead to the world. Into the hole πŸ•³ I go!

uncut viper
#

well tia isnt a junimo so not really

autumn tide
#

ohhh so only mods' stuff can be pinned?

#

not wholly familar with how it works lol

uncut viper
#

i mean a junimo can pin whatever they want, but since ~2019 its only ever been used for posts by junimos and typically for server policy updates or other very important information relevant to the channel

autumn tide
#

thanks for explaining :)

uncut viper
#

in a more broad sense though only Junimos (and higher ofc) have access to pin permissions in the first place, not mod authors

#

hence my original comment

autumn tide
#

i would have assumed like purple role+ lol

uncut viper
#

you really do not want to give permissions like that to a general subset of people in a server with ~280,000 people in it lol

autumn tide
#

yeahhhh makes sense haha

#

uhhh how might one set up a dynamic token of years married? I have a convo topic trigger during the 'after wedding' dialog, but I'm not sure how i might convert that into a dynamic token, maybe use that as well as the BETAS PLAYER_DAYS_MARRIED query?

calm nebula
#

!!true

ocean sailBOT
#

true

autumn tide
#

heheh

calm nebula
#

!stop_modding

autumn tide
uncut viper
autumn tide
uncut viper
#

(by mail flags as a middleman, i mean using Data/TriggerActions to send mail depending on a GSQ, and then using that mail in a HasFlag When condition)

autumn tide
#

i think secret mail works! i wanna set it up so it works for specific spouses

#

i could do the one year (which isn't a year?!?!?) topic memory + days married or something to make it specific

uncut viper
#

you can do that, yeah. you dont really need BETAS at all for it really

autumn tide
#

huh alr!

uncut viper
#

you can also just set your own 112 day CT after the player gets married, and send a flag when that expires

autumn tide
#

YES

#

omg tysm

#

gonna screenshot that

uncut viper
#

though, admittedly im blanking on how to set that up for multiple years without just hardcoding multiple years

autumn tide
#

flag triggers a dialog that has a 112 day CT and repeat into oblivion?

uncut viper
#

but what do you call the flag?

autumn tide
#

y1

#

idk

uncut viper
#

right, but then how do you make it y2 next year? and y3 the next, and so on, forever

autumn tide
#

truee

#

ugh i can't think rn

uncut viper
#

and then you'd need to check for y1, y2, y3, etc for the dynamic token

autumn tide
#

listening to music while i code never fails to destroy my concentration-

uncut viper
#

what do you need this dynamic token for, anyway?

autumn tide
#

uhhh line referencing how long player has been living with NPC for anniversary dialog