#making-mods-general

1 messages Β· Page 311 of 1

rigid musk
#

if its the quickest way there most likely yes

#

or if its the only way to get there

sour sleet
#

Oh that's good. It is the only way because they refuse to get the bus there haha. I was concerned I needed to make them walk to the warp tile manually

#

Aaaa she doesn't seem to be using the warp. She enters the bus stop and just stays still:c

#

Is there another way of getting the npc from the farmhouse to my custom location? It's accessible via bus only

#

It's a marriage schedule

sour sleet
#

Ok, so the wiki says "If omitted, defaults to the previous map, or if it's the first, it defaults to the bus stop". Mine is the first, so it's treating it as though i haven't given a location to go to. Hmm, this is stumping me.

brave fable
#

you could add an NPC-only warp from BusStop to your new location as a quick fix

#

or alternatively from BusStop to a new location with NPC warps to each of your locations as a warp-room

sour sleet
#

That's what I've done. I have patched the bus stop to contain an NPCWarp, but my NPC isn't using it

#

Will it even work that I've put the NPCWarp in the patch?

brave fable
#

if you added it correctly, it should SDVpufferthumbsup not my wheelhouse though

sour sleet
#

The pink tile (just for clarity) is the warp. I've listed it as 0,1. Should it be relative to the bus stop's coords instead rather than the tiny patch?

brave fable
#

in what way 'listed as'?

#

just its position in the TMX patch file, or is it written elsewhere in a content file as 0 1?

sour sleet
#

I mean in the NPCWarp property within the map. The warp is 0,1, and I'm now thinking it should be 20,6. So instead of separating the patch from the bus stop

brave fable
#

properties are transferred from the tile in the patch file to the tile in the location map as-is, so an NPCWarp property will be correctly applied to the tile you expect in the final map

#

not sure how better to explain it

sour sleet
#

When the patch is actually applied, it will be a part of the bus stop, rather than on it's own

latent mauve
#

You're applying the new map property or edited map property through code, not in the TMX that's being patched in, correct?

#

Map patches don't respect new map properties typically

brave fable
#

NPCWarp is a tile property, isn't it?

sour sleet
#

I'm applying the NPCWarp map property in Tiled

brave fable
#

ah.

latent mauve
#

NPCWarp are map properties, so they'd need to be added to the map you are patching over, you can't set them in Tiled and expect them to be used unless it's a completely new map.

brave fable
#

what i said only applies to tile properties

sour sleet
#

Ahhh okee

inland cedar
#

I have an IClickableMenu. There I have a textbox listening to user input. However button T still triggers the chatbox open. How can I disable that?


latent mauve
#

Thankfully, Content Patcher has now added the very useful AddNpcWarps map property for use in CP code as of 2.6.0

brave fable
#

in order to get the same effect, you want to use the final map coordinates in your NPCWarp map property, and use TextOperation Append to add it to any possible existing NPCWarp map property rather than simply resetting it with your own value

#

oh bless

latent mauve
sour sleet
latent mauve
#

Yep, you can use an EditMap / Map Properties patch in your Content Patcher code with AddNpcWarps and it won't erase the existing NPC Warps

brave fable
#

in which case, you should remove the map properties from your patch file, and use CP to add the properties manually

latent mauve
#

It will automatically just append your new one to the Bus Stop map properties, as long as your Target is Maps/BusStop

sour sleet
#

Oh so I can do it all within CP, that's great. So I need to EditData the bus stop and my patch isn't needed?

brave fable
#

if your patch file is exclusively used to add the NPCWarp, then yes, you can discard it and instead use AddNpcWarps from CP

past knot
#

ping me for this but what should i use when it is not a locked door but players still must click on it to enter the location? Im a bit confused

latent mauve
#

so if you follow the link I gave you, they have a code example of AddWarps, AddNpcWarps will behave exactly the same but with NpcWarps instead of Warps

sour sleet
#

Ok, will give that a go. Thank you both SDVpuffersquee

latent mauve
sour sleet
#

Yay it works, so happy right now SDVpufferparty

boreal pulsar
#

I need to send a mail the first day of each season but unsure how to detect that trigger
should I send a letter to the player based on the
helper.Events.GameLoop.DayEnding or helper.Events.GameLoop.DayStarting ?
or completly something else

lime seal
#

From what I've heard for CP mail, day start is the better choice in that case

brittle pasture
#

also consider doing it in CP

lucid iron
#

in C# you can just call the addmail directly

#

its fine to not participate in the trigger actions unless you want to

boreal pulsar
vernal crest
#

Yup

boreal pulsar
brittle pasture
#

but yeah also doing it in C# is fine
if you dont already have a CP component

boreal pulsar
#

id prefer to do everything in C#
unless it will get too complicated

#

theoretically I would need 3 mail structurs,:
one announcing a quest was added (like QI quests ingame)
one containing the prize of the quest
one explaining the punishment for failing the quest
just gotta understand how the whole mail system works

brave fable
#

i personally recommend using CP whenever possible for compatibility, future-proofing, and extra lovelies like tokenisation and simple conditions; as well as just for separating custom behaviours from content and asset handling

#

generally also more readable and maintainable

boreal pulsar
#

mhh alr ill check how it works

tiny zealot
#

the "extra lovelies" are the real case for CP in my book. i started out doing everything via C# but found myself reimplementing a bunch of CP's features, and poorly

brave fable
#

it's also very simple to include your CP file structure within your VS solution so you can navigate your assets and data easily in your usual workspace

boreal pulsar
#

I tought CP was mostly for visuals so didnt look into it ahah

brave fable
#

thusly

#

CP is for content. any content at all. i load all my constant values and unique data models through json files via CP for all my C# mods

boreal pulsar
#

I do have quite many constant values that I store in JSONs but I load them directly in c#

vernal crest
tiny zealot
brave fable
#

we're using the word extreme a lot here but it's for good reason i assure u

boreal pulsar
#

yeah its that I dont believe you its just another step to learn
but ill try it, why not

#

I better find out early than later when im more down the line

wide lake
#

The "lets other mods edit" is the only part that matters, since you probably don't need any of that other stuff.

#

(right up until you do)

boreal pulsar
brave fable
#

technically you can do all that in a c# asset editor callback manually, but it won't be nearly as readable or editable

#

you want a new CP folder that's essentially a separate mod which loads and edits to asset targets you may or may not also reference from your C# mod

#

you can wrap these both in a superfolder for your convenience

boreal pulsar
#

mhh so like, theoretycall I could create a custom data that sets every item in pierre shop to 999mln $ and trigger it if you fail a quest

#

alr tomorrow ill dive into this thanks for recommending it πŸ˜„

brave fable
#

ah well that sounds like loops to me, which CP absolutely doesn't do lol

#

you could just wipe his shop data though with cp for the same effect, but unfortunately less insulting

ivory plume
boreal pulsar
latent mauve
#

Well, you can set the Shop Data to have a Price Modifier that uses Set Price

#

(I did this for my test mod with Leah selling all the spouse portraits because I didn't want to manually set prices for SVE/RSV/etc. portraits)

boreal pulsar
#

alr tomorrow ill check everything I can

latent mauve
#

Let me double check if that's on the shop or Items level

#

Yep, looks like you can set it on the shop level

boreal pulsar
#

Mhh interesting

#

I wonder if CP could help me organise all the challenge templates I have too

rigid musk
#

hmm How do I make an outfit/portrait only happen while at the flower dance? I know I can use the appearance system and I can set that up, but I only want the out fit to happen while he's there at the dance instead of that entire day (I'm uusing the DayEvent GSQ currently)

#

Challenge templates?

rigid musk
#

Thanks Selph!

boreal pulsar
# rigid musk Challenge templates?

Ye my mod basically revolves around random monthly challenges/quests, giving rewards on completion and punishments on fail

Challenges would vary on very different kind of themes, from grow X crop to idk obtain y item to do Z thing etc

There would also be yearly quests, same principle but way harder to complete

Templates are a list of JSON containing ID, Name, description, tags (used to filter what type of completion a quest requires, wether harvesting a crop, catching a fish, completing CC, etc)

latent mauve
#

Pierre's shop actually already has a PriceModifiers value set by default, in case you were curious! "PriceModifiers": [ { "Id": "DefaultMarkup", "Condition": null, "Modification": "Multiply", "Amount": 2.0, "RandomAmount": null }

#

on the shop level

boreal pulsar
latent mauve
#

Base game

#

That's in the Data/Shops file

boreal pulsar
#

Oh yeah I gotta look into that

latent mauve
#

So, your mod could either alter that DefaultMarkup modifier to use "Set" as the Modification and your amount to be whatever you wanted, or you could create an additional PriceModifier and use a Condition to activate it.

(if you do the second option, you may want to change the related ModifierMode to not be Stack anymore though, unless you want the shop set to your amount and THEN doubled.)

boreal pulsar
# rigid musk That sounds really cool! :D

I'm trying to add some way to give challenge to player and at the same time "force" new kind of playstiles
I've played this game for so long but there's things I never did, and the "punishments" should help incentivise the player to go that way
Rewards too

rigid musk
#

not doing a quest and then the price of everything in a shop doubles is .. scary I like it

boreal pulsar
#

Ugh another one would be that whenever you move, you're slowwalking

#

No idea how to implement this tbh

#

But it's not the time for that

#

I have to first make the proper assigning quest mechanics haha

rigid musk
latent mauve
#

slowwalking could just be a speed "buff" with a lower/negative value, probably.

boreal pulsar
rigid musk
boreal pulsar
rigid musk
#

If you have to make something to do it you'll want to use a framework mod I will say, just to make sure you don't accidentally create some sort of incompatibility by making something yourself again

#

Im not sure if that made sense im a bit sleepy lol

boreal pulsar
boreal pulsar
boreal pulsar
latent mauve
#

as a bonus, most (if not all?) Condition fields take GSQ, and there's the PLAYER_HAS_BUFF <player> <id>+ Game State Query that could be used if you apply a debuff to a player to make things trigger

#

So you could definitely escalate the punishments that way

boreal pulsar
#

Ye I'd like to add some debuff status icon for each of the punishments
But this would be like the end of the line

#

I first have to make the mail system, the quest system, and than start working on punishments

rigid musk
tacit sparrow
#

Anyone recall the github link that contains a list of mod requests?

sour sleet
#

!modrequests

#

Oh? Nvm haha

#

I could have sworn it was a command SDVkrobusgiggle

brittle pasture
#

!modideas

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your ideaβ€”modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

tacit sparrow
#

Thanks

versed wyvern
#

Hmm... what's the proper setup for a minor NPC that I want to be able to speak but not have any of the functions like gifting and whatnot? I assume CanSocialize will completely disable any interaction so I'll have to set that to true and then set every other function to false?

brittle pasture
#

you want CanSocialize to false

#

you can still talk to them

#

like birthdays, gift giving, friendship, and an entry in the social tab

#

those are disabled

versed wyvern
#

Oh, really? I assumed "social features" referred even to speaking but okay, thank you

woeful lintel
#

just realized that the game applies transparency to objects being placed by setting the draw color to color = Color.White * alpha instead of color.A = alpha, which seems more intuitive to me

brittle pasture
#

you can look at the unpacked game itself for examples

boreal pulsar
#

How do I know where to look up for something specific in the games source code?

I cant come here to ask for a specific function every timeSDVpufferwaaah

Like, in this case I need to understand how to send a letter containing a forced quest (that triggers as you open the letter)

#

What would you your process of finding how to do rhis

#

Or in other words, what is your workflow/mind/toughs/process when looking for something int he unpacked code that you don't know,

brittle pasture
#

then I look for references of the assets used in the source

#

in this case, there's a AddMail trigger action, so I look for what the game does when it triggers it

boreal pulsar
#

Thanks!
Idk why I forgot to scroll past the "make mods with c#"
And didn't see the whole list containing examples and explanations of so many things

brave fable
storm patrol
#

Hey, would this be the right place if I would like to find someone to commission a mod for me? Yes, I would put up real world money if someone would create a mod for me implementing custom pathways in the game that illuminate at night.

ocean sailBOT
storm patrol
#

Thanks!!!

rigid musk
#

I wish I understood how to use dynamic tokens when making all of my dumb dialogue patches... its far too late to go through and change them all now (mostly because of how I did them) ... im glad I understand how to use them now though

#

dynamic tokens <33

whole raptor
#

Are there like... official Junimo colors for the ones in game? πŸ˜… Cause I see the sprites are colorless

sturdy wyvern
#

working on a content patch to patch a different content patch with different images, the original content patch uses the Load Action to replace the vanilla assets with it's own, so i am wondering do i point the Target of my patch at the same vanilla target or do i have to do something else? (i have made sure that my patch loads after the original patch using dependencies in the manifest.json)

whole raptor
#

You target the same asset (if those are the ones you want to edit), but you need to use EditImage, not Load

vernal crest
sturdy wyvern
#

the original mod does not include a priority field

vernal crest
#

Then EditImage is what you are after

sturdy wyvern
#

alright thanks!

exotic fiber
#

How to make a mod? I have some ideas that I want to implement

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.

frosty hull
#

thanks, fixed

woeful lintel
grim latch
#

Hello lovely people - a quick question re : farm maps

#

I made an edited farm map for my own use (I'm eventually going to upload it as a modular farm with multiple linked areas but it's not done yet)

It works perfectly in gameplay, but it breaks the intro cutscene for some reason I can't figure out

#

When Robin and Lewis should meet me on the farm it just loads without the characters in the map and gets stuck until I hit skip

#

Like this

woeful lintel
grim latch
#

Any idea why? It's an edit based on the original farm map so I can't see any reason for it

vernal crest
grim latch
#

I can upload the tmx if that helps?

#

New map, set as a custom farm type with CP

#

It was originally a standard farm replacer but I changed it to be a new farm type

vernal crest
#

Did it cause the intro problem when it was a replacer?

grim latch
#

yes

#

But I don't know why

#

I'm sure I'm missing something obvious

vernal crest
#

Did you resize the map and expand it up or to the left?

grim latch
#

Nope

#

Same size as the standard farm map, just a different layout

#

The farmhouse is in a different place, which might be the cause, but I was sure that issue was fixed in 1.6

#

as I've seen other custom farms with moved farmhouses

#

Unless it's because it's too close to the map exit maybe? I moved it right basically.

#

It's not a huge issue, but it is annoying.

vernal crest
#

Yeah it should be okay to move the farmhouse, but maybe it is too close to the edge of the map. Maybe try making a backup of your map and then moving the farmhouse back?

whole raptor
#

Also maybe check if those custom farms edit the intro event in any way? SDVpufferthinkblob I'm just guessing here

grim latch
#

Yeah they don't - the logic for the intro was fixed to allow for modded farmhouse locations in the big modding changes with 1.6

#

But I'm at a loss as to why mine specifically doesn't work

#

I've just moved it back 5 tiles to see what happens

#

yep, that works

#

So it's a location issue that is probably hardcoded. How annoying

#

I guess I can try including an edited start event

#

I haven't changed events before so I'll have to look into that

#

Ah no it doesn't work on at least some other people's either

#

I think I need to talk to a more experienced farm map editor πŸ˜†

#

I'll have a look at DaisyNiko's and see how she's done it

#

Yeah there's an CP event edit in there. I'll have to figure that out

#

Thanks for the pointers πŸ™‚

vernal crest
#

No worries. Happy to help if you run into issues with the event editing.

whole raptor
#

Do Junimos normally (as in in modded events and stuff) use breather effect..? SDVpufferthinkblob

#

I'm not sure if I like it πŸ˜…

worn spear
#

I fear I have not noticed this

#

But I might just not pay attention

whole raptor
#

It looks like they are breathing through the top of their heads... which I don't know if I just never noticed, but it feels weird SDVkrobusgiggle

worn spear
#

thats an interesting choice I see the vision

#

but idk if i like the vision

whole raptor
#

It's just how it lines up with normal characters breathing rectangle, It's most likely not intended as Junimos aren't NPCs normally

worn spear
#

I think idle animations add a lot but I just dot know if i like the idea of head breathing is what I mean

whole raptor
#

Yeah, disabled it is then SDVpuffersquee

worn spear
#

I just have until friday then I can just sit down and make mods all day

grim latch
#

Hmmmmmmmm editing events is a PITA

#

All those coordinates etc.

worn spear
#

A what

#

Omg the coords are so hard

#

It's so hard sometimes I empathize

grim latch
#

I have never wanted to edit events and this is why

worn spear
grim latch
#

Sadly it's necessary to make the farm intro event work on my map

worn spear
#

unfortunate

grim latch
#

ugggggggh this is gonna take me longer than making the map did πŸ˜†

worn spear
#

I just wanted a aged up pretty normal seb its deffo inspired by Kantrips older seb but I took a less tragic route

#

idk how else to put it lmfao I just wanted a nerdy seb thats like mid 20s early 30s

grim latch
#

Yeah I get you.

#

Honestly all of the dateables could stand to be a lil older IMHO

worn spear
#

thats prob gonna end up being my project

#

I might just age everyone up and add a bit more depth

#

but first Sebastian

grim latch
#

Seb and Sam and Alex especially come off as very immature

#

Do not like

worn spear
#

agreed and I hope to fix that but I am about to graduate college so once thats done I can just get these mods done

#

I plan to do some tweaks to shane next as well

grim latch
#

Well definitely sounds like the kind of mod I would use πŸ™‚

#

Are you making sprite / portrait edits or just doing the events and storylines?

worn spear
#

just events ik people have sprites they like to use

grim latch
#

yeah

worn spear
#

im also working out custom music but it turns out i can only make weird industrial stuff

#

so its not working well for me

grim latch
#

Awesome! I will keep an eye out for your mod(s) - what's your nexus page?

worn spear
#

MushroomMystic

I havent published yet but Im hoping to end of this month

vernal crest
#

Is Seb not already mid twenties in vanilla?

#

That's what I see him as

worn spear
#

he doesnt really act like it in my opinion

vernal crest
#

No he doesn't but my impression it's because he's too busy being sulky than because he's actually younger lol

whole raptor
#

I definitely see him as a brooding teenager SDVkrobusgiggle

worn spear
#

yeah

#

thats what i dont love

vernal crest
#

Doesn't he have an IT job?

worn spear
#

yes

vernal crest
#

So he's got to at least finished university

worn spear
#

no

#

he hasnt

#

I think hes self taught

vernal crest
#

Wow my English is good tonight

#

He's lucky having an IT job being self-taught then

worn spear
#

its freelance

#

i think

whole raptor
calm nebula
worn spear
#

the CS dept at my school is actually awful

#

so yeah

calm nebula
#

It's a lot β˜†β˜†easierβ˜†β˜† to get a tech job in you have a degree

worn spear
#

in my mod hes getting his masters

#

if its freelance it depends

calm nebula
#

But it isn't necessarily needed, and many great people (ie Pathos) don't have a degree

#

(My personal take is that Sebastian is self taught.)

worn spear
vernal crest
#

Now that I have read his vanilla dialogue, he says he doesn't even have a job

worn spear
#

he says he freelances in two heart event?

calm nebula
#

It does? He has this entire heart event where he's working and tired of getting disturbed?

worn spear
#

maybe freelance =/= job?

calm nebula
#

He's between jobs when the dialogue comes up SDVpufferthumbsup

#

Or, maybe, more like he doesn't have a current client

grim latch
calm nebula
#

No idea what he freelances in

worn spear
#

one of my friends says I need to make it so the farmer has a casual math PhD (idk how i would do this and idk if he gets the game)

grim latch
#

I guess Harvey is older, what with being a fully qualified doctor

calm nebula
#

Harvey is at least 30 though

worn spear
#

so is shane

#

right

calm nebula
#

Yup

#

Also, leah on the girl's side

worn spear
#

I should be evil and make people lose ALL friendship with seb if they cant derive a dual lagrangian

whole raptor
#

Elliot also doesn't really feel that young

worn spear
#

he feels 25-27 but not 30

calm nebula
#

Yeah, the guys seem older in general

worn spear
#

not alex

#

or sam

whole raptor
#

Alex feels like a uni jock tbh

#

Sam does feel younger

worn spear
#

he screams hockey player to me

whole raptor
#

Then there's Abby... who feels way too young most of the time

worn spear
#

yes

#

this is why I wanna do a project where I age up everyone

grim latch
#

Oh boy am I fed up of trying to get the intro event working on my farm map already

#

I'm gonna leave it broken until I actually get around to publishing the finished version with all the modular locations

worn spear
#

you dont know how jelly I am of u rn

#

even tho its broken

#

I dont wanna do real analysis

whole raptor
calm nebula
#

Also, aside. I'm surprised y'all call general programming IT

worn spear
#

I dont want to at all

calm nebula
#

IT to me means fixing computers

worn spear
#

my biggest fear is people will have issues with the way I write romance

grim latch
#

It's basically a standard farm but it has extra locations that mimic the properties of other farms

So like a quarry area, an orchard, etc. all on their own maps reachable from the main farm

worn spear
#

and I dont like writing characters that are dependent on the farmer and ik a lot of people like that trope

grim latch
#

Also I just learned that multiple farm maps are now supported for building on in the base code!

calm nebula
#

Meh, if people have issues, maybe the mod isn't for them

grim latch
calm nebula
#

(And that's fine)

grim latch
#

Makes it feel more real

opaque field
#

Yes

whole raptor
worn spear
#

I dont like it when people assume the worst or push bounderies if that makes sense even if its just a little npc so I coded it in to not allow that and almost always just ends the interaction

opaque field
#

my Sweet and Sour mod relies very little on the farmer - I just have like 2 pages of cute little headcannons about Sam and Shane as friends/coworkers and how it affects how Seb and Abigail interact with Shane too. Like Shane appreciates that Seb has a vice.

worn spear
#

Im going to be working on some events that just exist outside of the farmer

#

most of my goal is to make it so it doesnt feel like the emotions reply on the farmer

opaque field
#

I love that.

worn spear
#

they are people on their own and dont just let the farmer pry or push boundaries and be a good thing where they open up or whatever

opaque field
#

Sam being honestly annoyed with you for bothering him or Shane at work "listen I appreciate how friendly you are but it's kinda rude you come in here all the time when we're working"

worn spear
#

this is some of the dialog I have been working out after a heart event where the farmer ovehears a convo w seb

whole raptor
worn spear
#

I LOVE BOUNDERIES πŸ₯Ή

opaque field
vernal crest
#

$1 dialogue command!

#

Shows one line the first time you talk to them and another line afterwards.

opaque field
#

oh yeah! I was looking through those yesterday.

calm nebula
#

(Or something with actions, queries, and stats)

opaque field
#

A combo of both maybe?

whole raptor
#

Speaking of figuring things out... What would be the best approach if I want several blocks of code start at the same time? Like for example

  • Block 1: NPC A starts moving and jumping for 5 seconds
  • Block 2: NPC B starts dancing for 10 seconds
    I don't think adding true can work, since some of these would need pauses in them SDVpufferthinkblob
vernal crest
#

Yeah if you want it to be more than just first vs every other time you have to get more complex.

opaque field
#

beginsimultaneouscommand? - though that's more event specific idk if that'll help here

vernal crest
vernal crest
#

I assumed Nomori was talking about events

whole raptor
#

Yep

vernal crest
#

For his wedding event

opaque field
#

ahhhhh, okay.

vernal crest
#

Using [continue] and pauses is how I would do it

woeful lintel
#

Hey, I'm reading the docs you linked and trying to wrap my head around how all of this works, and there are a few things I don't really understand yet:

  • How to properly parse the json string into a JToken (there's only an example snipper for WriteJson)
  • How to properly cast the modified json structure to my data Model (again, there's only an example snipper for WriteJson)
  • How do I tell SMAPI to use the JsonConverter I wrote so that its used when parsing FF content files
    Thanks for all the help you and others already gave me yesterday, it has been very useful to see in what direction to progress.
vernal crest
#

(And I am apparently a great user of simultaneous movements)

calm nebula
#

But also, it's usually just registered as an attribute

whole raptor
vernal crest
whole raptor
#

I am writing it semi multi-lined (as in blocks) for sanity reasons, but still doubt it SDVpuffersquee

vernal crest
#

I don't do blocks because it makes testing harder

woeful lintel
vernal crest
#

Every single command on its own line, then it's extremely easy to comment commands out

#

And I have to do a LOT of commenting commands out when I make events

whole raptor
#

We can comment lines out within an event? SDVpuffereyes

worn spear
#

not me doing it with JSONS and just having redlines everywhere

vernal crest
#

Because they break incredibly easily when you do simultaneous actions

#

You can write comments in the middle of events too

#

Having them all on their own lines means I can comment out (or back in) as many commands at once as I want to

grim latch
#

Is there a way to write an event in a seperate file and then have it loaded into the CP content.json wholesale as an event edit?

woeful lintel
#

I'm surprised nobody made an event editor integrated in the game yet.

grim latch
#

That would be SO much easier than trying to edit the damn thing all in one line in my content.json

vernal crest
#

That screenshot of mine was not of the content.json

whole raptor
grim latch
whole raptor
#

Huh, never seen it done like that, but that's very useful indeed

vernal crest
grim latch
vernal crest
grim latch
#

ahhhh that will make life so much easier! Can you do that to edit an existing event or do I just overwrite it completely with a new include?

calm nebula
#

The -- is actually part of the game parser

vernal crest
grim latch
#

If I can just type it out line by line in another file it will make editing the intro event with the correct coordinates for my new farm WAY easier

whole raptor
vernal crest
calm nebula
#

At work one of the languages uses ; as a comment

vernal crest
#

This is what the top of my events.json file looks like (after the gigantic pile of comments at the top)

whole raptor
grim latch
#

But does action type "include" permit edits to existing events?

Normally you'd use

"Action":"EditData",
"Target":"Data/Events/BusStop",

for example

#

But include seems to be it's own thing?

vernal crest
#

See my screenshot. The EditData action is inside the included file

woeful lintel
grim latch
#

Oh yeah, gotcha!

#

That is FANTASTIC news.

vernal crest
woeful lintel
#

Idk, it seems like you wrote doc for each file at the top

calm nebula
vernal crest
grim latch
#

Now one more question : is there an easy way to convert an existing event to multi-line format?

whole raptor
median forum
#

i like it. it's stylish

stark spindle
vernal crest
whole raptor
vernal crest
#

I use it to read vanilla and other mods' events

grim latch
worn spear
#

I did not know this

stark spindle
#

I just use notepad++ macros to do a search and replace for / to /newline and back

worn spear
#

when i first started coding i used notepad

#

not notepad++

opaque field
#

I love that plugin

vernal crest
grim latch
worn spear
#

I was doing mc coding in JSONs it was brutal there was like 1k lines

grim latch
#

I mostly use Sublime for everything. VSC for coding.

#

I've made Sublime replace Notepad completely on my system

opaque field
#

I've grown fond of VSC but I still use texteditor sometimes.

stark spindle
worn spear
#

VSC and intellij for java always

#

NO MATTER WHAT MY TA TELLS ME 😑

vernal crest
opaque field
#

My colorscheme for VSC and text colors are so helpful for me to have a visual cue

grim latch
#

Honest to god @vernal crest you have saved my sanity

stark spindle
#

yeah makes sense. i ended up writing up a whole syntax highlighter in notepad++ before i found out about the vsc one.

grim latch
#

Thank you SO MUCH

opaque field
#

Very true. I only started using it when I started showing interest in C# and my fiance put me onto some classes that use VSC

vernal crest
#

I currently have 18 tabs open in Sublime as well as 4 VSC windows with 4+ tabs open each lol

opaque field
#

I don't know much about sublime tbh

worn spear
#

same lmfao

vernal crest
#

It has come to replace N++ for me

opaque field
#

Oh good there's a linux version

vernal crest
#

It has really, really fast find in files searching

#

Waaaaaay faster than N++

grim latch
#

Sublime is incredible

#

Not free, but well worth the licence

vernal crest
#

It is free

#

You can just ignore the reminders about paying

grim latch
#

Well, yes, you can

#

But I don't mind throwing them a licence fee. It's good sofware.

whole raptor
grim latch
#

Although I have been "evaluating" Reaper for about 4 years now πŸ˜†

vernal crest
grim latch
#

What does the initial -1000, -1000 line do ?

stark spindle
#

has anyone written up an event syntax highlighter for sublime?

vernal crest
#

It's how to control fades

grim latch
#

ahhhh that makes sense

#

I have never done any event stuff before

vernal crest
#

Argh I am certain this event was working last time I had it like this

stark spindle
#

Cool I might have a look in to making that so. Seems fairly doable.

vernal crest
#

Now it is broken in a new way

worn spear
#

yippie!

#

love when that happens

whole raptor
#

How long is a tick (or a single instant command) in miliseconds? SDVpufferthinkblob (trying to compare it to pause)

grim latch
#

although I still can't see why it doesn't work :/

#

The coordinates all look ok now

#

bah

vernal crest
#

I think there's usually 60 ticks per second

#

Are you asking because you're looking at beginSimultaneousCommand?

#

(Nomori)

blissful panther
#

I think the tick rate is only ever 60 per second?

whole raptor
#

Nope, mostly out of curiosity, partially to plan the command order (no idea if that makes sense)

blissful panther
#

So it'll be 16.666~ milliseconds... if that assumption is correct.

vernal crest
#

I will be extremely impressed if you manage to plan out successful parallel action in advance

stark spindle
#

If I wanted to have a mail be delivered 3 days after an event can I do that with the event memory? I can only see _memory_oneday or _memory_oneweek

vernal crest
#

Nope you will need to set your own CT

stark spindle
#

ok cool thanks

whole raptor
vernal crest
#

Thank goodness for event tester letting me speed through this event

calm nebula
#

There is a pause for specific time command iirc

vernal crest
#

Yeah I don't know if you can even use the pause command without the duration argument

tiny zealot
calm nebula
#

I'm glad I don't notice anymore tbh

#

But tbh I'll notice frame drops but if two npcs start animating, one frame apart, is fine

#

Don't care

vernal crest
calm nebula
#

The events system is Fun

#

I'm also, tbh, pretty forgiving of event jank b/c with all the mods ever, doing mod compat with events can be hell

#

Ie, did Penny just walk through a chair? Well. The modder probably didn't expect this particular modded interior map

#

It's fine

tiny zealot
vernal crest
#

I am extremely forgiving of other mods' event jank. And intensely unforgiving of my own lol

opaque field
#

^^^me

#

And I have 15 events scripted currently

calm nebula
#

Meanwhile I do not with events haha

tiny zealot
#

i cannot allow jank in my own events. i have written new event commands to get around the jank and i'll do it again

blissful panther
calm nebula
#

Ichor you and I have a weapon in our back pockets

#

If we get annoyed enough, new event command it is

vernal crest
#

Well globalFadeToClear is currently what is breaking this event so perhaps I should explore shouldFade instead.

whole raptor
#

Ah... I was hoping I was majorly overthinking all of this if animate had [continue] parameter... but it doesn't SDVpuffercry

vernal crest
#

Does animate stop time while it happens? That seems surprising.

calm nebula
blissful panther
calm nebula
#

One day I'll technically go release a knitting pattern and make no money from it

tiny zealot
whole raptor
#

Yay SDVpufferparty

vernal crest
#

I've yet to use animate

vernal crest
#

I'm too attached to TAS

blissful panther
calm nebula
#

Also do you guys buy Mr. Qi as a r/wallstreetbets guy

patent lanceBOT
calm nebula
#

Dammit maru

#

People don't go there it's a cesspool

vernal crest
#

Hmm maybe it's breaking because they're using shouldFade and globalFadeToClear SDVpufferthinkblob

calm nebula
#

My entire justification is that he owns a casino

vernal crest
#

I do not know enough about wallstreetbets to comment on Qi's affiliation

calm nebula
#

And I need a risky day trade type to balance the gentle long term hedge your bets

blissful panther
#

(Also holy hell! Activity! SDVpuffereyes)

tiny zealot
#

@grim latch make sure the farmer is in your list of actors for the event

grim latch
#

I am literally just using the default intro event and changing coordinates

#

Farmer appears at the bus stop as expected

#

but when it comes to the change location bit, nothing.

#

It's got to be related to my tmx file somehow

#

But I can't see any reason why it wouldn't work

vernal crest
#

Does the farmer appear if you put them at different coords that are further to the left?

grim latch
#

I'm gonna try that now

#

The weird thing is those tiles are basically identical to the standard map

#

very odd

#

no moving the farmer start point didn't help either

#

I am at a loss

whole raptor
#

I'm curious if people will even notice the little spy SDVkrobusgiggle

grim latch
#

oh wait does the farmer need to be in the viewport?

#

Might be that they're outside?

vernal crest
#

You mean the camera can't see tile 78 17?

grim latch
#

yeah, possibly, although again that's the same as the default event

#

and the map size is identical

vernal crest
#

You can use Debug Mode to check what the coords of each tile are during the event

#

So you can be certain whether 78 17 is visible

grim latch
#

they're supposed to be walking in from the right as the scene starts - Robin is, but the farmer just isn't there

#

but no, can't be that, because I moved the farmer's warp in point so they're definitely in view.

#

Ugh.

I really hate this.

vernal crest
#

Yeah unfortunately events are...like this.

#

You could try running your custom event on the standard farm and see if the farmer is visible there

#

Just to narrow down whether it's an event issue or specific to your map

grim latch
#

I feel like it's the map file, somehow, but I just don't understand why

vernal crest
#

Farms have a lot of hardcoding. You might be running into some.

blissful panther
#

I could swear I remember something on farm maps with events and the player position... but I couldn't tell you exactly what it was, or if it actually existed.

#

But a memory is tingling back there somewhere.

calm nebula
#

Yes

#

There is. BUT it shouldn't be an issue here

#

Because the event itself starts on busstop

blissful panther
#

Oh, then yeah, that shouldn't... apply...

grim latch
#

Ok the event isn't being edited at all.

#

I added a line of dialog to the bus stop to prove it was working and no luck

#

cries

#

but the content.json is apparently ok

#

oh god I am an idiot.

#

There was a TYPO in my When : clause

vernal crest
#

Oh dear

grim latch
#

goddamnit.

vernal crest
#

Happens to us all, don't worry

blissful panther
#

You're eligible to join the club now, yeah.

vernal crest
#

I spent aaaaaages the other day with no clue why my dialogue and schedule weren't working before finally realising I'd never loaded them

#

Woo I think I have finally figured out the issue with this event!

#

Yesss it broke that is good

whole raptor
#

Raven is sneaking, Junimos are dancing... now the raccoons...
Are they part of some vanilla events that I can debug ebi? I looked through forest events, but didn't see anything that matched SDVpufferthinkblob

vernal crest
#

Hardcoded I'm guessing

lucid iron
#

The raccoon dancing

vernal crest
#

Yeah

whole raptor
# lucid iron The raccoon dancing

Yeah, the animation is what I'm interested in, also if I could use IDs to make their appearance (and number) dependent on already seeing it

grim latch
#

Ok it's loading.....

Still no farmer though.

#

I hate events so much

vernal crest
grim latch
#

Maybe.

I'm gonna try warping them in to a totally different spot first and not have them walk anywhere and see what happens

#

That's very kind of you to offer

#

ah ha

#

so for some reason, the warp location is actually two tiles adrift from where I set it πŸ€”

#

I set the warp location to 70, 17

But the farmer is appearing on 72,17 when I check with debug mode

#

which would have put his intended spawn point outside the map

#

still...... why?

#

this makes no sense :/

#

I mean I guess I can just.... subtract two from my warp in points?

#

maybe

vernal crest
#

Curious. I wonder if it's related to the farmer speed being set lower than usual.

#

Seems unlikely though given the farmer doesn't move again until after the warp

grim latch
#

but lewis also warps in two squares further over than he should be

#

and he isn't moving at all at that point

calm nebula
#

There may be hardcoding

grim latch
#

There's just a very odd 2 square difference πŸ˜†

#

Anyway, that does in fact seem to be the issue as now I've adjusted the coordinates my farmer is spawning in where I wanted them

#

Now I just need to tidy up the movements and face direction commands

lucid iron
#

What is the goal of event Bolb

grim latch
vernal crest
#

Not be broken by custom farm lol

grim latch
#

I hate event scripting πŸ˜›

#

It is, however, now working

#

Between my typo in my content.json and the random 2 square differential on the map that took way longer than it needed to

worn spear
#

Ah love that for you it's always the little things isn't it

grim latch
#

I still don't understand why the tiles are 2 squares adrift from the script.

worn spear
#

I get to take my last final then thankfully my biggest issues will be ones related to passion projects

whole raptor
#

I'm guessing there's no way to check if farmer saw a specific dialogue from Strings? SDVpufferthinkblob

vernal crest
#

Not without editing the dialogue to add something to check, I don't think. Unless that dialogue happens to be a question.

whole raptor
#

Eh, I give up then, lonely raccoon in the corner it is then

#

Or not... he's bigger that a human in the files SDVpuffereyes

crude plank
#

Huge racoon in the corner*

whole raptor
#

Okay, yeah... he doesn't seem that big in game

crude plank
#

He's long

whole raptor
#

Chonky SDVkrobusgiggle

vernal crest
#

Oh the dancing sprites are in mrs_raccoon by the way

whole raptor
#

Hmm... I probably won't do the dancing sprites, since I have no way of checking if player already saw it, I'll just treat it as a raccoon chilling in the woods and encountering the wedding by accident (also I just noticed it's the wife, not the husband SDVpuffereyes )

drowsy pewter
#

is there a debug command to mark a trigger action unapplied SDVpuffersweats I know there's a trigger action action to do it

upper rune
#

So I'd like to give my recipes the config option of being vanilla or being able to incorporate Cornucopia ingredients. I'm trying to look at Culinary Delight as a guide but the recipe replacements aren't making sense to me. Is there a way to just if vanilla true use this phrase, if cornucopia true use this phrase?

whole raptor
#

Why did the Raven broke for no reason SDVpuffersquint

upper rune
#

I don't know why the new recipes have like xy coordinates

drowsy pewter
#

the second patch will be the one that applies in the end if it's valid

#

In a larger scale (such as for hundreds of recipes), this can also be done by using Include to have two separate files that have all your recipe data for either setting, and the conditional cornucopia file is patched in second

upper rune
#

ok, i'll try that. only like 12 or so recipes so should be fine to keep to one file location

drowsy pewter
#

for recipes with xy coordinates you might be looking at code for spacecore recipes, which allows for more features but is a lot more complicated

upper rune
#

ok, not sure what i'm looking at there

vernal crest
drowsy pewter
#

smart!

whole raptor
#

Is there anyone here who used ignoreMovementAnimation? I'm trying to use it in a way so it also doesn't show the directional end sprite... and I swear it somehow worked before, but after I added some more movement and animations for other actors the directional frame suddenly showed up SDVpuffersquint

tender bloom
#

I think I know what I did wrong β€”Β I just didn't even realize the crop drops could be vanilla items, so I assume they're JA items and try to "fix" them. Obviously this does not work! and then I return null SDVkrobussad I can fix this easily in a way that isn't elegant, but I want to think for a min about if there's a generally better way

#

Basically, I have a method that goes in and "fixes" old IDs

#

I can either check if the product is an integer and not "fix" it, or I can build into the "fixing" method a way to check if it's a vanilla item

#

Bad things that can happen if I check for integer: I probably should instead call the vanilla method for checking if something is an item

#

(there are integers that are NOT valid items)

whole raptor
tender bloom
#

hrhrhrm there could be name collisions I catch if I change the fix method

#

for example, suppose someone creates a CP mod to make StrawberryShortcake β€”Β I might accidentally make a JA mod produce that StrawberryShortcake because it would be a valid item in the game (appearing as vanilla)

#

I think the nicest fix is to check if integer, then check if the integer is a valid item

#

This doesn't catch the case where JA used to let you specify vanilla items by name instead of by integer

#

Maybe I already thought about this for recipes?

vernal crest
whole raptor
#

move <actor> <x> <y> <direction> [continue] the <direction> here, as in where the actor is facing at the end of the movement

#

I use showFrame immediately after it to skip to a different one immediately

whole raptor
vernal crest
#

So you're trying to get them to go from their walk frame straight into a totally different one instead of going into their standing frame?

tender bloom
#

ugh it's been so long since I wrote C# I'm rusty

whole raptor
#

Yeah, kinda, more like move without a walk frame and then into the specified frame

vernal crest
#

Maybe you could try using halt or waitForAllStationary after the temp actor has moved.

whole raptor
#

Huh, halt seems to did the trick, thanks!

#

I wonder why it happened tho SDVpufferthinkblob

upper rune
#

So when the config is toggled on for flexible recipes everything shows up, but when it's toggled off none of the recipes show up. Also, I'm pretty sure I'm using the correct ID for Cornucopia oregano and it's asking for a house plant in the recipe...

whole raptor
#

I tried waitForAllStationary out of curiosity too... and that doesn't work SDVpufferthink

brittle pasture
#

I'm assuming that's what the second Entries block is for, in which case you have to split that one off into another Change block

upper rune
#

No, I thought the conditional section replaces the rest which is default? I can make an off section though

brittle pasture
#

an entry cannot have two Entries block

vernal crest
brittle pasture
#

make a separate one

whole raptor
#

Feels good to be so close to finishing... but the worst part of making a mod approaches... making a mod page SDVpufferpain

vernal crest
#

It doesn't have to be bad if you don't put any effort into it /j

upper rune
whole raptor
vernal crest
tender bloom
#

Is there a difference between StardewValley.ItemRegistry.Exists(itemName) and StardewValley.ItemRegistry.GetDataOrErrorItem(itemName).IsErrorItem?

vernal crest
upper rune
#

I'm not sure how to nest the When and Entries sections SDVpufferdizzy

#

Does the When go within the entries then?

vernal crest
#

So not inside

upper rune
#

but then i would have to repeat entries, wouldn't i?

odd ginkgo
#

hey all! very quick question, also related to When conditions - if I want something to NOT appear during a specific time, how do I negate a when condition? Like say

"When": {
"DayEvent": "dance of the moonlight jellies" }

#

but I actually want to to be the opposite, I want to not happen on that DayEvent

drowsy pewter
#

i would suggest that someone send a corrected json file for them if possible?

vernal crest
whole raptor
#

... this event is haunted

#

HOW?

upper rune
#

Oh so I repeat the action section

vernal crest
spice inlet
vernal crest
#

Ctrl-f for "contains" should find it

brittle pasture
odd ginkgo
vernal crest
whole raptor
vernal crest
#

Thanks Nomori

#

I can never remember the pipe

brittle pasture
upper rune
#

Thank you that's definitely working correctly now. But I still don't know why it thinks oregano is a house plant

drowsy pewter
#

You're missing a quanitity for carrot

#

it's shifted everything by one place and it thinks your next ingredient is 1

upper rune
#

OOOH damn weird that doesnt mess up the carrot part lol

whole raptor
tawny ore
#

@woeful lintel would you mind if I DM'd you? I'm looking into a possible integration with Furniture Framework that I'd like to discuss with you.

tender bloom
odd ginkgo
#

thanks ya'll, that was the fastest bug fix I've ever been able to do

odd ginkgo
proud idol
#

Is there any workaround way to use SMAPI's ReadJsonFile function with a file path that isn't relative to the mod's directory?

lucid iron
#

Yes but it's crimes

#

What are you trying to do here

proud idol
#

My mod adds bags to the game that can store various items. Users can create their own bags in json format and my mod loads the .json files. But some users have reported issues where their custom bags aren't opening after they update my mod, and I think it's because they accidentally did a clean install of the new mod version (thus deleting their custom bag json files) instead of updating by merging the files. So I want to add a setting that let's them specify additional folders to load custom bags from

#

I need to load json files from other paths

lucid iron
#

Put your bag data in global app data then

uncut viper
#

i would write those jsons to the app data folder and not an arbitrary folder

#

exists for this purpose basically

lucid iron
#

This will not be overwritten because it lives next to the save files

#

Mod save data also an option

#

If u want it to be tied to a particular save

uncut viper
#

theres global data which is not per save and save data which IS per save

#

but the former allows the files

#

the latter is just data

#

so dont get them confused

proud idol
#

You can use ReadJsonFile with paths in Global app data? The documentation says the path must be relative to the Mod folder

lucid iron
#

It doesn't say that

uncut viper
#

presumably your json files are serialized and deserialized into some model

lucid iron
#

But also you aren't the person writing the jsons in this case

proud idol
#

string path: The file path relative to the mod folder

lucid iron
#

You just give it a model to write

uncut viper
#

you wouldnt be using ReadJsonFile, you'd be using ReadGlobalData

proud idol
#

hmm that one says it's parameter is 'key', is that the file path?

lucid iron
#

So smapi namespaces your path when u use global app data

#

They all live in same folder and then the key become different file names yes

calm nebula
#

You can trivially provide a new directory you just need to use newtonsoft directly

lucid iron
#

I recommend just trying it and see

#

The reason why i didn't bring up content pipeline is just cus it sounds like a user config thing not a other mods adding new bags (e.g. item bags)

proud idol
#

I was thinking of using newtonsoft directly but I saw in the smapi source code it had a bunch of little tweaks and additional logic. So I was going to instantiate StardewModdingAPI.Toolkit.Serialization.JsonHelper but it says it cant find that namespace idk why

lucid iron
#

I really don't think u have to do all that when these helpers exist kyuuchan_run

#

To answer your original question though, you can literally just have user enter a string path to folder in config, and then you deal with that by using Newtonsoft.Json directly

#

But I don't think you should

proud idol
lucid iron
#

Yes exactly , so if u just use ReadGlobalData WriteGlobalData

#

You can get jsons to live outside your mod's actual folder

#

And survive deletions

proud idol
#

I think Ill have to once I figure out what the key parameter is doing for ReadGlobalData. I have absolute file paths that I'm working with

lucid iron
#

(unless the user goes and delete the actual .smapi folder in the save folder tho)

calm nebula
#

JsonHelper seems public SDVkrobusgiggle

proud idol
#

I tried using it in my code but it says it couldn't be found. I have no clue why

#

Even typing 'StardewModdingAPI.Toolkit' namespace isn't showing up

uncut viper
#

it's public, but in a different dll

#

you'd need to reference it

proud idol
#

Oh I only have a reference to SMAPI.Toolkit.CoreInterfaces, not to SMAPI.Toolkit

proud idol
#

If I add this reference to my mod, will it still work for users who have the game installed in a different folder?

#

<Reference Include="SMAPI.Toolkit">
<HintPath>..............\Program Files (x86)\Steam\steamapps\common\Stardew Valley\smapi-internal\SMAPI.Toolkit.dll</HintPath>
</Reference>

#

<HintPath>..............\Program Files (x86)\Steam\steamapps\common\Stardew Valley\smapi-internal\SMAPI.Toolkit.dll</HintPath>

#

oops its removing the slashes in discord

#

<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\smapi-internal\SMAPI.Toolkit.dll</HintPath>

calm nebula
#

It'll work for players but you don't need to do that

#

One second

sour sleet
#

How do I make a spouse use their sleep animation at the end of the day? 2200 bed anya_sleep doesn't seem to be working

calm nebula
#

<Reference Include="Newtonsoft.Json" HintPath="$(GamePath)\smapi-internal\Newtonsoft.Json.dll" private="false" />

proud idol
#

Thanks, $(GamePath) is working

tiny zealot
sour sleet
tiny zealot
#

yes, anyalilybrook_sleep

faint ingot
#

can someone tell me, if using switchEvent does "same location" mean the location the first event started in, or the one it's currently in if I used changeLocation earlier? Sorry if I'm not making sense.

grim star
#

Would anyone be interested in helping me make the sprites for my custom NPC? I have tried to do this myself but I have a really good idea for a custom NPC just am not good with the art side of things and was wondering if anyone would be willing to want to help out? Let me know!

hollow fox
#

Hello! I was wondering how modders here found their teams/community. I have an interest in learning how to mod Stardew, but I do best working on a project with other people. I love to write, and I'm interested in learning how to draw in the Stardew Valley art style. I'm no good at programming, though.

#

Just curious as to how people meet other people interested in starting a group project!

drowsy pewter
#

it applies to both of you, but typically people demonstrate that they have some skill or dedication to something that they bring to the table, and you'll naturally find people who are interested in your skill

tiny zealot
drowsy pewter
#

for example... kafkaesque, do you have any desire as someone interested in spritework to work with kkthnx from right before you? and if not, why?

#

likewise kkthnx do you have any desire to work with kafkaesque

#

bluntly everyone already comes to modding with their own ideas lol so we're usually not short on those

#

sometimes it can just be as simple as going to #making-mods-art and being like "I tried drawing my own version of the carrot sprite, what do people think of this image? Oh and if anyone wants spritework for their mods feel free to ask me! I want more experience"

hollow fox
#

That's very fair! I'd be totally interested in working with anyone, I just struggle with showing off my skills. I'd need to build a little bit of a portfolio to get to a point where I even have anything to show, lol. I'm mostly just curious as to how people even start.

hollow fox
drowsy pewter
#

Honestly you dont need much to show off. Just even one thing to show that you know how to make pixel art that isnt blurry lol! (and even if it is blurry there's always someone that wants it anyways.)

#

I think my first sprite was just a drawing of garfield

hollow fox
#

Lolol, that's great. I really appreciate your time and advice :,D thank you

drowsy pewter
#

it's more about having some demonstrable attempt at something rather than a fleeting interest that'll be gone next week

#

Sure thing! Just chat in here/in the other channels once in a while and people will start to recognize you

hollow fox
lucid iron
#

Just make theoretically useful things and then try to peddle it to people Dokkan

drowsy pewter
#

It helps get over that initial mental block by just making a single simplest mod in the world

#

like changing the sprite of one thing

#

Once you start you wont stop

visual dirge
#

oh my god that reminds me

lucid iron
#

Most of this channel is just people coming in and asking "why me mod no work" so it's not like anyone looks at your profolio

visual dirge
#

ages and ages ago i had an idea for a mod that i totally wanna make and i just forgot about it

#

something that collects friendship points over the cap and displays them

visual dirge
#

i need to do this

#

ugh time to learn how to mess w the ui

lucid iron
#

!harmony

ocean sailBOT
#

Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.

If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.

For more information, refer to the following:

visual dirge
lucid iron
#

I strongly recommend patching game menu instead of the event based way here

#

Compat reasons Dokkan

visual dirge
#

ofc

lucid iron
#

But otoh if u want to add a new page

visual dirge
#

i was probably going to find a draw method somewhere and postfix it

lucid iron
#

This makes it easy to add new tab if u want

visual dirge
#

i just wanna add a little bit of text to each entry in the social menu

#

need to figure out save data too

#

waow this will be a fun project

lucid iron
#

You can just store it on NPC.modData

#

It's a dict string string that goes into save and gets multiplayer sync

visual dirge
#

ok good good

lime seal
# tender bloom <@176508491672846336> when you get a chance, can you test this version? I think ...

That did the trick, thank you!!! SDVpufferheart

This is scope creep (SMCbadge_scopecreep), and probably more on Almanac's end rather than JA's, but I noticed there's an error that pops up from Almanac related to JA. Would you have availability and interest to look at it, see if there's something on JA's end that could address it? I'm using the Almanac version available on GitHub here (https://github.com/Vindeflei/KhloeLeclairStardewMods/releases/tag/Almanac_1_18_2) which works in 1.6 besides the error.
Log with the error: https://smapi.io/log/0cfc790fa8ef4504a706ddbd7bdaf66d

ocean sailBOT
#

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

visual dirge
lucid iron
#

Yeah use unique multiplayer id

visual dirge
#

okiii

lucid iron
#

Could also put it on the farmer's mod data

#

Key by npc id

visual dirge
#

would that be better?

#

for per-player stuff

lucid iron
#

I dunno it seems about the same to me

#

You pick cus u be writing this mod after all

visual dirge
#

ok ill just do whichever looks easier w how the patches work out

tender bloom
#

ah I see

urban patrol
#

i have a friend who wants to play my mod but only owns a chromebook. my mod dependencies are SMAPI, CP, spacecore, and BETAS. they’re unable to install the steam version of the game on their chromebook, but they say the google play store has a version they could install. would they be able to play my mod?

tender bloom
#

the updaters to Alamanac haven't updated the JA API

tender bloom
brittle pasture
tender bloom
#

Does BETAS work on mobile?

brittle pasture
#

which, well,

tender bloom
#

some of the rest somewhat works

#

mobile SMAPI is jank last I heard

urban patrol
#

gotcha, that’s what i assumed because i know chromebooks are wack

#

thanks all

tender bloom
#

I've seen a couple people get through that but it's not super easy for people who haven't poked around linux before, from what I can tell

uncut viper
#

ive had someone ask me if BETAS works on Android bc they tried and got a bunch of errors, but there was no log so I don't know if it was actually due to BETAS or not. I've not looked into it as I don't have Android Stardew

#

someone else then asked afterwards if there would ever be a version that was compatible with Android, but similarly i dont know if that means they actually tried it or not or if theyre just going off what the first person in the comment chain said regarding the errors that may or may not be BETAS related

lucid iron
uncut viper
#

if it was easy to fix them id probably try, though i dont feel like purchasing mobile stardew just for mod development, so itd be up to someone to PR it i suppose if they cared that much

lucid iron
#

Well i was gonna follow up with, but button caught them separately so if your mod didn't use em it's probably no issue

uncut viper
#

no ones ever actually told me that BETAS explodes on phone in any way

#

so i have no idea what explodes

blissful panther
#

I remember when I was told that MEEP's closeup interactions don't work correctly on mobile, so I asked for a screen recording of what happens so I can see if it would be a five second fix (which is possible).

They didn't give me one, so I guess it works just fine after all!

urban patrol
#

they decided to go ahead and buy android versions anyway since they do enjoy the game vanilla anyway. there’s a specific version of spacecore i should direct them to try, right?

lucid iron
#

Yea

#

!androidsmapi

ocean sailBOT
#
Android SMAPI

There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.

Do not harass mod authors to make Android specific compatibility patches.

lucid iron
#

Just note that if mod explodes there's not much help

#

Besides figure it out yourself somehow

urban patrol
#

yeah i already told them like, you can try but it’s out of my hands lol

urban patrol
# ocean sail

hey is the android discord supposed to link to sdv thailand?

brittle pasture
#

Yes, that's where the main dev frequents (and link to as well)

tender bloom
#

yes lol

drowsy shadow
#

Does anyone know if there is a when condition that checks to see who your dance partner is at the dance? Between googling it and checking the discord search, I can't seem to find anything legit for it.

urban patrol
#

okay just checking haha

tender bloom
#

Unlikely to be a condition easily findable in CP unless a mod exposes it, is my guess

#

In C# is probably easy?

drowsy shadow
#

Thanks! I'll give it a shot.

tender bloom
#

My guess is that it has to know something about who to place there in the event

#

it might be hardcoded in Event.cs

visual dirge
brittle pasture
#

I've seen it, have been waiting for it to be finished (which it is now)

visual dirge
#

okiiii

#

lmk what u think abt the feature itself

#

i definitely wish additional fuels worked that way

brittle pasture
#

I admit the original behavior is about 75% intended
I'll think about whether it makes sense to merge, but leaning towards yes
(and thanks! SDVpufferheart )

visual dirge
#

oki ty 😁

lucid iron
#

Hm does the current implementation follow the first output thing

uncut viper
#

(getting the dance partner in C# is easy yeah, but not exposed in a CP accessible way)

lucid iron
#

This is sorta first output on a machine level

visual dirge
brittle pasture
#

the other thing I'm worried is breakages, because even without EMC it is possible to make output entries where none of the output item matches a condition

visual dirge
#

wdym?

brittle pasture
#

you can modify the hops -> pale ale output item to only make pale ale if you have a mail flag, and if you don't you just fail instead of making hops juice

visual dirge
#

hmm yea fair

#

imo the most similar vanilla analogue to additional fuels is recipes that take multiple of an item

#

but thats also a good comparison so idk lol

visual dirge
visual dirge
#

not sure how acceptable that is

charred stirrup
#

I'm really sorry to ask this, I feel like I can't get a clear answer on this anywhere...is it possible to add new items soley using c# and smapi ?

visual dirge
tender bloom
#

You definitely can but there isn't going to be a guide because it's much more common to use Content Patcher

#

You'd be using the same content pipeline that CP does

lucid iron
#

You basically just do all the content edits on your own

tender bloom
#

(About adding new items via C# and SMAPI)

lucid iron
charred stirrup
lucid iron
#

I wouldn't do this beyond just 1 or 2 items

#

Or if you are trying to do a mass edit like make everything 2x as expensive

charred stirrup
#

Overall idea was to add a couple net new items, and eventually a net new npc and quest line involving said items

#

I'll add items first and then go figure out how to do the rest xd

tender bloom
#

Most people find content patcher easier if they don't know how to program beforehand

#

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

charred stirrup
lucid iron
#

It's not really about easier or harder imo

#

Just very tedious LilyDerp

#

Content patcher also have various fun features beyond just editing content, tokens and conditions mainly

#

You can still add a C# component for whatever non standard feature you need

#

But other people made mods specifically to provide non standard features via content (aka framework mods)

rigid oriole
#

Anyone know if I can get away with the cleaner wikitable syntax in a collapse block (first image about mail) or if I have to use the html tags (second image from events page)?

raw helm
#

Not sure if i'm asking in the right place but could someone tell me where i can learn some first steps for modding? Like creating a mod for a dialog expansion or the likes.

brittle pasture
#

!startmodding what you want to make are Content Patcher mods

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.

harsh crystal
#

howdy ! hopefully it's chill to ask about fashion sense here, as i couldn't find a FS server 🫑
i'm having trouble scaling down a bodymodel using the scale property - the body doesn't change size regardless of what value it is
otherwise everything else with it works fine, i'm just using a higher res image so not downscaling it makes it giant : P

harsh crystal
zealous rivet
#

Hi guys, does anyone know how to make gift tastes change with different heart levels? I'm still very new to modding

rigid musk
golden delta
#

hi. first time attempting to create a mod. I'm running into a bit of an issue and I think it may have to do with the project structure.

the documentation shows how to create a Library project with Visual Studio, however I'm using VSCode. My directory looks like this:

Build failed with 1 error(s) and 1 warning(s) in 4.4s
PS E:\DrewMods\MyHoverMod\MyHoverMod> cd ..
PS E:\DrewMods\MyHoverMod> tree
Folder PATH listing for volume NVME
Volume serial number is 4C2A-966D
E:.
β”œβ”€β”€β”€MyHoverMod
β”‚   β”œβ”€β”€β”€bin
β”‚   β”‚   β”œβ”€β”€β”€Debug
β”‚   β”‚   β”‚   β”œβ”€β”€β”€net6.0
β”‚   β”‚   β”‚   └───net9.0
β”‚   β”‚   β”œβ”€β”€β”€Release
β”‚   β”‚   β”‚   └───net6.0
β”‚   β”‚   └───{Release
β”‚   β”‚       └───net6.0}
β”‚   └───obj
β”‚       └───Release
β”‚           └───net6.0
β”œβ”€β”€β”€obj
β”‚   └───Debug
β”‚       β”œβ”€β”€β”€net6.0
β”‚       β”‚   β”œβ”€β”€β”€ref
β”‚       β”‚   └───refint
β”‚       └───net9.0
β”‚           β”œβ”€β”€β”€ref
β”‚           └───refint
└───Properties

It's a MyHoverMod folder with a nested MyHoverMod in it (which has all the project files). This seems to be what's listed in the documentation. When I try to build the mod

PS E:\DrewMods\MyHoverMod> dotnet build -c Release
MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.

it seems to want me to be in the nested MyHoverMod dir. Is this correct?

#

also I'm seeing an issue when build with a json library:

There was a conflict between "Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" and "Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed".

is this because i have .net 9.0 installed? I thought they were supposed to be backwards compatable

#
C:\Program Files\dotnet\sdk\9.0.300\Microsoft.Common.CurrentVersion.targets(2434,5): warning MSB3277:
lucid iron
#

Where's your csproj?

#

And it's fine to have net 9 while building against net 6

#

However it looks like you referenced a newtonsoft.json different than smapi's packaged newtonsoft.json

golden delta
#

yeah im not sure how. I dont have anything custom in there about a json lib

proud wyvern
#

how does your csproj look like?

golden delta
#

it's really just those two files:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Library</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.2.1" />
  </ItemGroup>

</Project>
#
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;

namespace MyHoverMod
{
    public class ModEntry : Mod
    {
        public override void Entry(IModHelper helper)
        {
            helper.Events.Display.RenderedHud += OnRenderedHud;
        }

        private void OnRenderedHud(object sender, RenderedHudEventArgs e)
        {
            if (!Context.IsWorldReady)
                return;

            string hoverText = Game1.hoverText;
            if (!string.IsNullOrWhiteSpace(hoverText))
            {
                Monitor.Log($"Hovering over: {hoverText}", LogLevel.Info);
            }
        }
    }
}

i'm aware hoverText is invalid, but that's another issue

#

i'm not referencing json at all

lucid iron
#

Output type

#

I don't think u need it though idk if it would break things

proud wyvern
#

OutputType defaults to Library, according to MS

lucid iron
#

Do u have a sln

golden delta
#

yeah there is an sln, but im not sure what those are

#

they were generated

lucid iron
#

Yeah that's fine im just trying to figure out why dotnet build didn't work

golden delta
#
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyHoverMod", "MyHoverMod.csproj", "{F531F5E6-68EA-ABFD-6EF8-1C282A95E799}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {F531F5E6-68EA-ABFD-6EF8-1C282A95E799}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {F531F5E6-68EA-ABFD-6EF8-1C282A95E799}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {F531F5E6-68EA-ABFD-6EF8-1C282A95E799}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {F531F5E6-68EA-ABFD-6EF8-1C282A95E799}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {9956211B-8BEB-4546-A462-56A62C92657A}
    EndGlobalSection
EndGlobal
calm nebula
#

I thought sln was a VS thing

lucid iron
#

If u don't have it in vscode it doesn't give u intellisense

golden delta
#

i didn't write that. it was generated in some dotnet step i guess

#

so i just need to delete the OutputType entry?

lucid iron
#

Does dotnet build MyHoverMod work

golden delta
#

i only found 1 reference to this xml file in the documentation:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <AssemblyName>EXAMPLE_MOD_NAME</AssemblyName>
    <RootNamespace>EXAMPLE_MOD_NAME</RootNamespace>
    <Version>1.0.0</Version>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.0.0" />
  </ItemGroup>
</Project>
lucid iron
uncut viper
golden delta
# lucid iron Does `dotnet build MyHoverMod` work
PS E:\DrewMods\MyHoverMod> dotnet build MyHoverMod
    E:\DrewMods\MyHoverMod\MyHoverMod\MyHoverMod.csproj : error NU1301:
      Failed to retrieve information about 'Newtonsoft.Json' from remote source 'https://nuget.smapi.io/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0'.
        The SSL connection could not be established, see inner exception.
        The remote certificate is invalid according to the validation procedure: RemoteCertificateNameMismatch
    E:\DrewMods\MyHoverMod\MyHoverMod\MyHoverMod.csproj : error NU1301:
      Failed to retrieve information about 'Pathoschild.Stardew.ModBuildConfig' from remote source 'https://nuget.smapi.io/FindPackagesById()?id='Pathoschild.Stardew.ModBuildConfig'&semVerLevel=2.0.0'.
        The SSL connection could not be established, see inner exception.
        The remote certificate is invalid according to the validation procedure: RemoteCertificateNameMismatch
#

idk what is referencing this json lib. I have nothing in there other than those 2 files I wrote

lucid iron
#

Is ur nuget not setup correct

golden delta
#

i dont believe it is set up correctly. I'm using an extension

#

i dont really understand why the documentation calls for this nested structure

calm nebula
#

Other than nonexistent

proud wyvern
#

this... actually looks like a Pathos problem

#

it seems existent

lucid iron
#

Mysterious

proud wyvern
calm nebula
#

No you should be nuget the usual nuget source

proud wyvern
lucid iron
#

Can u clone this repo real quick and try to build

calm nebula
#

Huh really

golden delta
calm nebula
golden delta
#

it's being generated somewhere

proud wyvern
lucid iron
#

just dotnet build from the base folder is fine

#

If this is not working then yeah smapi nuget server shenanigans

proud wyvern
#

idk what's up with that

golden delta
#

im not really familiar with windows development, trying to fix my git stuff

#

i cant clone immediately

proud wyvern
#

and why there even is a separate nuget server

sour sleet
#

Is it normal to get yellow smapi text saying the following when it turns Summer 1? I'm applying a seasonal recolour to my custom world map: [SMAPI] Skipped reload for 'Mods/8BitAlien.Lilybrook/LilybrookMap/spring_LilybrookMap' because the underlying asset no longer exists.

golden delta
#

why is it even looking for this json lib?

proud wyvern
#
https://nuget.smapi.io/

Unable to communicate securely with peer: requested domain name does not match the server’s certificate.
golden delta
#

i'm not declaring it or using it in any files

proud wyvern
#

@ivory plume what's going on

lucid iron
#

To well, load and write json

golden delta
#

right, but it's saying there is a version conflict with a different version of the library that I seem to be relying on

#

i only have 1 dependency in my xml

lucid iron
#

You have some shenanigans going on with the nuget server being smapi's (?)

ivory plume
#

What is nuget.smapi.io?

proud wyvern
#

yeah, what is it

golden delta
#

idk. im have 5 minutes of experience

#

i have 2 files I wrote, and some generated somehow

#

none of them declare this uri

proud wyvern
#

that SSL error seems to be a thing for any non-existent subdomain at smapi.io

#

where did that URI come from though...

golden delta
#

it seems to assume this is the mirror for a library repo

#

like an artifactory

lucid iron
#

There is something to do to change the nuget provider back to official but i am struggling to find the right docs for that

ivory plume
#

Can you post a zip of your solution folder?

golden delta
#

sure, is that allowed here on discord?

ivory plume
#

Yep, assuming it doesn't break the other server rules (e.g. NSFW or AI content).

golden delta
#

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

#

i don't know if the API supports this

#

i tried to make a unity mod for another game but ran into IL2CPP issues

ivory plume
#

In Visual Studio, can you post a screenshot of Tools > NuGet Package Manager > Package Manager Settings > Package Sources?

golden delta
#

ok, i'm using VSCode and a nuget extension

#

maybe i should just switch

#

i just picked it bc that's what i work in on my mac

tender bloom
#

I use Rider on a Mac

golden delta
#

it had 1.4M downloads so i figured it was fine

ivory plume
#

A screenshot of the equivalent in VS Code is fine too, though Visual Studio would definitely be easier since it's a full IDE rather than a text editor with plugins.

tender bloom
#

VSCode is fine, but it’s not as nice an IDE, mostly because it’s a glorified text editor.

#

Pathos is kinder about it than I am SDVpuffersquee

calm nebula
#

I was about to ask about the contents of these two files

#
%AppData%\NuGet\NuGet.config
%ProgramData%\NuGet\NuGetDefaults.config
#

Here's the thing

#

The correct location nugets are from, other than school cafeteria, is probably nuget.org

old edge
#

I'm making a mossy dungeon!

golden delta
#

still looking