#making-mods-general

1 messages Β· Page 534 of 1

cedar turtle
#

where did that one come from

ornate locust
#

Text editors that detect {} pairings are generally better at it than eyes, super easy to overlook em

cedar turtle
#

mhmm. Which is why I like that one

#

ok, no weird yelling anymore. Thanks!

#

Error preloading content pack 'Purchasable Dragon Teeth'. Technical details:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at /home/maria/.config/Stardrop/Data/Selected Mods/Purchasable Dragon Teeth/content.json. This doesn't seem to be valid JSON.
Technical details: Invalid property identifier character: {. Path 'Changes[0].Entries['Lassa.BuyableTeeth_DragonTooth'].TradeItemAmount', line 24, position 40.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in /home/runner/work/SMAPI/SMAPI/src/SMAPI.Toolkit/Serialization/JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentPack.ReadJsonFile[TModel](String path) in /home/runner/work/SMAPI/SMAPI/src/SMAPI/Framework/ContentPack.cs:line 76
at ContentPatcher.Framework.RawContentPack.TryReloadContent(String& error) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\RawContentPack.cs:line 80
at ContentPatcher.ModEntry.GetContentPacks()+MoveNext() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\ModEntry.cs:line 460

hmm

ornate locust
#

hang on, let me get this in my own editor and I'll see what's messing up

cedar turtle
#

I love it when troubleshooting a mod because you added a tiny feature takes more time than actually making said mod NickitGiggle

mellow laurel
#

oh did you delete the comma when you deleted the bracket after {{ToothPrice}}

brittle pasture
#

missing quotes around {{ToothPrice}}

mellow laurel
#

oh no it's still there in this

cedar turtle
ornate locust
#

Ah, good eye

blissful panther
#

Definitely that!

cedar turtle
#

That makes look that bracket weird xD

red egret
#

Is there a use for wall furniture outside?

ornate locust
#

Okay I think it was showing you as needing one less } earlier because it was trying to pair one of the tooth price { oddly until you put it in quotes. Add another } before the ]

blissful panther
#

<Insert plug> As far as I know, only for putting paintings on the cliff walls and such with Smart Building. SDVkrobusgiggle

#

Also good eye!

ornate locust
#

(what you didn't see was me really REALLY carefully counting all the { and } LOL)

red egret
blissful panther
#

Definitely with Smart Building, yeah. I think there's another lax placement mod that might accomplish the same goal?

cedar turtle
#

Error gone. :3

red egret
#

Alrighty, thats all i needed πŸ™‚

#

thanks

#

I coded the Rose Decorations as inside and outside, i can imagine garlands on cliffs could be cool πŸ˜„

jaunty shuttle
#

What mod would I need to do console commands for children and spouse stuff?

blissful panther
cedar turtle
ornate locust
#

Yeah, you need the extra } before the ]

cedar turtle
#

You're right. <3

#

does patch reload work on content files?

#

-# actually, is there a difference between buyable and purchasable

hallow prism
#

patch reload should work in theory

#

what do you mean by your question?

cedar turtle
#

I think it just didn't work because it didn't fully loaded the mod

cedar turtle
merry river
#

I have been looking into tokenizable strings, more specifically localized text, but I need some help with understanding how to actually use it
It'd probably look something like [LocalizedText StringKey]I suppose but what is the practical use of this? And what exactly does {0}do as a placeholder token? Could anyone here show me an example, maybe? SDVpufferlurk

ornate locust
#

I've never used one with values, but here's an example of a simple one from mine:

#

in practice, this one waits until you have been told his (late) husband's name to actually start using it.

#

also use it for gender a lot

royal stump
#

it's vanilla stardew's equivalent of SMAPI/CP i18n stuff, so it's used in a lot of fields like display names (as of 1.6+, anyway)

  "0": {
    "Name": "House Plant",
    "DisplayName": "[LocalizedText Strings\\BigCraftables:HousePlant_Name]",
    "Description": "[LocalizedText Strings\\BigCraftables:HousePlant_Description]",```
and if the string it's pointing at says something like
`"Some_Key": "The price is {0}."`
you could load it with something like
`[LocalizedText Some\\Asset:Some_Key 500]`
to end up with the text
`The price is 500.`
#

(though I've never actually used it myself, so I'm not sure if you can nest placeholders to get i18n'd text there and such SDVpufferthink)

ornate locust
#

also you can do this to make it capitalized~

#

IIRC Chu knows more about the {0} stuff. I never had occasion to use it, so I didn't figure it out

#

like 90% of my usage is Gender

#

the GENDER BLOCK

#

wait LASERS IN ON A TYPO

merry river
ornate locust
#

Yeah, it's LIKE using dynamic tokens, but you use strings instead and don't need to pass them through to the i18n

#

abigail's pronoun is not "The", rip

merry river
ornate locust
#

You can also use it for stuff like... I have a mention that someone with occupational pain should go to Harvey for it. But if you have RSV, it's Harvey or Philip

pale river
#

gabe can i dm u?

merry river
ornate locust
#

Or I have a generic mention of a mail carrier unless you have Ayeisha, then it's Ayeisha

royal stump
#

(ah, apparently the game does use LocalizedText's {0} stuff in the world map, and combines it with the EscapedText token so it counts as one argument)

"ScrollText": "[LocalizedText Strings\\StringsFromCSFiles:MapPage.cs.11064 [EscapedText [FarmName]]]"
//...
"MapPage.cs.11064": "{0} Farm"
//ultimately giving you something like "Standard Farm" in the current language
ornate locust
#

The example I followed was a patch to Strings/ModID. I am not sure it's NECESSARY for it to be that and can't be just to Strings, but it's how the example I followed did it. (And I've loaded a blank for it as well) I generally just prefer to do it following an example that I am certain works, you know?

royal stump
#

in theory you can use them to target any asset, but it does need to exist (the blank load) and it should be namespaced behind mod ID, e.g. Mods/{{ModId}}/MyLocalizedText or any such thing

#

e.g. just loading/editing Strings would work but be confusing to read, and possibly bump into other mods doing it

ornate locust
#

I figured there was some reason for it

merry river
#

Thanks for sharing your example, that helped me for what I am trying to do, but I still do want to understand the other stuff

ornate locust
merry river
#

No no, you understood correctly

ornate locust
#

Oh okay cool

#

just making sure. Tokenized strings confused me a ton at first

merry river
#

but I feel as if have just opened a can of worms with those tokenizable strings

merry river
ornate locust
#

There is a nonzero amount of worms, but once you've got a hang of it, it makes stuff like gender swap bits much cleaner.

urban patrol
#

bumping this if anyone around has any insight

worldly wadi
#

Hey uuuuuuuh can somebody help me? So, I've been modding a few artisan goods and just found out someone had the same idea for EVERYTHING I'VE DONE SDVpufferwaaah I didn't know until now, I'm scared the person will think I'm copying them, I'm not, I swear, what should I do???? I was almost finishing it

urban patrol
#

!twocakes

ocean sailBOT
#

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

urban patrol
#

tldr: don't worry about it, no ideas are 100% original and someone out there will enjoy your mod

worldly wadi
#

Aaaaaaaaaaaaaaaaaaaaaaa :(((( Oki oki I'll try to drink some water to calm down my mind

merry river
#

I love that we have a command for that

royal stump
#

I'm not sure if it's the issue you're having, but you only seem to be updating IsHoldingBomb when a button is pressed

urban patrol
royal stump
#

I guess it wouldn't necessarily change, yeah; I don't see any other behavior-affecting issues, though
a few methods have benign logic quirks, but nothing that would make it draw incorrect red/green that I could spot SDVpufferthinkblob
(e.g. IsHoldingBomb is updated by the method twice every time, once inside the method & once using its result)

urban patrol
#

yeah i'm sure my methods are very messy πŸ˜…

#

do i maybe need to suppress normal bomb-holding draws?

royal stump
#

if you're seeing any change from your renderedWorld draw event, that's probably not the issue, though I'm not sure what it'd look like exactly

#

and w/e you do in that event should show up over most/all vanilla draws anyway

dawn moth
#

Anyone know about modifying location data of the farm cave if you've replaced it? Not sure whether I should be either...
A. Targeting the Location Data of the FarmCave normally using something like
"Entries": { "FarmCave": {
B. There's something special I need to do in addition to that after loading the FarmCave map file from the custom map

hard fern
#

it should be the same location

#

since you're just replacing the map πŸ€”

#

not actually changing the location in the data

dawn moth
#

No I am actually changing location data afterwards, adding fishing areas to it

hard fern
#

i meant changing the location name

royal stump
#

you may want to use "Fields" or "TargetField", since "Entries" will reset any fields you don't touch to defaults

#

but if you're loading a new map over the original "Maps/FarmCave" or w/e, Data/Locations shouldn't require any special changes for that

dawn moth
urban patrol
round dock
#

(have you seen how many butters we have SBVLmaoDog)

hard fern
#

πŸ˜… i'll admit i gave up on making a mod i made all the sprites for

ornate locust
#

If anyone bugs you about it, shoo them off

hard fern
#

because another one came out that did almost the same thing

#

nah, i don't want to step on anyone's toes

#

and it got too big for me to manage anyways

ornate locust
#

after a period of Aggressive Shooing, I haven't got any "hey what about Law and Order" compat in ages.

finite sequoia
#

/animate APTIsaacI false true 500 16 16 17 17 18 18 19 19/extendSourceRect APTIsaacI 0 32/textAboveHead APTMarcus \"Do it Isaac!\" Am I using extendSourceRect correctly?

#

I'd like to make Isaac fish at the Ice Festival, and while he does the animation and Marcus says the text, he's still only 32 pixels high so the rod isn't included

#

FWIW, this is the code for the vanilla villagers

ornate locust
#

Oh, it's hardcoded for vanilla villagers

finite sequoia
#

/extendSourceRect Willy 0 32

ornate locust
#

You need to do bigger animations through Spacecore

finite sequoia
#

Ah, thank you!

#

Perhaps I'll make the optional spacecore dependency mandatory, then

ornate locust
#

guess the exact reason I made this, LOL

#

it was fishing

finite sequoia
#

Yeah, in his schedule fishing animation I've managed to get around it through using Willy_Fish, but this perhaps is another hurdle....

ornate locust
#

Bigger schedule animations are easy with SpaceCore too, I have Bill fish with it

#

You can also do SFX for it, like Clint's hammering

finite sequoia
#

Do you know which spacecore event command it is? I'm looking through the documentation and can't seem to find one to temporaily extend the source rectangle of a sprite in an event

ornate locust
#

Wait, hmm. Oh, fishing uses an EVENT

finite sequoia
#

Yeah!

ornate locust
#

Hang on lemme have a look at mine

finite sequoia
#

I've figured out schedules okay haha

ornate locust
#

Sorry, I misunderstood

finite sequoia
#

It's no problem!

#

I might use a temporaryanimated sprice and just chop up a new sprite rq that's just the bottom of the fishing rod

ornate locust
#

Yeah, I did it with a temporary actor

#

You can just set the size of a temporary actor

#

addTemporaryActor Willy 16 64 44 25 2/
So I had Willy fishing in the same scene like this

finite sequoia
#

Then animated Willy, correct?

ornate locust
#

Yeah

finite sequoia
#

Perfect!

#

Yeah, that’d be easier than adding the animated sprite. Thank you!

ornate locust
#

animate Willy false true 500 8 9 10 11/ like this

finite sequoia
#

Perfect, thannk you!

#

I'll report back in a minute once I get it in game

finite sequoia
#

Ayyy! Thank you Voyager

stable crater
#

Does anyone know if I could trigger an NPC to go to the GI resort on demand? I wanna see if some portrait changes are working correctly on the island bathing suit mode, and that kinda needs them to go to the island and enter the changing room and come out. I can't just clone the NPC there, it doesn't activate it as far as I can tell? I'm trying to avoid skipping days till I luck out on finding a day when they actually go there.

Edit: I gotta go to be as it's getting late, but I'll check back tomorrow if anyone might have something. Maybe it's not even a thing and I just have to wait the game to trigger it.

next plaza
#

Does this fix the issue you mentioned (see message I replied to)? Also @urban patrol this doesn't break anything for you does it?

#

Are you still having this issue? Can you send me the relevant maps and patches?

lucid iron
next plaza
#

Remind me in 19 hours to check on this

patent lanceBOT
#

You're a meanie...but okay, kittycatcasey (#7061734) (19h | <t:1770575648>)

lucid iron
#

it was occurring mainly when i was actually reload whole map but we stopped doing that

urban patrol
next plaza
#

@tame burrow Sorry to bug you again, but have you been able to sanity check that test build to make sure it doesn't break S&S? (original message for ease of finding things: #making-mods-general message )

next plaza
urban patrol
#

@next plaza forgot to ping

next plaza
urban patrol
next plaza
#

oh right

#

uh

#

delete the SMAPI version requirement in the manifest of Spacecore

urban patrol
#

πŸ‘

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.22631.0), with 21 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

urban patrol
#

(i actually have two logs in there now? that one is latest.player-2, but i can get the other one if that's the wrong one)

stable dagger
#

Hi! I'm working on a mod and want to show actual item icons + stack counts in HUDMessage (like vanilla pickup popups).

In 1.6, HUDMessage(string, Item, bool) seems removed, and using:

new HUDMessage(text, 1)

only shows the achievement star icon.

Is there a new API for showing item sprites (e.g. ShowItem field or something similar)?

Thank you very much for any help!

urban patrol
#

oh i actually know this one, hang on!!

#

try

Game1.addHUDMessage(new("your string here") { messageSubject = ItemRegistry.Create("(O)460") });```
#

but replace (O)460 with your item obviously

stable dagger
urban patrol
#

woo!

dawn ore
#

Hello, does anyone know how I can get a BigCraftable (aka a machine) to spawn using Farm Type Manager? When I try I just get stumps!

brave fable
#

now what SDVdemetriums

brave fable
#

stumps are on the objects sheet, and item ids likely default to objects (e.g. (O)39), so the same id may give you the incorrect type of object with the same index/id

royal stump
#

FTM doesn't actually recognize qualifiers, just unqualified IDs or internal names (plus the "category" field for something similar)
BCs can be spawned with its forage section, e.g.

"SpringItemIndex": [
  {"category": "big craftable", "name": "39"}
]```
<https://github.com/Esca-MMC/FarmTypeManager?tab=readme-ov-file#item-settings>
#

if you're getting actual stumps, though, you might be using the "large object" settings

old edge
#

I somehow managed to add the config menu api to my code

#

Are there any nifty things you can do with the menus?

dawn ore
royal stump
royal stump
#

oh, and "StrictTileChecking": "None" could make it fail to spawn if another object (e.g. random forage) gets in the way, so "Low" might be safer

#

only one "O" or "BC" can exist on a tile

next plaza
static hamlet
#

Does anyone here have any experience modding a game purely through dnspy

#

also, does 'making mods general' mean we're allowed to discuss non stardew games in this channel?

next plaza
#

Just stardew modding

static hamlet
#

ah, kk

brave fable
#

you can get away with modding other games in #programmers-off-topic πŸ™‚β€β†•οΈ though of course if you're looking for support you probably want a dedicated server for that

static hamlet
#

unfortunately the game I'm looking for has no real modding support, even though it does have a discord modding channel

#

the textures and sprites are all packed into asset bundles, and I'm struggling to navigate dnspy, so it's kind of fighting an upstream battle lol

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 16 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

next plaza
royal stump
urban patrol
next plaza
urban patrol
urban patrol
lime seal
#

I'm running into an unexpected issue with a Dynamic Token in CP, and I think I might be misunderstanding how the When check should be formatted.
My intent is that the YesAbby value only applies when the player has seen all 3 of the events listed. So if the player has only seen 1 or 2 of the events and not all 3, they will see the NoAbby value.
However in my most recent play session, I've only seen 1 of the 3 events, but the YesAbby value is what I saw. Can anyone point me in the direction of what I'm misssing?

/*CT dialog for Caroline - saw at least 1 Abby lesson*/ {
            "Name": "AbbyVideoGamesCarolineCT",
            "Value": "{{i18n:Caroline_YesAbby}}",
            "When": {
                "HasSeenEvent |contains=31032033, 31032027, 31032037": "true"
            }
        },
        /*CT dialog for Caroline - did not see an Abby lesson*/ {
            "Name": "AbbyVideoGamesCarolineCT",
            "Value": "{{i18n:Caroline_NoAbby}}",
            "When": {
                "HasSeenEvent |contains=31032033, 31032027, 31032037": "false"
            }
        },
uncut viper
#

i.e.:

"When": {
  "HasSeenEvent |contains=31032033": true,
  "HasSeenEvent |contains=31032027": true,
  "HasSeenEvent |contains=31032037": true
}
lime seal
#

thank you! I had that approach in other DTs but messed it up for this one.

uncut viper
#

(As an aside, are these custom events that you created or vanilla ones?)

#

Also, if you reverse the order of your dynamic tokens, you shouldn't need conditions at all for the NoAbby one, since the last valid DT value is used

lime seal
#

Custom, and if you're about to tell me I need to change the formatting because of the new convention with adding your mod name to it, no need! This is now a personal mod.

uncut viper
#

The new convention is almost 2 years old now 😌 but I understand

#

Whatever gets the job done, for personal use

lucid mulch
#
"HasSeenEvent |contains=31032033, 31032027, 31032037": true

is the same as

"HasSeenEvent": "31032033, 31032027, 31032037"

and both are doing the check of "Does the contents of HasSeenEvent, and the set of 31032033, 31032027, 31032037 overlap at all"

urban patrol
lucid mulch
lime seal
#

I'm not trying to start an argument folks. This mod had 20-something events in it, with i18n'ing, before/during the new convention. To me, not worth it to change. For others, I'm sure it is!

lucid mulch
#

have fun, though that would take under 5 minutes to cleanup and not staring at very simular numbers for the rest of your time working on the mod

brave fable
#

such numbers are puny for find-and-replace-in-folders in your text editor πŸ™‚β€β†•οΈ also hi lenne

next plaza
#

If not, then you might need to get it working with that again before we continue

urban patrol
#

yeah i really hope i didn't break it, forget about it, and then leave it for a month haha

urban patrol
#

uhhh okay no it wasn't that, idk what the problem is? i literally haven't touched this since it was working ugh

#

ok, reverting my files to january 17 fixes it with the old build. i'll try the new one next. whoever recommended i use github like 9 months ago, thank you for all the times it's saved my life lol

urban patrol
quasi crow
#

is there a convenient linked list of vanilla item ids somewhere in here?

urban patrol
brave fable
#

it's recommended that you unpack the game content and refer to the Data/Objects asset

#

patch export Data/Objects in the SMAPI terminal will also create a file with any modded items you have installed, too

quasi crow
#

ty

urban patrol
#

blueberry you're RED i thought you got kicked or something

brave fable
#

bargain stardew developer SDVpuffercoolest

#

far more fashionable tho

uncut viper
#

I'm not sure which console commands you mean specifically but if you mean the ones that start with debug, that mod comes pre-installed with SMAPI, called Console Commands.

#

If your mod folder doesn't have it anymore you can just reinstall SMAPI to get it back.

jaunty shuttle
#

Interesting, shall try ty

next plaza
jaunty shuttle
uncut viper
#

What are you trying to do? Are you trying to test a mod you are making?

jaunty shuttle
#

Yes (kind of). I'm trying to see how my NPC sprite looks in-game, so I need to summon the toddler girl so I can compare the colors (they're supposed to be the same colors)

uncut viper
#

If it's not on the wiki list of console commands, then the game does not come with any others, and any other console commands you may have remembered from the past wouldve been from other mods, which I don't know of any off the top of my head to suggest, sorry.

jaunty shuttle
#

They're on the wiki

#

That's where I saw them initially

uncut viper
#

If they're on the wiki, then Console Commands allows you to use them.

jaunty shuttle
#

Ok I got it to work (yay!)

#

How do I tell the game that I want to reference the sprites, not the portraits, when they're both named Abigail.png?

#

Wait that might be a dumb question

#

Hold on

vernal crest
#

Is Lookup Anything showing that the tile property is present on that coordinate?

jaunty shuttle
#

Figured out my problem(s) I think, thank you button! SDVpufferheart

pale river
#

do you have snap to grid?

vernal crest
#

No, I mean the mod Lookup Anything. It will show things like what tile properties are present for that tile.

vernal crest
#

I couldn't find any TouchAction tiles in my game to show you so I had to use an Action

ornate locust
#

You are off by maybe 1 pixel

#

well, I say that as a fact, but I mean maybe you're just barely off mark in the debug

vernal crest
#

Are you sure it's 5 5 in Tiled? I just opened the vanilla Island_Hut.tmx and it's 5 6 there

ornate locust
#

Or in Tiled

#

WAIT

#

I think I got it

#

You don't have anything on the building layer there

vernal crest
#

But it's a TouchAction, it's not meant to have a Buildings layer tile

ornate locust
#

Ah, touch. Alright, hm.

vernal crest
#

I just noticed your grid is on so I counted and that's definitely 5, 6

ornate locust
#

Yeah it's 5 6. Vanilla was on 5 5

vernal crest
#

I am unsure what this is meant to be showing us?

#

I recommend getting Lookup Anything

#

So you can see what it's saying about that tile

#

And then we can see if the issue is that the TouchAction is not being added to that tile or if it's there but not working

ornate locust
#

Thaaaat doesn't happen to me

#

Not with TileData objects anyway

uncut viper
#

That's the offset layers tool

ornate locust
#

That icon is called "Offset Layers"

uncut viper
#

That's what it's supposed to do!

ornate locust
#

That would explain it

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 18 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

old edge
#

Finally finished with so many fixes for my mod it was a battle

dawn moth
#

Hey, anyone got a good way to enable or disable a patch when a given mod is also active? Making a map patch that's specific for when Stardew Valley Expanded is enabled, as the patch that normally is used (affecting a part of the secret woods) doesn't get placed correctly afterwards

devout otter
#

You can put "When": { "HasMod": "<mod's ID>" } on your patch.

dawn moth
#

(Couldn't find a "False" or "Not" condition)

ornate locust
#

"HasMod |contains=kabulla.bakery": false,

devout otter
#

"When": { "HasMod |contains=<mod's ID>": false }

ornate locust
#

That's for a different mod, but just change the id

#

You can also do that but "true", that format works for either

dawn moth
#

Gotcha, thank you, I appreciate it; yeah just wanting to make sure my mod is compatible with some of the bigger mods

shut edge
#

someone commented about an error they're getting

#

seems like it's either a problem with other mods or just from updating with old version animals

#

kinda doubt i can do anything for them yeah?

#

seems like it's something UI info Suite is trying to do

brave fable
#

uiis2 works on my machine πŸ€·β€β™‚οΈ

#

loads fine using snes v2 + uiis2 + jerky + ah + snes ah, all animals in one barn

#

if it's an issue from updating from an older version it's more than i can be bothered to test hahah

shut edge
#

yeah i feel that it must be that

#

cuz i didn't test that either lol

#

thanks for checkin!

#

that was very fast, did you already have them installed?

brave fable
#

nope, just had a coffee SDVitemcoffee

shut edge
#

haha

brave fable
#

arg can't believe i'm stuck on loc design issues again

#

irritating that there's no comprehensive way of replacing craftingpage instantiations with custom cookingmenu instances, and definitely none that gives a possibly limited set of recipes / material containers with chest instances

#

and of course i absolutely refuse to try and intercept bettercrafting limited recipe crafting stations SDVdemetriums

inner harbor
#

Are we likely to have playerControl in events without requiring c# at any point?

opaque field
#

Is there a good way to track how many times a player has died? (Say if one wants to trigger an event or letter if the player has died 3 times in the mines)

lucid mulch
#

you can kind of use playerControl in events, its just hard to exit it again

unborn shadow
#

Does anybody know how to make the layer of water to stop flowing on the bridge? I try to add a bridge on the town's map (beside the one to the beach) and I already use Replace as the patchmode but it seems the water in the original map is unaffected.πŸ₯²

fossil osprey
#

Either layers shenanigans, or a Water property that wasn't removed, I'd say

brave fable
#

you can't place the bridge on a Back+ layer, it needs to be Buildings. use the Forest map as reference SDVpufferthumbsup

unborn shadow
#

Oh it works, thank you so much!

unborn shadow
hallow prism
#

you need passable tiles on BACK layer on the water surrounding bridge

#

look at how the vanilla maps are doing it

unborn shadow
#

What kind of passable tiles should I choose then? I checked the vanilla bridge in the forest map but only find the water tiles on the back layer and nothing elseπŸ€” There are no tiles on the other layers surrounding the bridge either (unless they are transparent? But I can't see it)

brave fable
#

you can use invisible Buildings tiles on either side of the bridge if you like, some bridges in the game do this. otherwise there's a very specific water tile the Forest map uses on either side of the bridge that happens to have both the Passable and Water tile properties, which makes an impassable water tile on the Back layer

#

if you imported the tilesheet as a new tileset from image, these properties might be missing in your map, but you'll be able to see them in the Forest map tiles

vernal crest
#

What happens if a patch has an update rate of "OnTimeChange" but then it doesn't have any time-based conditions? Will it still check the conditions anyway? Let's say the condition is DaysPlayed.

merry river
#

Can i not run a query check when setting a price for an object?
I have configurable prices for the crop that serves as base for the recipes and wanted the prices for the cooked objects to be the price of the crop * (value) or + (value), like so "Price": "{{query: {{Northern Heart Melon Price Token}} + 1000 }}" or so "Price": "{{Round: {{query: {{ {{Northern Heart Melon Price Token}} * 1.2 }} }}",

calm nebula
#

You should be fine

#

The actual error says that your {{ and }} are unbalanced

merry river
#

Oh yeah, I think I see it. Let me fix it

final arch
#

CP doesnt really know which conditions are time-based and which arent afaik. it only differentiates between non-changeable and changeable ones I think?
non-changable are ones like HasMod

vernal crest
#

That is what I suspected but it's good to have it confirmed, cheers. Time to be ruthless to my mods list.

lucid iron
vernal crest
#

So no performance cost for invalidating and then reloading the asset because it's not going to change any time during the day, but still an unnecessary performance cost for calling the update context?

lucid iron
#

Yar you may recall when sinz was trying to get me to do some immutability optimizations

#

That is to reduce amount of update context calls

calm nebula
#

points the nerdsnipe cannon

quasi dew
#

hey is there an easy way to subtract 1 from a value taken from a different mod's config with the cross-mod compatibility mod? I tried it with and without brackets, but neither of those worked

#

assigning dynamic values to each of those values to subtract 1 feels a bit dumb

calm nebula
#

Query toke

quasi dew
#

will that work for a precondition?

#

I'm way out of my wheelhouse here

#

I've only ever used query tokens in when conditions

pale river
#

is it possible to debug CTs to test them?

lavish terrace
#

how do i reference a string from another mod, say if I want to call up the name of a dish or character from a mod's i18n in a string for a mod I'm making?

#

I'm looking at 6840's Flexible Cooking and I see this tag in an ingredient (the choco in Love of Cooking's Chocolate Flan):

{
                            "Type": "ContextTag",
                            "Value": "chocolate_item",
                            "Amount": 2,
                            "OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",
                            "OverrideTexturePath": "Mods\\blueberry.LoveOfCooking.Assets//ObjectSprites",
                            "OverrideTextureRect": {
                                "X": 48,
                                "Y": 16,
                                "Width": 16,
                                "Height": 16
                            }
                        },

but I'm noticing the mod I want to reference (I wanna reference Lumisteria's Serene Meadow Borage in this case) doesn't follow that same pattern for its path, how do I determine the path?

#

*of the string, I mean

quasi dew
lavish terrace
autumn tide
#

hm, I'm not too experienced with this so I may not be able to help much, but could you clarify what you're trying to do?

lavish terrace
#

(i've never used them)

autumn tide
#

oh no, that's for tokens afaik

#

not strings

quasi dew
#

ah nvm

autumn tide
#

(also a beginner here so take my advice with a grain of salt LOL)

lavish terrace
autumn tide
#

okay

lavish terrace
#

so for example, the Borage Raviolis from that use "Blue Borage" from the mod, but I want to make it compatible with anything from the "borage_item" context tag (which would include Blue Mist from Cornucopia in this case

#

and I want to, for the Text, have it say "Borage (Any)"
Now, obviously I can just make an i18n entry and say that plainly, but I saw the original mod reference the localized string

autumn tide
#

okayyy, I think I got that

lavish terrace
#

and I wanted to figure out how to do that

#

basically this part of the bit i posted earlier:

"OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",
autumn tide
#

aah, you wanna know about the localized strings!

lavish terrace
#

ye!

#

sorry, I guess I didn't say that clearly enough at first x3c

merry river
#

it does sound like something cmct could handle but i cant explain any specifics

autumn tide
#

I just learned about them recently myself LOL

lavish terrace
#

^ that string is referencing the chocolate from Love of Cooking, but I wanna change it to reference Borage instead from Serene Meadow

#

and basically I just don't really get how to direct it to where the string would be from the other mod

#

(and ideally figure out how to figure that out for any mod in the process x3)

#

I thought it might be standardized or smth, so I tried changing out variables in it, so like the blueberry.LoveOfCooking.Assets part i put in Lumisteria.SereneMeadow.Assets instead but it does not work :')

ornate trellis
lavish terrace
autumn tide
#

SO afaik they behave like a stardew native i18n,
for i18ns you'd replace an entry with an i18n token that contains the i18n key name, (which you can fill out with your text in i18n files)
for localized string text you would put the path to a string that you can then fill with your text, outside of the i18n system

lavish terrace
#

so in this case {Lumisteria.SereneMeadow_Borage}?

#

or do you mean: {{i18n: SereneMeadowBorage_Translated}}

autumn tide
#

one sec lemme elaborate i didn't put that too well

lavish terrace
#

it's ok!

#

i guess i need to know how to figure out the path

merry river
lavish terrace
#

I mean, obviously it'd be easier to just make my own i18n entry to say Borage

merry river
#

space core recipe overrides maybe?

lavish terrace
#

but I wanted to see if there was a way to determine the path of the i18n string so I could reference it like 6480 did in their mod

merry river
#

ohh wait

lavish terrace
autumn tide
#

idk if localized tokens would be needed here actually?

lavish terrace
#

needed, no

#

but i wanted to know how it worked x3

autumn tide
#

gotchaa!

lavish terrace
ornate trellis
#

where are all the cool c# people who would probs know this

autumn tide
#

if you search, midnight voyager explained it to me recently, lemme find a link!

lavish terrace
autumn tide
autumn tide
merry river
#

i dont understand how locational strings can grab something from another mod SDVpufferthinkblob

autumn tide
#

oh cause they're loaded to the game

merry river
#

im stupid i meant localized text lmao

lavish terrace
autumn tide
#

no fuckin clue SDVpufferthumbsup

ornate trellis
#

idk either i dont get the explanation you linked either but i am notoriously bad in understanding things so im not a good base point here

autumn tide
#

so am i took me forever

lavish terrace
#

ah, it explains more how i18n works, which is good to know, but not how to find the path to another mod's strings ;w; which is what i am struggling with, but thank you again @autumn tide for your help :'D

autumn tide
#

ofc :)

#

wait did I link the right one-

quasi dew
#

please tell me there's a better way to do this πŸ™

lavish terrace
#

i hesitate to @ the creator of the original mod bc i don't know if they're ok with that or not

merry river
autumn tide
#

ohhh just scroll a LOT

#

there's more below SDVpufferthumbsup

lavish terrace
#

o

merry river
#

iirc cmct can grab translation strings from another mkx but i have never tried it myself

quasi dew
merry river
#

mod

autumn tide
lavish terrace
#

ok in that case i will at them I think x3 thank you everyone

lavish terrace
#

I assumed it was only for tokens

autumn tide
#

oh me too! but good to know

cyan marsh
#

quick question: Error checking, can I get the mod that made a change to something?

lavish terrace
# lavish terrace how do i reference a string from another mod, say if I want to call up the name ...

@drowsy pewter I have a question for you about how you referenced the localized string from Love of Cooking: how do I determine the path to a string from another mod (in my case, Lumisteria's Serene Meadow, I wanna make some flexible cooking-style edits for personal use and I saw you referenced the localized string for Chocolate from LoC and I wanna do that for Borage (for the Borage Raviolis) from Serene Meadow...how did you determine the path to the string? specifically this part:

"OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",

or more specifically, this part LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name, how could I figure out how to reference a similar i18n string for any other mod? like how do you know the structure of the path, if that makes sense?

lavish terrace
#

or were you asking about something else, sorry

cyan marsh
#

something different

lavish terrace
#

ah ok, sorry x3

cyan marsh
#

i just pop in randomly to ask about things... you're good

ornate trellis
#

get a mod as in find out what changes what?

quasi dew
#

anyone know how to make a variable in a content.json??

lavish terrace
brittle pasture
quasi dew
lavish terrace
quasi dew
#

content patcher can't do le math in the preconditions section of events

brittle pasture
#

it doesn't load its string to any asset

lavish terrace
brittle pasture
#

it just uses i18n directly in the object data

lavish terrace
quasi dew
lavish terrace
brittle pasture
quasi dew
#

I've never done that

autumn tide
#

yay the smart C# people are here!!

lavish terrace
# brittle pasture you need CMCT to yoink i18n from another mod

ah ok i understand now, thank you so much! I was kind of hoping it would be like in LoC, but I see now that it's dependent on how they implement their strings, that clears it up for me quite a bit though, thank you so much for taking the time to explain it to me! <3

lavish terrace
lavish terrace
quasi dew
brittle pasture
#

sure, define it as a dynamic token

#

then you can ref its value anywher

quasi dew
#

I'm doing something wrong, bc this didn't work

#

idk what I'm doing lol

#

well... it did work. but SMAPI couldn't parse "2-1" as a conversation topic duration

brittle pasture
#

{{Query: {{thattoken}} - 1}}

drowsy pewter
#

Thank you for answering, Selph

ornate trellis
#

jsut found out bout %noturn in dialogue, sigh

brittle pasture
#

all math must be inside a Query token, or it just turns into that string

quasi dew
brittle pasture
#

greetings sixty four hundred and six point six six six six six six six six six six six dozens

autumn tide
ornate trellis
#

oh its jsut so the npc aint turning to you when the dialogue box triggers afaik

autumn tide
#

aah cool!

#

oh hey camiska!

verbal narwhal
#

can someone help me with terms?

as I taught myself c# mainly from reading sourcecode of terraria and sdv and looking at other mods - using modules or internal classes and just calling (initializing/delegating them) on certain modhooks provided by smapi - is that called bootstrapping?

#

hi!!

ornate drift
#

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

ornate drift
#

time to use this

brittle pasture
#

the only concrete meaning of bootstrapping in relations to software that I know of is bootstrapping a compiler to be able to compile itself

#

concrete as in purely technical; you can totally use it to describe your own journey of learning coding lol

ornate trellis
#

the only concrete bootstrap i know is the coding library aSDVpufferleaves

brittle pasture
#

oh yeah that too
i'm not a frontend dev how can you tell

ornate trellis
#

i only know of it cuz i use it to code my little website lol

verbal narwhal
brittle pasture
#

I mean you just worded what you did

#

refactor?

verbal narwhal
#

ok!!

#

thanks!

misty lintel
#

guys

#

my mod flopped when i released it yesterday, i have a new one in preparation but like should i release it as a new one or as an update to the dead one

merry river
#

your mod is one day old?

misty lintel
hallow prism
#

depends of a lot of factor

#

i would say that if you consider your mod dead after one day this may be a big factor in why they don't succeed

#

anyway, my personal feeling is that if an author release too much stuff that could have been combined, i'm not interested

misty lintel
#

like the update would be very big and would turn it from a 1 npc mod to an sve type mod

hallow prism
#

maybe considering things thematically would help rather than in term of flop/success. Is the content you're making a thing that would make sense as an update? then do that. if not, it's better to release separatedly

patent lanceBOT
hallow prism
#

then you have plenty of time to learn for experience and see if the mod does get some attention and if it just needed time, or if there are issues

#

i kinda don't believe a NPC release would "flop" in just one day

misty lintel
#

its at 30 dls after 25 hours

jaunty shuttle
#

I would be hyped fr

#

Celebrate the little successes, it doesn’t have to be β€˜the new hit success’ to be good SDVpufferheart

jaunty shuttle
#

You got this :3

tranquil surge
#

Hey, just got an error message in SMAPI saying
[game] Failed parsing condition 'WEATHER Sunny': no location found matching 'Sunny'.

Is my code providing the weather condition for fishing supposed to say "WEATHER here sunny"? Or is sunny one of those case-sensitive conditions?

hallow prism
#

i would say main way of promoting for npcs is players playing with them and then others being "oh this looks cool" which take time

blissful panther
#

That's also honestly not really bad?

uncut viper
blissful panther
#

(NOT bad. Bloody hell. SDVpufferwaaah)

uncut viper
#

You can have different weathers in different locations so that's why the gsq says it requires a target location, can't skip it.

tranquil surge
#

ah, nevermind. Finally found it. lol

hallow prism
#

things on the wiki appear only when requested /j

tranquil surge
#

With the "Wind" weather condition, do I have to specify whether it's spring wind or fall wind? Or can I just put "wind"?

hallow prism
#

should work for both (and any mod having summer or winter wind)

tranquil surge
#

And just to be sure, when adding multiple weather conditions for fish, there should be no commas, correct? And anything with 2 words like "Green Rain" should have the space removed?

hallow prism
#

let me check for green rain, but weather in wiki should mention that you can list several arguments

#

it's not a question of fishes, it's a question of if you want "and" or "or"

#

comma will means "and", which for weather, can't happen, you can't have both wind and rain at the same time

#

"Condition": "WEATHER Here GreenRain",

#

is what i have (and it works as far as i can tell)

ornate drift
#

how do you make a json file?

tranquil surge
#

Thanks! Though now I'm confused... If I want Rain or Storm or Green Rain, that's just a space, correct?
"Condition": "WEATHER Here GreenRain Storm Rain",

woeful lintel
#

!json

ocean sailBOT
#

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

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

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

ornate drift
#

alrighty

#

okay, so im starting out the manifest file

#

i used the base one from tiakall as a base

#

how am i supposed to know the version?

calm nebula
lucid iron
#

why do u need json assets

ornate drift
#

cause im making my first npc mod?

calm nebula
#

It is less powerful (you can only chose rainy or sunny or both)

lucid iron
#

you need your own uniqueid btw

calm nebula
#

But it does work well

lucid iron
#

nothing to do with npc bolbsun

#

for unique id you'd want something like Speedy.MannyNPC

#

it must be unique as smapi will not load 2 mods with the same id in same folder

ornate drift
#

hm

#

alriht

#

alright

woeful lintel
#

speedy, you really need to look up a tutorial

ornate drift
#

i mean i have the wiki at hand

woeful lintel
#

If you want to make an NPC, you'll also need to read the Content Patcher documentation

lucid iron
#

does the wiki tell you to use json assets then?

#

if u see that somewhere it's outdated n we should try to fix that

ornate drift
woeful lintel
ornate drift
#

stardewbuttongay??????? LiveSob

ornate trellis
# ornate drift well

you can click the link called "here" and it will tell you what everything means

woeful lintel
#

yeah, she has the best domain name ever

ornate drift
#

didnt know json was lgbtq

ornate trellis
#

i also am a big fan of pillows urls

lucid iron
ornate drift
#

ill try the guide first

#

buttons

lucid iron
#

its best to try and follow it up until you can try to load something into game first

tranquil surge
#

Okay, I'm having an issue with FTM. Everytime I edit the save, it removes certain things from the file. In particular, it's removing the Beach Forage and it's respective item index. Is there any reason why this would be happening? And how do I fix it?

lucid iron
#

and then you have concrete problems to ask ppl

tranquil surge
hallow prism
#

i don't remember FTM having beachitemindex

#

it is happening because FTM autocleans the content.json to remove everything that is out of place (doesn't exist, is empty, is wrongly formatted)

#

you stop it by using the proper formatting

tranquil surge
# hallow prism i don't remember FTM having beachitemindex

Oh? I was suggested by someone on here to add it, so that I could have an index for things that spawn year-round.

Ideally, I'd have a completely different set just for spawning beach items, but I constantly receive duplicate id errors when I try doing that.

hallow prism
#

the person either did suggest something else or was wrong

#

and you can have a completely different set just for beach spawning, as long as you do it properly

#

i have several set of spawing in several VMV locations without issue as long as the ids are properly unique

#

i'm going to eat dinner so i can't help further

latent mauve
#

As said before, Beach is not listed as a valid terrain type, FTM will not recognize it. You were told to use CustomTileIndex previously, not anything with the word Beach in it. Unless this is for a different section

#

Esca, feel free to correct anything I said wrong

tranquil surge
royal stump
#

that's correct; beach isn't a terrain type in the game, and sand tiles are only identifiable by their unique sprite indices
you can check Tiled for those and add them to the CustomIndexList, then use "Custom" as a terrain type
though it's often easier to just specify map coordinates

#

and in basic terms, you can have multiple areas in the "Areas" list, e.g. like this:

"Areas": [
  {
    "SpringItemIndex": null,
    "SummerItemIndex": null,
    "FallItemIndex": null,
    "WinterItemIndex": null,
    "UniqueAreaID": "General farm forage",
    "MapName": "Farm",
    /* (all the other settings) */
    "DaysUntilSpawnsExpire": null
  },
  {
    "SpringItemIndex": null,
    "SummerItemIndex": null,
    "FallItemIndex": null,
    "WinterItemIndex": null,
    "UniqueAreaID": "Farm forage for the beach part specifically",
    "MapName": "Farm",
    /* (all the other settings) */
    "DaysUntilSpawnsExpire": null
  },```
and populate those per-area index lists with the forage you want in each section
(edit: whoops, I wrote "beach" as the map)
#

though I'd highly recommend using the Config Editor optional download on FTM's nexus page, since it can make formatting area lists easier

latent mauve
#

Unless the circumstance has changed, they were trying to allow beach forage only in a circle with a set distance from the water tiles, so the tile area was proving difficult to define

#

Just so you have some context

royal stump
#

ah, makes sense, it does get convoluted to do it that way

dry forum
#

I heard of a tile I should never remove when making a farmhouse layout but I don't know which one that is, do you guys know what I'm talking about?

tranquil surge
latent mauve
royal stump
#

then add a second full entry like in that example earlier

tranquil surge
royal stump
#

yep, the null part of each of those index fields can be a full list, with the same format as the ones you're currently using farther down

latent mauve
tranquil surge
#

Well that makes my life infinitely easier! lol
I was under the impression that it had to be initially listed as null for a list to work.

#

Thanks!

royal stump
#

if an area's specific list is null, it'll use the "global" ones down below, which is what yours is currently doing
but if you replace null with an actual list, it'll use that instead

latent mauve
#

Sure thing, it was listed on the Modding: Maps page on the wiki (to Ars Moriendi)

dry forum
#

It was?? I'm so sorry

royal stump
#

(or you can load it with the editor here and populate the lists like this)

vale stream
#

Hi! Quick question. Can you use "DAY_OF_MONTH even" as a GSQ? According to the wiki (and the code) you can, but the game is throwing an error about how it's not a known query.

latent mauve
dry forum
#

Ahhh I see. I should've read the whole thing before asking

woeful lintel
royal stump
#

that error looks like a quote issue; it's parsing "DAY_OF_MONTH even" as a single string

vale stream
#

Hmm, the Event docs' example wrote it in quotations so I went with that- regardless, here's the event preconditions:
"GiEX_Javi_2h/f JaviGiex 500/n Island_Resort/w sunny/t 2000 2400/GameStateQuery \"DAY_OF_MONTH even\"

And I'll send the log in a moment

uncut viper
#

how old was the example you were looking at? Because I do recall an issue I think around 1.6.9 regarding the gsq precondition and space/quote awareness

#

But it shouldn't need to be quoted afaik

royal stump
vale stream
royal stump
#

the quotes aren't required unless you need to combine multiple words into a single argument

ornate drift
#

okay so i read the json tutorial by buttons

royal stump
#

e.g. "SEASON Spring" there would probably give the same error, it's reading that whole thing as the query ID

ornate drift
#

this is a lot to process think

pale river
vale stream
#

Hmm, I removed the quotes and still nothing. Would a log be required?

royal stump
#

in that case yeah, please upload it

#

if nothing else, the error should be gone

uncut viper
#

Or different, at the very least.

pale river
# ornate drift sure!

it's not the original mod, but it's modified to remove the gimmicks. You can ping me if you have any questions about anything inside of it

#

oh frick I forgot to remove 1 thing

ornate drift
#

whats the CP stand for? and why is it there?

vale stream
#

Oh, hold on, it worked. I renamed the folder to send the log (so it'd be clearer what was doing what) and apparently VS codium saved the changes to the old path. It's working now!

pale river
vale stream
#

Thank you for the help SDVpufferheart

royal stump
#

it's not strictly required, but traditional/helpful to prefix content pack folders with the framework mod's acronym

ornate drift
#

ohhhh so this is like a base

#

kinda

#

can i play around with this?

pale river
tranquil surge
#

Just confirming, but when using the "IncludeCoordinates" in FTM, and I use ExcludeTerrainTypes: Water (Not formatting for this question), I should be able to simplify and reduce the number of coordinates I need to have items spawn in a certain area around my ponds, correct?

ornate drift
#

thisll be grea

#

t

#

thanks

pale river
ornate drift
#

ty

tranquil surge
royal stump
royal stump
tranquil surge
#

Just wanting to confirm, but the current most up-to-date list of all vanilla 1.6 items is found here, correct?
https://mateusaquino.github.io/stardewids/
Just asking because I want to add a slight chance for some Green Rain Weeds to grow in the fall (after the first green rain event, of course), but they don't have a typical itemid.

Complete item cheatsheet guide to help you find all IDs of items in Stardew Valley, updated for 1.6. Quicky locate between objects, seeds, plants, furnitures, shirts, books and more!

ornate trellis
#

the most up to date one is the object json you get when unpacking the game but i supposed as in a site...that ones alright

tranquil surge
#

Is there an easy SMAPI command to determine if my fish mod works? Right now, the only way I know of to test to see if I can catch fish from all the different regions is to just fish on the farm... Surely there's an easier way, right?

carmine stream
#

what are the current limitations of the NPC Builder?

torpid breach
#

new to stardew valley modding. is there a "npc location" content patcher token? I thought I'd do something simple like have shane wear pajamas in his bedroom but I can't figure it out. my only idea is to manually code for his schedule, which is ugly and brittle, I'd rather have something like

when: target npc.location is within x zone

hallow prism
#

but i think latest update of lookup anything is great for show what can be fished in a water

hallow prism
#

there is a way to check for a location as the map, but not the room

torpid breach
#

sucks but thank you kindly, I'll work around it

hallow prism
#

the main options is :
hour based appearance, or location (map) based

#

(or a combo of course) which is usually good enough

#

note that for location it's usually checking player's one

torpid breach
#

makes sense. thank you again.

latent mauve
quasi crow
#

Can someone explain the double slash syntax? and how I'd reference a vanilla object instead? (json file, cp mod)
"BillboardTexture":"Mods\\Lumisteria.MtVapius\\Objects",
"TexturePath":"Mods\\Lumisteria.MtVapius\\Objects",

latent mauve
#

As far as the spreadsheet builder linked in the !npc command, that one's my creation, so the limitations are that I haven't made tabs for every little thing involved with NPCs, just the core parts, but I'm happy to field questions.

carmine stream
#

yeah, it’s yours πŸ˜… just wanted to know if there were things i needed to make sure to go back and include manually if my interest was just adding an npc with events. i plan to expand beyond that with a custom building etc, but that’s a later hurdle

latent mauve
#

I mainly add features as they are requested, but events are a different beast and will not be covered in my builder spreadsheet, LOL.

latent mauve
ornate drift
#

soooooo uh im using boxosoups rock npc base and im trying to edit the content json to make my own npc from their base

#

this happened

latent mauve
#

!json please use this instead of screenshotting your code

ocean sailBOT
#

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

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

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

uncut viper
# ornate drift

You don't replace the things inside {{ }} i.e. dont replace {{ModId}}.

#

(Unless for things like i18n tokens where you change the input argument)

carmine stream
uncut viper
#

(Also yes please use the uploader in that governor command in the future SDVpufferheart Same for logs, there's a log uploader as well)

pale river
uncut viper
#

Yep, that's the preferred way for sharing JSON in this channel.

ornate drift
#

got it

latent mauve
quasi crow
latent mauve
#

Vanilla objects have their appearance textures in Maps/springobjects but let me see where that BillboardTexture reference specifically is.

quasi crow
#

nvm i think i found it... content/loosesprites/billboard.xnb?

latent mauve
#

What's the Target being used for the patch that has BillboardTexture in it?

#

Trying to figure out what type of thing this is patching

hallow prism
#

(you may want to provide more context, i am a bit confused about why you mention VMV textures unless it was the first example of path you had on hand?)

quasi crow
hallow prism
#

ok

latent mauve
#

ah, gotcha, you're targetting an UnlockableBundles wallet currency asset.

quasi crow
#

oh its working now other than the incorrect texture. good start.

ornate drift
#

ok so i managed to load him in but hes not interactable in any way

#

there we go lmao

latent mauve
#

NPCs like to make their pathfinding decisions the night before, so keep in mind that if you make changes to their schedules or related code (like adding new schedule-related dialogue keys) then you may need to sleep before they work

latent mauve
#

game asset paths usually assume they are in the game's Contents folder already, so you start with the next folder/directory name after that.

#

So game asset paths look more like LooseSprites/Billboard, Maps/springobjects, Portraits/Abigail, etc., but with the \\ instead of / where needed (slash-delimited lists or events)

quasi crow
#

Ok thanks.
Do you know where I should look for
"TexturePath":
for calico eggs? The billboard part seems like its working.

ornate drift
#

an NPC only has 10 portraits maximum?

quasi crow
#

oh thats the maps/springobjects tthing isnt it

latent mauve
#

yep

brittle pasture
latent mauve
calm nebula
#

Well there is a limit to npc portraits but if you come anywhere near it I question your sanity

#

There are NPCs with more than a hundred portraits

ornate drift
#

i like expression

#

i wonder if its possible to add custom sound effects to the game whenever an NPC makes an action in the game

calm nebula
#

Everything is possible

ornate drift
#

to be fair its json coding so yeah

calm nebula
#

(*) okay not actually everything

#

(*) and I think you need c#

ornate drift
#

πŸ₯€

#

ill continue this tomorrow i gotta sleep

#

gnite

latent mauve
#

I think there is a framework for that

quasi crow
#

Hmm. Well, no errors and the mechanics at least seem to be working correctly at least.

latent mauve
#

I think the BillBoardTexture might actually be referring to the sprite of the object shown in the corner "billboard", if that helps?

quasi crow
#

that makes sense

quasi dew
#

how would I go about pulling the first letter (or first couple of letters) from a config value?
adding an event where your baby says the player's preferred name, but I don't want to restrict the values for that name.

#

it might be with the "like" operator, but I'm not certain

quasi crow
#

For C# I assume?
string myString = "Hello";
char firstChar = myString[0];
should work

latent mauve
quasi dew
quasi crow
#

Ah, I assume you can but I just started using CP/JSON like, today, so I can't tell you how off the top of my head :P

quasi dew
#

no worries! I'll do some more digging.

quasi dew
#

I'll try the "like" operator, it looks promising.

latent mauve
# quasi crow Thanks!

no problem, you might need to also set the TexturePosition to be 112 (x) and 0 (y) if it wants pixels.

quasi crow
#

oh thanks again, i was just looking for that lol

latent mauve
#

Unsure, but I think this is the expected format for Vector2: {"x": 112, "y": 0}

quasi crow
#

yeah, theres a TexturePosition and BillboardTexturePosition that are each looking for those

tranquil surge
#

Say, does content patcher allow .jsonc files instead of .json files? All these "comments aren't allowed in JSON" errors is rather annoying honestly.

quasi crow
#

Aha, success. Thanks a bunch fireredlily

#

Now the only question is if they'll still be removed at festival end.

#

Nooope.

little siren
#

how would I get started making a fashion sense mod?

latent mauve
#

(I was hoping for a SetCurrency instead of AddCurrency so you could just set it to 0, but that doesn't seem to be supported)

quasi crow
#

Thanks, I'll give that a try once I upload. I'm perfectly fine with it as a feature, but may as well make it a config

rich field
#

Hello, do I need to know how to program or any of that sort to be able to make portrait mods? I'm an artist and would like to give it a try peepoShy

autumn tide
#

hey!!

#

I actually have a template I'm working on if you wanna try!

latent mauve
rich field
#

Oooh sure c:

autumn tide
#

!startmodding

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.

autumn tide
#

it's not done yet, but I can grab the link!

rich field
rich field
latent mauve
#

The wiki tutorial for Content Patcher in that Governor post is a good place to start

autumn tide
#

ykw I'm gonna go work on an update rn!

rich field
#

Thank you😚 I'll give it a look tomorrow then

autumn tide
#

happy to help :)

rich field
#

Never made a mod before, but I've been obsessively modding my games since I was a kid LOL

#

Figured I should give it a try

autumn tide
#

SDV is really easy to mod comparatively!

rich field
#

Looking forward to it

#

Is it okay if I add you to ask questions in the future?

autumn tide
#

I'd prefer not, but you can @ me!

rich field
#

Ahhh alright, thank you stillVpinkheart

autumn tide
#

ofc!

charred plank
#

is there a way to check button bindings for the game or check if the action button has been pressed (default right mouse)?
api based c#

uncut viper
charred plank
#

it's good for raising an event when buttons are pressed/changed but i don't have a way of comparing them to the currently bound action button. if the player has remapped anything i won't know about it.

uncut viper
#

The Input API page has an example for getting the current action button in the data structures section.

charred plank
#

i missed that. i'll look again

#

i'm not seeing it. i'm looking for something like

   DoStuff();```
uncut viper
charred plank
#

i read that 4 times. at least.
thank you

autumn tide
#

hellooooo if one were to make a winter variety of portrait using the usual NPCName_Winter for a character that DOESN'T have a winter portrait in vanilla, would that work?

hollow root
#

i have no clue if im doing this correctly

autumn tide
#

ooh you're close!

#

those accept/reject gifts should be in your character's dialog entry

hollow root
#

in my dialogue json?

autumn tide
#

mhm!

hollow root
#

so here?

autumn tide
#

think so!

devout otter
autumn tide
#

ahhh okay

hollow root
#

for the specific lines to work i assume his hated gifts have to have their ids in his gift taste data?

devout otter
#

_Beach is the only one that immediately work, I think.

autumn tide
#

thanks dolphin! oh wait what would you prefer to be called?

uncut viper
# hollow root so here?

(Those appear to be zeros inside those parentheses. Make sure they are not zeros! They should be O as in the letter of the alphabet)

hollow root
#

ohh ok

devout otter
hallow prism
#

how are you, dolphin is fine?

#

(i know i need to go to sleep soon, when my sense of humor is of such a quality)

hollow root
#

I’m really having trouble understanding schedule strings despite reading the wiki, are they the ones that can play during custom animations and when an NPC is standing in a specific spot? How do they work?

autumn tide
#

oh no what time is it for you Lumina

hallow prism
#

past midnight

autumn tide
#

prolly go to bed then-

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!

hallow prism
#

and then look at how vanilla does it!

hollow root
#

does schedule dialogue go into content.json?

calm nebula
#

Sure!

royal stump
#

content.json in a CP pack is where basically anything can go; splitting it into sub-files is optional
(see documentation about the "Include" command, if that comes up)

quasi crow
#

is there a way to detect the end of the desert festival with CP, as opposed to querying if its active at the start of every day?

hollow root
#

so this would work?

hallow prism
#

not without creating the file first

tranquil surge
#

Say, what is error " [ALSOFT] (EE) WaitForSingleObjectEx error: 0x102 "? It's constantly forming in SMAPI after I've made some edits to my farm map from the moment that I start the game up...

autumn tide
#

hmm, share your log?

#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

hollow root
autumn tide
#

heyyy I'm shiny!

hallow prism
hallow prism
tranquil surge
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 53 C# mods and 25 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tranquil surge
#

The two mods that are "out of date" aren't. They just have incorrect version numbers

hallow prism
#

i don't see the error you mention in the log

tranquil surge
hallow prism
#

i mean, do you see it in the log you posted?

tranquil surge
#

It's constantly popping up every 2-3 seconds...

hallow prism
#

maybe you uploaded another version of the log

#

like too soon to log this

tranquil surge
#

Is this enough for the error to get logged do you think?

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 53 C# mods and 25 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

That seems like an audio thing... ? Never seen that before

hallow prism
#

googling the error isn't bringing any relevant info sadly

tranquil surge
#

That's so strange! It's not showing up in the log at all...

hallow prism
#

(and no, i still don't see it in the log, so... no clue about what's happening)

uncut viper
#

ALSOFT makes me think of OpenAl which is an audio library whatever the game uses I think

tranquil surge
#

Lovely, I guess I discovered a new bug? Fun...

uncut viper
#

And so if that error is coming directly from it, it's not being passed through SMAPIs log handling

hallow prism
#

not exactly new, but rare

uncut viper
#

It's being written directly to the console

#

Therefore not being written to the log file

hallow prism
#

that explains it

lucid mulch
#

my google-foo is very much pointing to OpenAL with minecraft threads having the identical message

uncut viper
#

However it's also almost certainly entirely unrelated to what you are actually doing or your mod and just seems like some bits got crossed

hollow root
#

My NPC is not letting to speak to him despite having a schedule string and being there at the right time

hallow prism
#

i don't know what could be done to test things, you can try reverting to a previous version of the map (or a different one) to see if the error is related to that

uncut viper
#

Probably nothing a restart of the game if not your computer can't fix

tranquil surge
#

Okay, well I have noticed some audio issues where the audio just cuts out, but I thought that was just the game bugging out since it applied across the entire game, not just my farm...

tranquil surge
hallow prism
#

if i knew i wouldn't suggesting trying to find out

#

"oh yeah please test those totally unrelated steps that are unlikely to even solve anything" isn't an usual process here πŸ˜„

#

(not on purpose, at least)

uncut viper
#

I would feel very confident in saying the error is both not your fault and also nothing you can affect by making edits to your mod anyway

hallow prism
#

it is true that if it was related to an edit we would see the error more often, but well, it is still the usual approach to try to figure stuff out, to see if the last thing changed is impacting stuff

#

i have to go to sleep, good luck figuring stuff out!

tranquil surge
#

Thanks!

#

Also, sidebar, but the fish section of my mod still isn't working even when my character's fishing level is level 10.

At least, not according to the visible fish mod or what I've been able to fish up after a little over an hour of trying. And it doesn't appear that the LookUpEverything mod is able to look up whether or not my pond can fish up other fish. Here's the content.json if someone's able to help me figure this out...

https://smapi.io/json/content-patcher/f712020af233495e9720e85707e7cd1b

hollow root
#

I really need help I cannot get this schedule string to work properly for the life of me. I loaded it in the blank JSON, the string editdata is in content.json, I typed it correctly and he's supposed to say "It's peaceful here," but he does not.

calm nebula
#

Is the All_Items (0) a zero or a capital O

hollow root
#

Which line? Sorry

calm nebula
#

Not u, RJ

#

You need a space after the 2 and before the "

hard fern
#

looks like 0 (number) and not capital O

#

cuz of the line

tranquil surge
hard fern
#

yeah, the O is for Object. you had it like that a few lines up, so it should be the same for this too

tranquil surge
#

And just to confirm, but the values for content.json are supposed to be between 0 and 1, correct? Not whole numbers between 0 and 100?

calm nebula
#

Yes

tranquil surge
#

Okay, thanks. Let's test this out with that chance from 0 to capitol O. lol

#

Also, I figured out what was causing that error earlier. Apparently, one can't have two fish-splash effects on the same map. Why, idk, but once I deleted the second splash sound effect on the .tmx file, that error stopped popping up.

fickle lichen
#

hm, i wanna add something more to my mod, it needs to be kinda like a small trinket (could be anything, really lol), do y'all have any ideas?

#

the mod adds little trinkets that can be placed around :3

quasi crow
royal stump
#

"MarkActionApplied": false seems to be outside of your actual entry

quasi crow
#

ah i figured it was something dumb like that. thanks

fickle thicket
#

question: would it matter if i set the format of my CP mod from 2.9.0 back down to 2.8.1? would that mess things up

uncut viper
#

only if you're trying to use things only added in 2.9.0

fickle thicket
#

right SDVpufferthinkblob but other than that everything hypothetically should be fine right?

vernal crest
#

Yes, but I am curious why you would want to?

uncut viper
#

Android support, I imagine

vernal crest
#

Ah, makes sense

lucid mulch
#

As long as you don't use PatchMode.Mask then theres no difference between format 2.8.0 and format 2.9.0

#

but Content Patcher will yell at you if you are in that state anyway

#

In general, the only reason to ever change the format version at all is if you want to use newer features that the newer formats have.
The big exception was the 2.0 jump where you were incentivised to bump the format version to tell CP that your content pack is 1.6 aware and so the 1.5->1.6 migrations dont need to run for your content

#

Oh and I guess if you rely on the behaviour of

Added field auto-initialization when using Fields to edit a null parent field.
added in 2.9.0 then that would go away again, but I don't think many patches would notice that

wary mica
#

Hello, I am looking for some help with a content patcher mod I made. I recently revamped it to include more location-based options and as I am inexperienced with CP (and coding in general) I basically just looked at others' mods and cobbled it together. As such, it's lagging on transitions because I'm sure I'm doing things inefficiently. A user very helpfully put details here: www.nexusmods.com/stardewvalley/mods/30227?tab=bugs

Additionally, I have a SVE-compatibility mod for the mod above that I need to add all the new options to, and was prepared to use Cross-Mod Compatibility Tokens (CMCT) to accomplish that, but I was worried I was going to make the lag that much worse.

I know this is a non-trivial thing, but is there anyone more experienced who would be willing to glance over the code and make a few suggestions for optimization? And/or some best practice suggestions for using CMCT because it's brand new to me.

I have put both mods up on my github so it's easy to see the code and assets.
https://github.com/rainkius/Seaside-Interiors
https://github.com/rainkius/Seaside-Valley-Expanded

Thank you! aSDVemoteheart

shut edge
#

Anyone know if NPCs have strict sprite limits, or speed? Could I make an NPC do it's schedule on a vehicle, like a horse or a scooter?

lucid mulch
#

I dont recall any way in content to actually control speed, all npcs go the same speed (slow)

shut edge
#

Sounds about right

#

Well if anyone feels like making a framework I have feature requests 8U

lucid mulch
#

Needing to find someone brave enough to go near the micro pathfinder

shut edge
#

Haha

lucid mulch
#

looks like speed/addedSpeed do mostly just work without needing to go too close to the pathfinder, but the pathfinder will be fighting to reset the speed back to 2/4 and addedSpeed back to 0

shut edge
#

Ah, lame. Thanks for looking.

lucid mulch
#

In like 3 years when 1.7 might come out I might entertain the idea, but until then have fun

azure raven
#

anyone know how to have a custom item have an inventory, much like fishing rods?

clear salmon
#

i might consider paying someone to make a mod in where Pierre as a marriage candidate and have Caroline be married to the wizard like Pierre was engaged to her but found out she cheated so dumped her then the wizard stepped up so Abigale is a lot happier

clear salmon
#

ill do it next month let me know of anyone interested

vernal crest
#

!comms The safest thing to do will be to find someone yourself. Here's a list of people who make themselves available for comms.

ocean sailBOT
clear salmon
#

ok thanks governor

merry river
#

I need help in figuring out why the shop entries don't get updated after completing a specific quest SDVpufferangy
Shop edit (Log Name NHM Saloon edit): https://smapi.io/json/content-patcher/867d4b6e48194e2da1c72a795e2c2b07
Mail & quest that are supposed to trigger the shop change afterwards: https://smapi.io/json/content-patcher/761d19d886da4a6cb11f5bec759b4420
Content: https://smapi.io/json/content-patcher/970fe3b0e49a481892de6065737ac347
The second link also includes some space core spawnable shenanigans that i can't get to work, if anyone can help with that as well, I'd be grateful SDVpufferheart

#

The mail and quest trigger and can be completed without any issue

lucid mulch
#

That when condition looks like you partially have CP token semantics and GameStateQueries mixed up

merry river
#

Aaaand the other thing I just can't wrap my head around is a machine input/output thing
https://smapi.io/json/content-patcher/c5822961d9e447e69aa7b897f3b189be
The object Heart Melon Huangjiu is supposed to be an output if you put a Heart Melon in the keg with 2x unmilled rice in your inventory. However, when placing the fruit into the keg, it takes only one melon and I don't even get wine from that, it immediately makes the huangjiu. The other patch that makes the syrup in the keg works without any issues, so I don't see what I'm doing wrong?

#

Okay, I know that's a lot, but I spent a large amount of time figuring these out yesterday and didn't manage 😭

merry river
vernal crest
#

I think it's meant to be "HasReadLetter: anyPlayer": "{{ModID}}_GusQuestCompleteMail"

lucid mulch
#

The link points to examples though they are all hasflag, it is the same player targetted logic between them

merry river
#

Thanks!

#

That's one issue down

tawny swallow
#

whats up guys :) I'm really clumsy when it comes to anything digital so I need some advice for a small mod I'm making. I'm using Content Patcher to add an event into the game. In this event, Shane walks away from a group of people including the farmer and out of the door. I want the group to continue talking while Shane walks but if I add "true" to Shane's movement, the warp at the end of his walk triggers instantly and he becomes some sort of super saiyan haha, any advice on how to make the warp wait until he is done moving but have the rest of the characters continue as normal?

hard minnow
#

I want to fix and distribute mods that stopped updating in 1.4 or 1.5, but the original author is not present. How can I get permission in this case?

verbal narwhal
tawny swallow
#

hahahahaha

hard fern
#

be sure to also check the permission info for the mod on the mod page, it might be useful in case you can't contact the author.

hard minnow
#

All right

opaque field
#

I'm struggling to get my event in the bathhouse pool to work. I've checked other events there and the spelling seems to be the same too. I shouldn't need to add a blank load since vanilla events go down there, right?

hard fern
#

(and yeah, no blank load should be needed since penny exists

hard fern
opaque field
#

Just that the event could not be found

#

hang on I'll send my log

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Unix 6.17.0.14, with 52 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

opaque field
#

Ignore the red blocks about the mine death trigger haha I'm tinkering with something

hard fern
#

hmm your event... dont exist... for... some reason

opaque field
#

I've tried spelling it with different capitalization too

hard fern
#

i think your event isnt even being loaded in the first place

#

you just sent the snippet of the event, but what bout the whole thing?

#

are you sure you actually like, put it in the thing

#

(i have made the mistake of forgetting to Include something and wondered why it wasn't working at all XD)

opaque field
#

I can't share the whole json but I do have 'include events.json' :p

#

I'll do a patch export after some coffee and see what that pulls up

proven spindle
#

In a similar vein, is the When condition you have in there being satisfied?

opaque field
#

Yis :3

#

It's gotta be something weird I'm doing. somewhere. Hm.

#

alright let's patch export me some caffeine XD

proven spindle
lucid mulch
#

something from SlowRuinSoldier edited Data/Events/Mountain

tawny swallow
#

What does "K" mean as a precondition of an event?

opaque field
#

I try to add a door to the adventure guild in the mountains as a warp to Kent's room, would that do it?

#

I have other events there too, but, hm

royal stump
#

in general, those are old shorthand for more modern precondition names

vernal crest
tawny swallow
verbal narwhal
#

if my mods ID is camiska.PregnancyOddsExpanded can I use camiska.POE as prefix for console commands and gsqs or should i align either my mods ID to be camiska.POE or write out the prefix?

merry river
ornate drift
#

yay :3

#

not interactable in any way for some reason though

#

ill send the json

#

!json

ocean sailBOT
#

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

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

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

ornate drift
#

how can i make it so that im able to talk to them???

merry river
#

can i see the dialogue and schedule jsons?

#

you'll also need to load a blank for the schedule

ornate drift
#

let me check something rq

merry river
#

you're also loading the schedule but not including it

ornate drift
#

<@&239770080378880001> theres a scammer bot

#

yippee

#

evaporated

haughty charm
#

Thanks for the ping!

ornate drift
#

np!!!!

#

okay now that i have the basic stuff set up

#

what else should i make? (gift tastes, making them walk from one place to another, an actual house)

jaunty shuttle
#

I feel like you need a house before you make their schedule, since the schedule (theoretically) starts in their house SDVpufferthinkblob

#

So i’d do that or gift tastes :3

ornate drift
#

i have them set at like a static place

#

theyre just standing near the fountain thats all

merry river
ornate drift
#

im using boxs rock base and forgot to change the rock name to Manny inside the dialogue json

opaque field
#

ngl I had Iggy's home be the BusStop for a little while

#

cuz I didn't feel like making her house hahaha

merry river
opaque field
#

but I did want to touch schedules

ornate drift
#

most stardew NPCs stay at their house from 6 to 10 AM

#

after that they either go outside and stand somewhere

opaque field
#

I'm gonna ignore Kent today I think and maybe do NPC work or my cream cheeses XD

ornate drift
#

or do an activity

opaque field
#

ye, Iggy goes to the library or stands by the waterfall in town

ornate drift
# merry river that's up to you, really! But I would start with figuring out a basic schedule

i dont know how schedules work but boxs rock base already has a set schedule

{
"spring": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"summer": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"fall": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"winter": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2"
}

merry river
#

i am simultaneously working on three mods, had to release a hotfix this weekend for one of them just to be made aware of the fact that i did even more oopsies SDVpufferwaaah

opaque field
#

That's so relateable though

#

I have the last like, 10 events of Shane's to test (out of freaking 60)

merry river
opaque field
#

no help I forgot about his Vanilla events I tweaked

ornate drift
merry river
#

just make sure to change the name to manny SDVpufferthumbsup

opaque field
#

You can also steal schedule bits from Vanilla npcs too :3

ornate drift
#

theres no mention of rock in those strings

#

so no need

ornate drift
#

i might wanna try gift tastes first

#

like having general likes and dislikes as other npcs, and then having custom loves and hates

merry river
#

you don't have to touch general likes and dislikes

#

those will be set automatically

#

but with custom ones, you can override general likes and dislikes if you want your character to react differently

ornate drift
#

how do i add a like and dislike dialogue, to start off?

opaque field
# ornate drift oh?

Yeah if you go into the unpacked assets folder data/characters/schedules and just click around πŸ˜„ it helped me a lot when I was first figuring out schedules

tiny zealot
#

bursting into the room to remind you to modid-prefix your NPC's name at a time convenient for you

merry river
#

they did that, i actually checked :D

#

hi ichor

tiny zealot
#

ah, good. carry on then SDVpufferheart

ornate drift
#

oh they use reference IDs instead of their names....?

opaque field
#

Yeah, (bless whatever vscode extension lets me type the name to get the number id)

merry river
#

for vanilla items, yes, only a few of the newer ones use names

ornate drift
#

so do i make a new json entirely