#making-mods-general

1 messages · Page 529 of 1

golden basin
#

thats what im needing though i dont need a powerful thing, and im trying to keep the number of frameworks needed low

#

dont wanna overwhelm users

#

i already have 6 needed

lucid iron
#

I should go and make a tile action version of "just animal shop"

hallow prism
golden basin
#

whnat a cute icon!

lucid iron
#

Rn it's bundled together bolbthinking

golden basin
#

the shop we made together chu was so har to understand

#

hard*

#

but it works great

lucid iron
#

Yeah but it doesn't offer any way to add another entry to the menu (bc it's specialized)

golden basin
#

what do you mean?

lucid iron
#

You can only have animal shop, supply shop, pet shop, cancel

#

There's no way to add more options to the response in livestock bazaar atm

golden basin
#

oooo you wanna make it where you can add as many shop names as you want

#

be a good way to make a order hotline

lucid iron
#

If u have like a direct "just animal shop pls" thing then u can use it with mmap or selphshopthing easier

#

Atm there is a trigger action for it but not a map action

golden basin
#

would you be changing how the other way works too or just adding another way?

brittle pasture
#

oh yeah chue since you're here did you do anything special for CSSM and Item Extension's extra trade items

lucid iron
#

No i never got it to work in the first place SMCPufferjail

#

So i just went shrug compat problem for 2027

brittle pasture
#

I asked since extra trade items I also kinda sorta 2 caked

#

compat is probably also doom because I can't see where I'd put extra space

lucid iron
#

Well i can expose my config real quick

#

Then u can know how many item per row is configured

#

As for the drawing bit idk i guess I can accept a draw delegate via api too where u get the bounds?

#

let me know what sorta thing u want from API n I'll do it AquaThumbsup

celest knoll
ocean sailBOT
#

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

brittle pasture
#

hmm lemme thonk, definitely wont get back to you before version release though
this is like 5% urgent since there's already the tooltip

#

almost

brittle pasture
brittle pasture
#

your second block, you probably meant to load into ⁨Portraits/{{ModId}}_Pandora⁩ instead of ⁨Characters/{{ModId}}_Pandora

brittle pasture
celest knoll
brittle pasture
celest knoll
#

SHES ALIVE!! SDVemoteowo

hallow prism
lucid iron
#

Which u can just do as a config on ur side for now too

uncut viper
#

what is a CSSM square..

gentle rose
#

(when it’s too long)

brittle pasture
#

waow... 2 green ppl in chat

uncut viper
#

maybe just accept that if someone wants to add a million trade items then maybe trade item shops isnt the way to go

jaunty shuttle
#

Ahhh that reminds me, congrats to you both on becoming junimos!! aSDVjunimodance

slim gorge
#

current work on SM for 1.6 is going along fine, need to test a few things, and still splitting the backend of it away from the game parts to make the mod more universal.

#

and need to investigate a spurious crash people reported that I haven't been able to figure out yet.

brittle pasture
hallow prism
#

magic apples

merry river
#

alchemy apples

uncut viper
#

i see. what does CSSM stand for though, thats a new acronym to me

lucid iron
#

Compact Searchable Shop Menu

uncut viper
#

added to my lexicon thank u

lucid iron
#

(it's cus Better is taken)

uncut viper
#

Compact Searchable Better Menu

brittle pasture
#

Objectively Superior Menu

#

or Subjectively

#

idk what Better means in most cases

uncut viper
#

Objectively Subjectively Menu?

calm nebula
#

Also anything u do is awesome, Button

celest knoll
#

if anyone knows the issue please lmk

uncut viper
#

are you accidentally Loading this patch to the dialogue asset instead of using the Include action?

celest knoll
#

rhis in the content?

autumn tide
#

hm, could you attach your content.json and the file path thing to your dialog file?

celest knoll
#

wdym file path?

#

this is content

autumn tide
#

uhhhhh like mod/(your mod's name)/(the folder where you have your dialog file in)

#

...sorry if that made no sense- one sec

#

this is mine for my file with all the trigger actions

celest knoll
#

uhh its t

#

Mods/mymodsname/assets/dialogue/the file

autumn tide
#

gotchaaa okay then that include entry looks alr to me, but keep in mind I'm also a relative beginner

celest knoll
#

😓 euhhh idk whjats doing wrong then

autumn tide
#

lemme see

#

hMMM I don't see any glaring issues myself (again beginner sooo), maybe attach a value to the log's name and then try again?

#

ALSO are you aware of the ⁨patch reload⁩ command?

celest knoll
#

value? SDVpufferfish

#

ehh no

#

i starred like 3 days ago...

autumn tide
#

uhhh thingy in the quotes that's not there

#

hold up I got a nice tutorial..

celest knoll
celest knoll
autumn tide
#

it's really good!

celest knoll
autumn tide
#

yayyyy

celest knoll
#

tyt :3

autumn tide
#

ofc!

#

-# woohoooo I know a thing!

celest knoll
#

wait nvm

#

i thought it fied but it didnt

#

....

#

any other ideas..?

autumn tide
#

hmmm send the 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.

celest knoll
#

if i have values that arent filled in would that affect it or..? bcz i currently have some that i dont have filled in

ocean sailBOT
#

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

autumn tide
#

oh thank god button's here- she knows what she's doing as opposed to me LOL

uncut viper
#

you are both Including and Loading the dialogue. your patch on Lines 20–25 is Loading your included file

#

(which you dont want to do!)

celest knoll
#

wwaht am i supposed to be doing 😞

uncut viper
#

Just the Include! The patch just before it is correct

celest knoll
#

ohh wait so its an issue in the content

#

wait i get it now

uncut viper
#

When you ⁨Load⁩ something, Content Patcher tries to give it to the game directly. So when you're Loading to the dialogue target, its trying to give the game a list of "key: value" entries

#

But your dialogue.json is formatted like a Content Patcher Json with changes and patches and everything, which is used for Includes

celest knoll
#

if i include do i need a target?

uncut viper
#

Nope!

uncut viper
#

Your Include is correct

celest knoll
#

ok tysmm!

autumn tide
#

hm, you're also gonna wanna do thorough testing with less mods in your file, preferably just dependencies and the stuff you need to more efficiently debug

uncut viper
#

So you just need to remove the Load

#

is your ⁨marriageDialogue.json⁩ also a content patcher formatted file, with Changes and patches inside it?

#

(and same with your schedule.json - basically, double check that these are supposed to be Loads and not Includes)

celest knoll
#

emm i havent done tose yet but i hope they will be? im just trying to get it to work first so i dont have to go through mountains of errors later...

autumn tide
brittle pasture
#

new version of Carpentry Catalogue is released! Featuring:

  • Extra trade items for shops
  • Ability to open a question dialogue menu on maps for multiple map actions
  • Custom geode breaker menus
    steal Clint/Marnie/Robin's monopoly on shop menus today
Nexus Mods :: Stardew Valley

Adds a menu to Robin/Wizard's that allows easy scrolling through buildings, and provides a framework to add extra Robin-like carpenter NPCs or Clint-like blacksmith NPCs.

golden basin
celest knoll
ocean sailBOT
#

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

golden basin
red basalt
golden basin
#

I'm on mobile I haven't opened it yet

red basalt
#

Oh

#

Although I don't really know what it does

golden basin
#

See I thought it was builder mod....I didn't think id need to add another dependency

#

Or is it a replacement.....do I need to redo my shops again

uncut viper
brittle pasture
#

I renamed it a while ago

#

for style™

golden basin
#

Ooooooh

lucid iron
#

CC (a BB)

golden basin
#

Okay cool

uncut viper
#

{{ModId}} is a token

#

you cant write {{ModId}} in the console because SMAPI doesnt know what it means

#

you have to manually write out the UniqueID in your manifest instead of {{ModId}}

celest knoll
#

it still isnt loading...

autumn tide
#

hellooo can config values be directly used in ⁨Condition⁩ keys (the ones that take GSQs), or do I have to do something more complex? wanna make a trigger action only apply when a certain config value is chosen, and I have enough values that using ⁨when⁩ and making all those dictionaries would be tedious

lucid iron
#

If your config is a true/false then you can use it as a GSQ yes, because there's 2 gsqs by those names

autumn tide
#

got ittt, I'm too dumb for that (added more values) so it's prolly ⁨when⁩ time

lucid iron
#

I don't particularly recommend doing it, feels better to just not add the trigger action

autumn tide
#

sadly, I'm insane

patent lanceBOT
lucid iron
#

No i think config as condition gsq is just more lazy

golden basin
autumn tide
#

yayyy got quoted for my remarkable idiocy-

lucid iron
#

The reason why i think it's better to "not edit" is bc the config isn't something that will change frequently

#

I dislike having a no-op trigger action entry blobcatgooglyblep

autumn tide
#

yeah :(

#

heh making thing for configurably increased difficulty to befriend krobus/dwarf

#

with 3 levels

lucid iron
#

If u have a lot of trigger actions dependent on the same config you can always put those behind 1 include

autumn tide
#

hmm?

lucid iron
#

So that you only need to write the When one time

autumn tide
#

uh huh!

merry river
autumn tide
#

ALSO chu I probably asked this before, but what pronouns do you use?

brittle pasture
lucid iron
brittle pasture
#

if you wanna switch to using a menu, follow the menu guide + example

#

the menu would call the existing map actions you've been using

#

tl;dr switch the map action over

golden basin
#

i just dont understand completely yet ill try to read it again

#

im wanting to put my builder, the supply shop and the geode breaker thing all undder one menu

#

and im just confused by how to link my already made shops in with the new feature

lucid iron
#

But in general gsq is just a string so if your config token resolves to the right string it'll work

lucid iron
autumn tide
#

gotcha :)

golden basin
#

Oh WAIT I see okay its starting click

dawn moth
#

Anyone know if the Volcano paths items (Button and Door markers) work outside of the volcano specifically? Wondering if I can use them elsewhere

calm nebula
brittle pasture
dawn moth
#

Ah heck, fair enough; I'll just do it through a map edit I suppose then. Thanks for the help Handknit

brittle pasture
#

but yeah see the example below

lucid iron
lucid iron
dawn moth
#

So it'd still function as the same type of gate mechanism that exists in the volcano dungeon areas, or most accurately the volcano entryway with its button to open that gate which leads to the caldera

autumn tide
#

so. does this have any chance of working- I'm mostly screwing around rather than coming up with final draft code and I wanna know if I did this correctly (good to have knowledge for future shenanigans) SDVpufferwoke

lucid iron
steel compass
#

Hi guys how do I start making mods i think I need content patch as I wanna tinker with bundles I checked it out on the wiki and I think m it’s the content pack one, but what do I do? Don’t wanna ramble but I’m autistic and struggle to understand things some times, is it like an app I can use to make it all? I wanna muck about with bundles

dawn moth
lucid iron
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.

lucid iron
#

You will have to write the json

steel compass
#

I wanna make new ones

steel compass
autumn tide
#

mhm!

steel compass
#

Where do I write it

autumn tide
#

check out the guide thing in the command :)

lucid iron
#

!unpack

ocean sailBOT
#

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

lucid iron
#

Take a look at the vanilla bundle data first

steel compass
#

Ok so I unpack the file add what I want and then it works?

autumn tide
#

unpacking lets you look at the game's files, so you can learn how the game does things

#

it does not edit the game

lucid iron
#

Yeah it's for reference purposes

autumn tide
#

-# (oh thank god I thought I got something wrong LOL)

steel compass
#

How do I add stuff then

autumn tide
#

that can come later, best to see how the game does it first to understand the sort of thing you'd be writing

lucid iron
#

To add stuff you need to write a content patcher json

steel compass
#

Where do I write that

lucid iron
#

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

lucid iron
#

A json is a kind of plain text file

#

But i recommend following the tutorial on wiki it's more in depth

steel compass
#

I see thank you so much this is very helpful

golden basin
autumn tide
#

oh hey fellowclown!

golden basin
#

its working so far except my smithing shop says cros not there but he is

lucid iron
#

Probably but what is the goal here

autumn tide
#

shenanigans

#

LOL, increased heart difficulty by reducing friendship points nightly

lucid iron
#

It seems like not a lot of reduction

autumn tide
#

and I wanted to add that ⁨{{Hearts:Krobus}}⁩ to hopefully make the reduction based on heart level

autumn tide
#

hmmm, I do have an extra difficult version too

brittle pasture
#

you don't actually need each entry to be different NPCs, if you thought that's what the example did

lucid iron
#

You can probably do some {{query}} stuff if u wanna maff

golden basin
#

everything else works tho

autumn tide
#

all of the examples are in ⁨when⁩ things iirc

lucid iron
#

It's hard to answer will this work in vacuum because idk what the goals are Dokkan

autumn tide
#

got ittt okay

lucid iron
#

Better to just test in game

brittle pasture
brittle pasture
#

OpenBlacksmithShop⁩ takes a shop ID like regular shops

golden basin
#

ooooooo so blacksmithshop should be my shop id

brittle pasture
#

"{{ModID}}_SmithingShop"⁩ in this case

#

yep

golden basin
#

thank you so much

dawn moth
#

This is something that needs a small MapEdit right? I've seen other farms with a map patch for right under the greenhouse, just wanted to be sure

spice inlet
#

could you show your layers in tiled? idk how 1.6 handles it but iirc in 1.5 it would expect a layer called untitled something and would grab the tile from thefe

lucid iron
#

Nah this is cus your untitled tile sheet is not the untitled tile sheet

spice inlet
#

kinda hardcoded

lucid iron
#

It's gotta be spring_outdoors or u die ukimasu

dawn moth
#

Noted, I'll update the name then; mine isn't named spring_outdoors, though I believe my current vitality is positive

autumn tide
#

heheh love the user SMEPI SDVkrobusgiggle

lucid iron
#

You can check the vanilla farm tmx to make sure

dawn moth
#

Alright, I've updated it to spring_outdoors

#

Though it needing to be that specific is slightly terrifying

lucid iron
#

It's just a little bit of hardcoding

lucid iron
#

Iirc Maps/spring_outdoors is the tilesheet asset with the right tile at right position

#

Best to double check with a vanilla farm map in case I'm wrong

golden basin
#

{ "Id": "Blacksmith", "Name": "Smithing Service", "Action": "selph.CustomBuilders_Open {{ModID}}_SmithingShop none 900 2000 4 8 5 5", "MessageIfFalse": "Cro ain't here right now!", },

#

liek this right?

brittle pasture
#

hmm what if you remove all the params but the shop ID

#

also since all the shops are run by one person you don't need the time/direction/area for the sub entries

golden basin
#

oh okay

brittle pasture
#

oh wait I see it

#

selph.CustomBuilders_Open
should be ⁨selph.CustomBuilders_OpenBlacksmithShop

golden basin
#

oh so one word?

brittle pasture
#

⁨selph.CustomBuilders_OpenBlacksmithShop⁩ {{ModID}}_SmithingShop

golden basin
#

ooo

west thunder
#

@mellow laurel horse

#

Now, what about the sound?

#

Also, what's the format nowadays? 2.8.0?

mellow laurel
#

just leave the Motorcycle(SMAPI) folder as is, don't combine the two

#

2.9.0

west thunder
#

2.9.0?

#

Since when?

#

Do I need to update my existing mods too now?

mellow laurel
#

since content patcher is 2.9.0

uncut viper
#

the 11th

west thunder
#

Oh god, do I have to go through all of my mods now?

lucid mulch
#

you only need to uplift the format version if you plan on using newer features added in the versions since

uncut viper
#

Some new mods may require the new feature added but it won't matter for most

west thunder
#

Oh, so I can just keep 2.8.0 as is unless there's a new update for the individual mods, right?

uncut viper
#

The format mainly is there so content patcher can migrate old mods if it needs to. But it doesn't always need to

lucid mulch
#

old format versions are always going to be supported, with the only asterisk being pre 2.0 formats being assumed to be 1.5 mods and so extra migration logic runs as a result

west thunder
#

Do I keep them?

mellow laurel
#

yea, those are fine as is

#

just tested it, it is a very cute mod SDVkrobusgiggle

west thunder
#

Still don't know whether the engine sound actually sounds good or not because I don't know how long the galloping sounds for the horse are.

soft lance
#

For the TargetField, in terms of maps, is it possible to target multiple maps, as long as they follow a pattern?
I am attempting to add support to "Gem Isles", a mod that generates new maps, such as aedenthorn.GemIsles_GemIsles_1_1, aedenthorn.GemIsles_GemIsles_0_1, 0_2. all depending on direction.

I wanted to target all maps that have been generated with aedenthorn.GemIsles_GemIsles*, I do not know if this logic exists, nor if it checks multiple maps and applies it to all that match, and updates oftently (since this mod lazy generates maps, so aedenthorn.GemIsles_GemIsles_1_3 wont exist until you get there by crossing aedenthorn.GemIsles_GemIsles_1_2)

uncut viper
#

not possible

soft lance
soft lance
# uncut viper not possible

last question,

⁨```python

"{{ModId}}_SeaTurtle": {
"Id": "{{ModId}}_SeaTurtle",
"ItemId": "(O){{ModId}}_SeaTurtle",
"Condition": "LOCATION_Season Here Spring Summer"
},


When adding a pre-existing fish to a vanilla/custom map, but that map has both freshwater and ocean do i just add this property:

"Location": "Ocean" to it?
uncut viper
#

i have no idea how fish stuff works so dont look to me for answers SDVpufferthumbsup

soft lance
#

a few modded locations (blue vineyard from SVE) has both freshwater and ocean-like water at the bottom

lucid iron
#

if they used LOCATION_FISH then they can fetch fish from another map

soft lance
#

thats why i wondered if me adding fish + making its location Ocean would target specifically any area body of water that is like an ocean

#

again, i am uncertain, just guesses

hallow prism
#

Try look at how vanilla does stuff in farm beach or in forest maybe

soft lance
#

It seems how SVE handles it is that it manually adds the fishes in, but seperates it with the "FishAreaID": "Ocean", property, which appears to be working flawlessly, same goes for "FishAreaID": "River", if your fish is suppose to go into any body of water with that property value

#

yay

celest knoll
#

in this example, is 305/306 fixed for any question or can you use any numbers?

#

or does it have to be unique in the game or something

autumn tide
#

you should use something prefixed with the ⁨{{ModId}}⁩ token

celest knoll
#

so would it be {{ModId}}_the number?

devout otter
#

(You don't need to use numbers, even)

finite ginkgo
#

Assuming you would like to check if a specific answer was chosen later on, you'd want it to be unique, which {{ModID}} guarantees, it doesn't have to be/have a number, it can be anything

round timber
#

id recommend using a descriptive string, like, for this example, {{ModId}}_summer_Fri

celest knoll
#

i see, thanks everyone :)

#

do i use 2 different values? since the example has 305/306, should i do {{ModId}}_something/{{ModId}}_something else? or does it not matter

round timber
#

yes

#

yes to two values i should say

vernal crest
#

You can use different values if it's important to track which answer is chosen, or the same value if it isn't.

celest knoll
#

alright, thank you!

calm nebula
#

Psst if it isnt necessary to know the choice later, $y is so much easier to use

vernal crest
#

But do be aware that there's no friendship changes with $y

devout otter
#

If only ⁨$y⁩ can contain ⁨$action⁩. 😔

tender minnow
ornate locust
#

Uh, Photoshop just tells me the coords my mouse is at, so I do that when I need them. gimme a sec

#

Regular brown egg or big brown egg?

#

I assume regular but double checking

tender minnow
#

the regular lil one

ornate locust
#

192 112

tender minnow
#

ill try that! thank you!

tender minnow
ornate locust
#

Looks like it and hay swapped?

tender minnow
#

looks like it. weird

bold cairn
#

For editing text added by another mod, for simple short lines I can do fairly easily with Content Patcher e.g. editing the description of another mod's custom Power in the player's Power page.

However for an Event added by another mod, if the way they add their custom Event with Content Patcher is using references to other files in that mod's folder, is the only way I can make any edits to the text in that Event by fully copying out all the text referenced by the mod's Event, or is there some way to "transclude" text from their other files?

#

E.G. they implement their custom Event in Content Patcher with:
⁨⁨ { //Andy's special order event "Action": "EditData", "Target": "Data/Events/Custom_AndyHouse", "Entries": { "5407915/e 5404269": "kindadumbautumn/-500 -500/farmer 13 17 1 Andy 18 15 0/pause 1000/viewport 12 16 true/move farmer 3 0 0/move farmer 0 -2 0/pause 200/faceDirection farmer 1/pause 750/faceDirection Andy 3 true/pause 300/speak Andy \"{{i18n:OrderEvent.Andy.01}}\"/pause 350/globalFade/viewport -1000 -1000/playSound stairsdown/changeLocation Custom_AndyCellar/playSound stairsdown/pause 500/warp farmer 8 5/warp Andy 6 5/faceDirection farmer 2 true/faceDirection Andy 2 true/viewport 7 7 true/pause 1800/emote farmer 16 true/pause 1250/speak Andy \"{{i18n:OrderEvent.Andy.02}}\"/pause 750/faceDirection Andy 1 true/pause 600/faceDirection farmer 3 true/pause 500/speak Andy \"{{i18n:OrderEvent.Andy.03}}\"/pause 500/move Andy 1 0 1/pause 400/shake Andy 500/showFrame Andy 37/pause 250/playSound newRecipe/showFrame Andy 38/pause 500/showFrame Andy 37 true/pause 200/move Andy 0 0 1/pause 300/playSound reward/message \"{{i18n:OrderEvent.Andy.04}}\"/pause 250/emote farmer 32 true/pause 500/friendship Andy 250/globalFade/viewport -1000 -1000/stopMusic/pause 1000/end dialogue Andy \"{{i18n:OrderEvent.Andy.05}}\"" } },⁩⁩
The text I want to edit is just a single number within the text of i18n:OrderEvent.Andy.04.
Is there some way I can indicate to Content Patcher that it should look in the i18n folder of a specific mod, instead of my own, in order to keep these references e.g. {{i18n:OrderEvent.Andy.01}}? Otherwise it seems I must I fully transcribe the contents of i18n:OrderEvent.Andy.01 - 0.5, which seems a bit overboard, and possible might screw with translation?

uncut viper
#

You can edit individual sections of an event script, though its fragile as it can be broken easily if the other mod changes their event at all

tiny zealot
#

you cannot edit other mods' i18n data, though, since the game never sees it and content patcher does not expose such a thing

uncut viper
#

If your patch runs after theirs (via dependencies or load order or what have you) then those i18n tokens have already been turned into the actual text

tiny zealot
#

to modify a line in an event using i18n like this, you will have to provide your own copy of the line but with the change you want

bold cairn
#

Yeah I can successfully edit the text in the event currently, but right now the way I'm doing it requires fully transcribing all the text which seems a bit overkill.

tiny zealot
#

i suppose you could try to textoperations it

#

really it's just a different flavor of brittle at the end of the day

bold cairn
#

Yeah that's fair. I suppose the way I'm doing now, if the other mod does change things, the end user won't see those updated changes but at least the version they see will be a working one

#

Vs. me trying to just edit part of it

uncut viper
#

Well, no, if they change their event then your edit will just kinda break it

#

Because your patch would still run

#

It'd just then be editing the incorrect line

#

(This is assuming the changes they made to their event affect the order/number of lines leading up to the edited one)

#

There's no other way to identify which line you want to edit in a slash delimited string other than its number i.e. you want to edit the 7th section of the event

bold cairn
uncut viper
#

So if they update it and its no longer the 7th, then... yknow, issues

vernal crest
#

And then you can find the coordinates of the top left of that frame

uncut viper
vernal crest
#

I prefer TextOperations because if the event gets changed so that line doesn't exist anymore (in that exact permutation), your edit just won't run rather than still editing the (now incorrect) 7th field.

bold cairn
# uncut viper No I mean like if you are editing the 7th section of the event (after you split ...

Ah OK I think I see.

That's not the current way I'm editing it, currently I am completely replacing the ⁨⁨⁨"5407915/e 5404269"⁩⁩⁩ Entry with my own. But as part of doing so I am also transcribing in the actual final text in place of things like ⁨⁨⁨{{i18n:OrderEvent.Andy.01}}⁩⁩⁩

I was wondering if there was some way I could retain the references such as ⁨⁨⁨{{i18n:OrderEvent.Andy.01}}⁩⁩⁩ in my replacement Event, but its seeming like just fully replacing it like I'm doing now might be the simplest method.

uncut viper
#

If you are not editing a base SVE event, you need to make sure you have permission to do that

#

You're not allowed to just copy their event back in in your own mod without permission, as you didn't write the event, so it is not yours to redistribute without permission

#

You can use another mod, Cross-Mod Compatibility Tokens (CMCT) to use i18n from someone elses mod, but I would try the text operations or specific fields methods first

devout otter
uncut viper
#

For their patch, the fact that its i18n is irrelevant since the token would already be resolved

devout otter
#

I mean like, if it has multiple languages?

uncut viper
#

Likely not, since for TextOperations to work you'd need to provide an exact text to match on

#

Unless you specifically put in the work to make your TextOperations patch also change depending on language

bold cairn
uncut viper
ornate locust
#

and that's why I had to end up counting until I got to the single field I wanted to replace in an event and it sucked

bold cairn
vernal crest
bold cairn
#

I tend to need to update my compatibility patch for big changes to their mod anyways, so wouldn't be a huge extra work for me to need to keep an eye on this Event edit to keep it up to date with the other mod

uncut viper
#

I mean if you have their permission to just rewrite the whole event, that'd definitely be easiest SDVpuffersquee It's just that you can't assume to have that permission

ornate locust
devout otter
ornate locust
#

So what's coming in 1.6.16 that'd get around that? I thought being able to replace the i18n key might do it but if it resolves first, that's not going to help

devout otter
#

To my understanding, it gives the dialogues within events their own keys. So yo can just reference the key.

ornate locust
#

I just hard counted on this one because I don't know of anything else that'd change this event, and I needed to replace text

devout otter
#

(It doesn't work with moded events that don't do that, obviously.)

ornate locust
#

So it might not help for vanilla events unless they also add that.

uncut viper
#

They are consolidating the vanilla events

#

Every event will just have one Event now not Event, Event.ja-JP, Event.de-DE, etc

devout otter
bold cairn
devout otter
#

On the flipside, it would probably kinda break any current mod that edits vanilla events.

uncut viper
#

ReplaceDelimited can work if what you're trying to replace only shows up first, last, once, or you don't care if every instance of it is replaced

#

Edits to vanilla events shouldnt break

ornate locust
#

Oh like with strings?

devout otter
ornate locust
#

I mean, they wouldn't be using the content patcher {{i18n}} stuff, so it's not a token, you're replacing something stored in a string or something

uncut viper
#

Forking is just deprecated, not being removed

#

I see what you mean now though,so it depends then

#

If someone was editing a single line in vanilla then it probably will break the events but if they were replacing the whole event then theyre safe, I thought you only meant the latter, my bad!

devout otter
ornate locust
#

yeeeeeessssss

#

excellent

#

sorry, think I turned into Beast Wars era Megatron for a second there

autumn tide
#

I'm happy they're killing off event forks

#

also so cool seeing the new junis out and about aaa SDVpufferheart

dry forum
#

Guys.. would making a mod that displays fashion sense outfits on mannequins be too ambitious an endeavour for someone that has never looked at a line of code in their life

quasi dew
#

feeling super dumb. I want to add a new sprite sheet (or even just a single sprite) to the game. I know how to replace things, but not how to add new ones—do I just need to "load" it?

quasi dew
gentle rose
#

(I assume they meant doing so automatically with c#, which would be a little difficult actually but involve no art editing)

quasi dew
#

oh nvm then

#

I'm living in my little CP world.

dry forum
#

Wait tell me more about the content patcher option 👀

#

I wouldn't mind editing thousands of clothes 🤭

inland rain
#

I feel like this must already be a mod - showing chest contents on hover, but I can't find one

#

I've made this mod twice now (oops!), so I guess there must be a reason I didn't publish it the first time... does anyone know of such a mod?

haughty charm
#

There are mods that show labels on hover, but not the contents

#

At least not that I know of

quasi crow
#

Never seen one that does that personally. Not terribly in the loop atm though.

inland rain
#

that's it! now I remember lol

#

ty

haughty charm
#

I didn't know about that one! Thank you!

#

Interesting....mod details say it shows vanilla items; does it show mod-added items?

quasi crow
#

doesn't look like it. theres a bug report about it having some issues with books too

#

and showing modded items as weeds

brittle pasture
#

(if your version doesnt have those bugs then Id say it's worth uploading)

fresh tree
vernal crest
brittle sedge
#

Wrong place, sorry y'all

autumn tide
#

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

autumn tide
#

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

inland rain
autumn tide
#

ooh love your mods Erinthe SDVpufferheart

soft lance
#

Does anyone know how to make a data edit have a low priority?

#

or this is possibly some other issue

#

When editing fish for east scarp, it sadly says the map does not exist

#

however, once the game loads (which takes a bit), and I warp with the same name, its there, also whereami also shows the same data

#

i am oddly guessing that the mod is loading after ASF does, I dont believe there is another explanation I know of as of yet SDVkrobussad

vernal crest
soft lance
lucid mulch
#

you put the priority on the patch itself

soft lance
#

awesome alrighty

lucid mulch
#

the "affecting the whole mod" would be to have the false dependency thing in the manifest

soft lance
lucid iron
brittle sedge
#

Seems if I want a mod I love to work with 1.6 I need to update it myself. Does anybody have any general advice on how I could go about that?

inland rain
brittle sedge
vernal crest
lucid iron
#

But yeah maybe it just works/10 i dunno

brittle sedge
# brittle sedge A mod that replaces Clint

The Bye Clint, Hello Clarice mod to be exact. It was pointed out to me that it hasn't been updated since 2019, and it also doesn't work with SVE's Railroad Boulder Quest. Both things I intend to attempt to change

vernal crest
# brittle sedge The Bye Clint, Hello Clarice mod to be exact. It was pointed out to me that it h...

If this is the Clint to Clarice mod you asked about before, it's an easy fix to stop the error about the exclusive blacksmith file load (just edit the Clarice mod to add ⁨"Priority": "Low"⁩ to that patch on the line below the "FromFile" line). I cannot advise you about the railroad though because I'd need much more information about what SVE's quest is, in which way it breaks, if you get any errors in your log, etc.

brittle sedge
inland rain
brittle sedge
vernal crest
brittle sedge
#

Might work on trying to do that on the side as I learn more and get better at modding, but for now a quick fix will do

brittle sedge
#

"Action": "Load",
"Target": "Maps/Blacksmith",
"FromFile": "assets/Map/Blacksmith.tbin",
"Priority": "Low",

#

Hell yeah

inland rain
#

works with big chests too

brittle pasture
#

if you havent test with autograbbers and autofertilizer sprinkler attachments as well (they are cursed non-Chest BCs that have storage)

haughty charm
#

Also buildings, like the Mill, that have storage. I know VMV has one similar building

inland rain
#

it only works with Chests

haughty charm
#

I'll take it

lucid mulch
#

the fridge is sometimes considered a chest

inland rain
#

I've made it so it can also show if you just walk up to a chest, no need to hover

#

fridges are chests I think

haughty charm
#

I'm more concerned about my gazillion chests than my single fridge, so that's a huge boon, imo

lucid mulch
#

it was a way to cheese my AutomateChests restriction as I didn't restrict the fridge so you could use it to do automate early

inland rain
#

mini fridges are

#

the farmhouse fridge is not

ornate locust
#

you ever just...

#

start putting up fire extinguishers

uncut viper
#

shouldnt the extinguisher be somewhere away from the source of the fire SDVpufferthinkblob

#

are you also making a fire extinguisher furniture so i can feel safer in my own farmhouse too

ornate locust
#

Pelican Town Municipal sends one out actually. Has one of the wall ones in the shop

uncut viper
#

fire safety is now my number one priority

ornate locust
#

I saw someone say they went around town putting those in people's houses and I was like "actually that's not a bad idea"

#

the left wall kinda various with various mods, so I picked that spot to be more out of the way

brittle pasture
#

of every place that needs it the most marnie's ranch takes the top spot

ornate locust
#

Marnie's gettin one, yep

#

I'm opening up vanilla/SVE/LUTI side by side to place em

#

I've done soooo many compatibility bits for other maps, trying to avoid too many in this

#

(I'm sure some will still come up, but "just move it out of the way" is a viable solution for most of them at least)

#

sneaky floor one behind the counter (so many things touch the back wall). It's ready to protect the books

#

but also there's a fireplace in the museum so there's one on that end

devout otter
#

I am looking into this page and near the bottom there's a "Spouse dialogue" section. https://stardewmodding.wiki.gg/wiki/Changing_Generic_Dialogue:_NPC.cs_lines

Stardew Modding Wiki

This page can be used in tandem with the "NPC-Specific Generic Dialogue" page on the official wiki to change NPC.cs dialogue lines. The table aims to, as accurately as possible, describe the various conditions that the NPC.cs lines are triggered under, to hopefully make replacing them as understandable as possible.

#

Am I right in assuming that those would only fire if the NPC doesn't have ⁨⁨MarriageDialogue⁩⁩ data?

low marlin
#

How can we define custom children’s gender in an HMK content pack (as per the mod’s page, it is said that the Boy/Girl Modes will be ignored and “uses the gender defined by the content pack”)?

dusk mulch
#

is there a framework that lets CP mods add custom junimo bundles to their own locations?

devout otter
dusk mulch
merry river
#

would be weird if those got injected regardless but that's where my knowledge ends

vagrant grove
#

Has anyone set up Pathos mod building thing yet?

royal stump
merry river
#

oof

royal stump
#

the "kitchen tile is obstructed" will notably interrupt some other dialogue about childen/pregnancy and such

blissful panther
low marlin
royal stump
#

things like going to the patio or talking about kids have higher priority, but otherwise the unhappiness stuff works as mentioned

royal stump
#

a C# auto-build setup for github code, basically

#

(vs making and uploading your mod files manually)

merry river
#

oh, that's neat

devout otter
royal stump
#

and iirc Pathos is still working on having it do code-signing stuff so anti-virus doesn't complain about new versions

devout otter
#

But there's some like... the "kitchen tile is obstructed" one has ⁨⁨⁨⁨SpouseFarmhouseClutter⁩⁩⁩⁩ as its ⁨⁨⁨⁨Data/Dialogues/⁩⁩⁩⁩ equivalent. And in case of "heart less than 14" ones in Strings vs. the Good/Neutral/Bad lines in MarriageDialogues, which one gets decided?

blissful panther
#

Even Pathos wouldn't recommend using his thing currently though, anyway. It's still in development, so it's probably going to break as he updates it until it hits a solid 1.0.

#

And yeah, he's in the process of getting code signing set up for SMAPI!

lucid iron
#

psh i used it and it worked fine PecoSmile

#

but it's kind of eh if i cant go all the way to a gh release

blissful panther
#

Oh, does it not have a release step yet?

#

Yeah, it doesn't. I didn't even realise it didn't have that yet.

royal stump
soft lance
#

Helllo!

I was wondering if my categorization for my upcoming (in a month) 1.2 update is good, or should I make it more simple? Or shorter, just wanted feedback

Custom Fish Integration
(Hand-placed fish spawns & locations)

Stardew Valley Expanded (Fable Reef)
Grampleton Fields
East Scarp
Downtown ZuZu
Return to Mineral Town
Axolotl Village
Lilybrook
Ecosystem Superpack Expansion
Cape Stardew
Echo Reef
Northwest Coast

Compatibility Verified
(No conflicts, no overwrites, fully tested)

Ridgeside View
Sunberry Village
Lunna
Baldur's Village
Nature In The Valley
Dead Boy Detectives
Night Market Expansion
FIASA

blissful panther
#

I feel like this is where you don't want to be lax on the details!

vernal crest
soft lance
royal stump
# devout otter But there's some like... the "kitchen tile is obstructed" one has ⁨⁨⁨⁨`SpouseFar...

okay, so to oversimplify, the generic unhappiness lines are probably more likely just because the neutral/bad stuff is at the very end of everything

but the math for pulling a generic unhappy line is like:
int minHeartLevelForNegativeDialogue = 12; -1 if you gave them a gift yesterday -1 if you kissed yesterday
and then the random chance of it actually happening is ⁨hearts / that number⁩, e.g. 50% if you're somehow at 6 hearts with your spouse and didn't interact recently, etc

if you get past that and all the other dialogue keys, basically, it'll finally check the affection_random key, which seems really low priority

#

so for people who lose relationship with their spouses, I'd probably trust the spouse dialogue stuff to happen as documented there, short of really pouring over the math

#

(ps to clarify, it is more likely if you're low, so like 0 hearts = guaranteed generic complaint, 9/12 = 25%, etc)

devout otter
royal stump
#

I guess in practical terms, if someone sits at 10 relationship with their spouse without those interactions, there'd be like a 16% chance per day of loading a generic complaint line

#

not counting patio days and child-related stuff, etc

#

(also it takes a week after marriage to start checking some/all of those)

fierce vault
#

Anyone know why vscode does not let me keep my own json files open when I search for contents in another folder (content unpacked) and vise versa? I want to keep a vanilla event open while I build my own, but it doesn't want to let me do that, seemingly because of how opened the file?

#

I don't even have time to work on an event anymore right now after all the set up I had to do, but I'd like to fix the issue for when I will be able to again. 😅

west thunder
#

I wonder now.

#

Can I have textures for a monster loaded via the Load and Monster Variety way simultaneously?

#

I'm saying this because as far as I know, event and festival instances of monsters don't get their textures changed if they're using the Monster Variety method.

#

But I want my crackhead shadow brutes to show up in Spirit's Eve.

vernal crest
west thunder
#

Wouldn't that cause some conflicts in the system?

vernal crest
# west thunder Wouldn't that cause some conflicts in the system?

Yes I was serious. No it shouldn't cause any conflicts, it just doesn't show the vanilla textures when MV is working (unless you give all your variants conditions that mean that there's a chance none of them will apply, in which case the monster will be vanilla). Our mods are incompatible with regular monster retexture mods simply because MV stops the vanilla texture from being chosen usually, not because anything will break. If you're right that MV doesn't apply to festival monsters (which I've never thought to check) then the vanilla texture should just be used. Edit that vanilla texture and voila, yours is seen.

west thunder
#

Bet.

vernal crest
#

Nope.

west thunder
#

Thanks, bestie!!!

low marlin
#

Why are some crop sprites have 2 seed images (like this one from SBV (?) for example)?

How can I randomise the seed's appearance between those two?

vernal crest
#

All crop sprites should have two frames for the seeds, even if the sprites in them are the same. As for how to randomise between them - you can't control that at all. It's hardcoded based on the tile coordinates that the player places the seed onto.

lucid mulch
#

iirc alternative textures can be used to randomize textures for crop instances

shut edge
#

what in tarnation

#

why is this box so big

ocean sailBOT
#

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

subtle condor
#

Finally I did it XD I managed to change all the game's code to increase the total walnut count XD I consider myself the Nutman now SDVpufferthumbsup

proud wyvern
#

sounds like a lot of transpilers

subtle condor
#

Not at all, I did everything via postfixes and only some prefixes. It was surprisingly managable XD

proud wyvern
#

hopefully not bool prefixes!

subtle condor
#

Maybe like one of those. But dw, my mod is rather for personal use XD If I really decide to publish it, I'll look further into how to to stuff more safely

lucid iron
#

I thought u can just spawn golden walnut as ordinary item

#

I.e. totally possible to make a shop sell them

subtle condor
#

Unfortunately it's not that easy. Basically as soon as you have 130 walnuts, the game prevents you from actually obtaining any further walnuts. And then there's a bunch of other stuff like having to adjust the golden parrot oe changing the perfection tracker. And then there are some weird code snippets like for example the Island field Office doesn't give you walnuts for donations when you have 130 walnuts. Instead it gives you alternative items like a cooking set or tent set. And I added hints for my walnuts at the jungle hut parrot XD so a bunch of small stuff XD

lucid iron
#

Yeah there's one mod that adds a golden walnut plant

#

And it unlocks in the qi room blobcatgooglyblep

#

Sidestepping the problem AnnelieStare

subtle condor
#

Yeah, as long as you don't go above the 130 golden walnuts, you're pretty much free to go XD

lucid iron
#

The thing is i am pretty sure u can go above the number if it's a new way to gain golden walnut

calm nebula
#

debug fin walnut

#

(Jkjjkkjjjk)

subtle condor
#

Well, so basically there is only this code that actively prevents you from collecting more:
public void foundWalnut(int stack = 1) { if (Game1.netWorldState.Value.GoldenWalnutsFound < 130) { Game1.netWorldState.Value.GoldenWalnuts += stack; Game1.netWorldState.Value.GoldenWalnutsFound += stack; Game1.PerformActionWhenPlayerFree(showNutPickup); } }
And this is super easy to edit. So if you ignore the golden parrot and the perfection tracker thing, I guess it is fairly simple to go above 130. I think the only actual gameplay problem would be that you might not be able to collect the walnuts from the field office. Might be fine though if you add a way to infinitely get them

#

I don't know though when this code gets triggered. Meaning, you might be able to not trigger it if you could harvest them from a plant or buy them from a shop or something. I only know that ⁨⁨debug item 73⁩⁩ (the walnut id) and collecting it on the map triggers that code

lucid iron
#

I can see how this holds the stat but yes but it doesn't prevent you from getting the item itself (if it's spawned)

#

Do correct me if im wrong here Dokkan

celest knoll
wraith bay
#

saw this post announced this morning on the nexus mod authors discord, wanted to drop it here for fellow cheetos who might not keep an eye on all that. this'll probably not effect 99% of people, but if you have anyone reporting update issues in the next few weeks it'll probably be good to know this is going on/report on it while they make this change to update chains

vernal crest
lucid iron
#

It's probably not very visible in sdv cus smapi has a separate update check

subtle condor
# lucid iron I can see how this holds the stat but yes but it doesn't prevent you from gettin...

I don't know either how exactly it works, but as far as I understood correctly, the game basically triggers the function OnItemReceived and if you have the case of (O)73, meaning the walnut, the game calls the function I sent in earlier and removes the item from the inventory again. So I think it might always prevent you from obtaining it, no matter what, because it works as soon as the game tries to put it into your inventory. So under normal circumstances, I think you might actually never be able to obtain more than 130 (You can only get multiple in one go to get above 130)

wraith bay
# lucid iron What does a bad update chain cause rn?

well per their visualization, if you got updated onto the 1.3.1 branch and the cheeto updated branch 2.0.0 you might not get an update notification in vortex/mo2 (significant bc a lot of esl users use mo2 based on my interactions with the translators). obviously smapi would still spit rhymes, but it would require the user remove their copy of the mod and reinstall to the new branch. its a real pain in the pattootie when you run into it

#

for the user it can just feel like 'omg why do i have to go to website, mod managers suck it should just do this'

lucid iron
#

Yeah I am the type who don't mind doing that Dokkan

#

And put up github releases too

wraith bay
#

i think this is a good change, but i think it only really comes up bc the nexus upload ui is so weird. having a ui solution where you can adjust the chains after upload will be net positive for sure.

lucid iron
#

So far i think i have done the update chain correctly? maybe??

#

I thought the upload new version button is just shortcut to move the prev file to old version after upload lol

wraith bay
#

i can tell you that most people (myself included) fuck it up fairly often. the fact that the replace option is not on by default is a little :\

#

i think the convenience layer is how most authors experience it, but yeah there is more going on behind the scenes. i think they overcomplicate the file system, but i have a limited scope ya know? other games have other needs im sure.

vernal crest
#

I always have to do it, then go check the mod page, then go back and fix it if I've messed up lol

#

(Though I can't say whether I think this upcoming change is any better because I don't have permission to see the post xD)

wraith bay
#

I think you should be able to if you're logged in? You might need a mod author flag on your account but not afaik

#

If you still can't lemme know and i'll ask picky to fix tho ❤️

blissful panther
#

Seems like a good change overall, though!

vernal crest
#

I spend too much time faffing around and not enough time actually releasing mods lol

wraith bay
#

haha ahh that might be it then. i think you probably have the gist of it from what's been said here tho.

vernal crest
#

Yeah and I'm sure it'll get discussed more as well

wraith bay
vernal crest
#

Thanks! Seems good to me. We can still have separate AT and CP files in the same mod page etc, there will hopefully just be less of the "there are 3 different main files and they're all different versions of the same mod, why???" - maybe?

blissful panther
vernal crest
#

Maybe I can show them how many people's mod page credits sections I'm in and they can make me a special role /j

verbal narwhal
#

Mhmmmm. Probably a very obvious superfluous question: but moddata/global app data is also synched in MP right?

celest knoll
#

nvm figured it out

brittle pasture
#

if you mean modData the net field on the game's various types then yes it's synced

patent lanceBOT
verbal narwhal
lucid iron
#

Each farmer is a different entity so they have different modData and you can read another farmer's modData by acquiring their instance first

#

Global app data is completely local to each client

verbal narwhal
#

Ohh nice, mod data it is then, thanks!!

calm nebula
#

Just fyi since farmer sync is a bit different

#

Things off of farmer are special in that each farmer can write to themselves

#

And host can write to an offline farmer

lucid iron
#

if the data isn't something that needs sync constantly I usually just use multiplayer mod message

gentle rose
gentle rose
subtle condor
zenith schooner
#

Hello, does anyone know how to create a custom NPC?

calm nebula
#

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

celest knoll
#

is there any reason why the game wont load in my dialogue?

#

theres nothing wrong with my code and i cant patch export it either

gentle rose
#

can we see your code?

#

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

celest knoll
#

dialogue or content

gentle rose
#

both

tiny zealot
celest knoll
#

i haven finished all the dialogue yet... if that affects it?

gentle rose
#

minor unrelated note but you have a typo in acceptbouqUet (that u is missing)

celest knoll
#

oop

gentle rose
#

and you’re sure the dialogue json is in assets/dialogue/dialogue.json? and have restarted the game?

celest knoll
#

yup

#

for resttart do you just mean exit n repoen

#

ive tried a lot, it hasnt worked

gentle rose
#

hmm, strange. can we get your smapi 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.

celest knoll
#

alright

#

oops

#

i didnt mean to do that

ocean sailBOT
#

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

gentle rose
#

and you’re sure the file is saved and the version you’re editing is the one in the mods folder, right?

celest knoll
#

yep..

#

if i have marriage dialogue and schedule blank, it wouldnt cause any errors?

#

would other mods affect it?? i have custom fixed dialogue downloaded

#

ill try removing other mods and trying again

#

nope still doesnt work

maiden citrus
#

hey, does anyone know the best method to return all of the non passable tiles for a specific area without iterating through each tile to check?

gentle rose
#

I’m not sure there is one, what are you trying to do?

maiden citrus
#

im trying to create a path for automating, i just want to be able to check what paths are not blocked before moving to a tile, instead moving to a tile and being unable to move

tiny zealot
#

have you tried asking the pathfinding code to do it for you?

#

but at any rate that code checks the tiles as it goes, there's no stored collection of passable/impassable tiles that i know of

maiden citrus
#

I didn't know that there was one SDVitemblobfish

#

thank you

#

although i think that might not work because it doesn't include mine levels? is that correct

tiny zealot
#

as long as the map is loaded it should work. check out PathFindController.cs for how to call it (you can make a new one or call ⁨.PathFind⁩ directly, but not sure which is best for your situation)

lucid iron
#

You can do a BFS tho

gaunt orbit
#

Hey @lucid iron you were the one who posted that cp pack spoofing thing, right?

ornate locust
#

and now the new fire extinguisher positions have been tested and confirmed showing up~

#

Fire safety be upon ye

uncut viper
gaunt orbit
uncut viper
#

that example was specifically trying to be a Content Patcher pack, so it has to run before Content Patcher calls GetOwned() to get its packs

#

since CP does that only once

#

itd probably vary by framework

gaunt orbit
#

Ah, I see.

uncut viper
#

But since I had to harmony patch GetOwned() anyway which can be done in entry it shouldnt matter

gaunt orbit
#

So if I wanted to add packs to cp arbitrarily, I'd have to fuck with the internals

uncut viper
#

Well, with SMAPI's internals at least, since GetOwned is a smapi thing

#

But otherwise yeah, the only way to do it is by somehow getting it into its ContentPAckHelper's ContentPAcks list

#

or array rather

gaunt orbit
#

I mean I'd have to bypass standard packloading altogether, since cp wouldn't recheck it

uncut viper
#

Recheck it how, like for patch updates?

#

It did that fine iirc

#

Or were you trying to like, add a mod at runtime

gaunt orbit
#

I was investigating the possibility of adding mods at runtime, yes

uncut viper
#

then yeah thatd be very heavily dependent on the framework in question

#

and for CP would involve mucking about in internal code

#

You could try just invoking CP's GameLaunched stuff again

#

I didn't try that bc for me I was just trying a more general framework-agnostic proof of concept

#

But I don't know how much stuff would be broken by just calling it all again. Maybe a lot, maybe not?

gaunt orbit
#

I've been tinkering with my cp gui tool again and was trying to determine if there was a way to simplify or avoid altogether reloading the game when it's created at runtime

uncut viper
#

Is the tool for making mods, or using them?

gaunt orbit
#

I'm not like dead set on it or anything, just exploring ideas

gaunt orbit
uncut viper
#

Hm

#

then while it wouldnt work for config or dynamic tokens, would it be good enough to just get away with reusing a dummy content pack you added at GameLaunched?

#

Like do the same thing I did in that snippet chu showed you, but then make that dummy pack point to whatever files you want, then invoke a ⁨patch reload

gaunt orbit
#

That's an interesting idea

#

It would limit the user to a single new mod per game launch, but that might be sufficient

uncut viper
#

have you ever felt the desire to work on multiple different mods in a single game launch? SDVpuffersquee

#

working on them simultaneously at that, not just shifting gears to a different mod entirely

#

i think its fine

gaunt orbit
#

Yeah, I might do that

#

Seems like a good solution

lucid iron
uncut viper
#

how did you get around needing to relaunch?

lucid iron
#

I didn't

#

I just had ui that said "relaunch game pls"

#

Because it seems better to test the mod as a real mod and avoid any issues induced by C# fuckery

#

But smithy is meant to produce a regular content pack that works without smithy installed

gaunt orbit
#

I wish c# had a way to relaunch that wasn't just "start a new process and hope there's no resource locks"

lucid iron
#

If u don't intend to have regular content pack as output then runtime make a pack is nice for avoiding filesystem shenanigans

uncut viper
#

myself, though, i love C# fuckery

#

my preferred code to write is stuff that makes someone go "what the fuck"

gaunt orbit
#

I do too, but this is already a complicated project, and cp hackery would only make it worse

uncut viper
#

yeah but you're making an aforementioned mod making tool

#

so you have an excuse, so i wont revoke your c# fuckery license

lucid iron
#

Wren ur thing is going to just run game in the bg right

#

Without being a mod itself

gaunt orbit
#

Another thing I could potentially do is NOT load the mod at all and just replicate the content edits with c# pipeline stuff

gaunt orbit
#

It was originally standalone

#

But I figured everything would be easier if it had direct access to game data instead of having to duplicate it

lucid iron
#

Ah then a lot of the choices you face are similar Dokkan

#

After actually doing the whole thing i think being able to kill and start the game again is actually pretty important

patent lanceBOT
lucid iron
#

I avoided dynamic tokens entirely because i knew i wasn't gonna be able to reload that

#

But the goal was "user never need to know about the json" so that was fine

gaunt orbit
#

(bootleg in that it's not a proper source generator, it just reads the classes with reflection and prints cs files)

uncut viper
#

i dont have any questions about that

#

seems reasonable

lucid iron
#

I do want to go back n add more options to smithy but the thought of ux hell again so soon is stopping me

#

Also cus I feel like i overfit the ui for furniture blobcatgooglyblep

gaunt orbit
#

going back through my code and I forgot about this lol

lucid iron
#

What is scope of ur ambitions wren?

gaunt orbit
lucid iron
#

Exciting

gaunt orbit
#

I don't want to do npcs because they are SO complicated

lucid iron
#

I think stuff like machines is really hard to do without teaching user some bit of the structure tho

uncut viper
#

if you leave a C# modder alone long enough eventually they will make a tool or perhaps some sort of device or helper

patent lanceBOT
lucid iron
#

It's like shelf fungi

uncut viper
#

i love being compared to shelf fungi, thank you

lucid iron
#

Well the tool is shelf fungi while i am a decomposing tree

gentle rose
#

I will join you in being a decomposing tree

gaunt orbit
#

machines are pretty complicated, but I think they're kind of a necessary component of this kind of thing

#

otherwise you're limited to just crafting/cooking

#

or default recipes like wine

uncut viper
#

if you are a helper yourself, are you not both tree and fungi?

lucid iron
#

making-mods-koan

brittle pasture
#

for machines honestly having ability to specify input rules and output items is sufficient for 99.95% of use cases

#

also speaking of machines someone just reported the wackiest issue i had ever heard of with my silkworm racks and i dont even know how i would even reproduce this
(i use rather criminal, but still pure CP, methods of work animation/sheet index manipulation controlled by the presence of a context tag on the output item, and my only lead so far is that AT/Automate/etc. is improperly resetting the sprite index somehow)

#

oh well, for now I'll file that under "works on my machine"

uncut viper
#

but your machine is the silkworm rack

#

so does it really work on your machine

old edge
#

Is there a swimming bug with item extensions mod?

hallow prism
#

no idea, but you may want to provide context

opaque field
#

Peeked into the fields of mistria modding channel and it made me so grateful we have all the tools we do. ❤️

#

So close to finishing my cream cheese modddd (I say, as I am aware I think I said this at least a week ago)

fierce vault
fading walrus
opaque field
tranquil surge
#

Is there a JSON validator for CFL files? Specifically the CFL_Map.json or Content.json files?
The pinned one is seemingly only for CP, Manifest, and Translation JSONs it seems.

brittle pasture
#

the json validator will check any json file you give it for validity

#

what it doesnt do is check that you're using the right fields

wary merlin
#

Hi! I'm completely new to modding stardew valley and currently reading all the docs on SMAPI. Since I'm not so familiar with how stardew valley works just yet, I wanted to ask if it even was possible achieving what I want, which is making a custom clothing/equip slot for a custom item type?

#

Does SMAPI allow those kind of modifications?

brittle pasture
#

SpaceCore allows adding custom equipment slots

#

you do need to know some C# but SC does most of the hard work for you

wary merlin
#

That's great, thanks!

tranquil surge
# brittle pasture what it doesnt do is check that you're using the right fields

Hmm... Well I keep getting one SMAPI error in particular when trying to get my custom farm map working fully (read a LOT more of the wiki).

[Custom Farm Loader] At DailyUpdates[4] -> 'Type'
[Custom Farm Loader] Failed to parse cfl_map.json at 'DailyUpdates' in path:
[Custom Farm Loader] GrayFarm/cfl_map.json
[Custom Farm Loader] Requested value 'SpawnMountainFarmOreRect' was not found.

What I'm not understanding is that I very much have that value listed in the file it's pointing to, yet for some reason it's not registering it? What am I missing/doing wrong?

#

I can post the json here if it can help me figure out what I'm missing too...

brittle pasture
#

feel free to post your code for more eyeballs on it, but Im not familiar with CFL

tranquil surge
#

Here's the code file. As far as I can tell from the wikis, this should be working...

brittle pasture
#

hmm I'm looking at the CFL wiki and SpawMountainFarmOreRect doesnt look like a valid type?

tranquil surge
brittle pasture
#

(there is SpawnQuarryRocks)

#

uh make sure you actually saved and reload the file?

tranquil surge
#

But this particular bug is eluding me...

#

Does the CFL Reload command not actually reload the content? Do I need to close the game and open it again?

#

... I'm a fool. lol
Seems the SMAPI command to refresh the content doesn't update to the new code.
Thanks for helping!

#

Ohp, nevermind. Still not working. Now my custom map isn't loading in correctly anymore... Goodness

fierce vault
opaque field
#

OOoh, that would definitely be awesome 😄

latent mauve
tranquil surge
#

I'm guessing it's something to do with the location of the map file, so I'm testing that out now..

gaunt orbit
tranquil surge
#

How much of my code would I need to change to get that working though? All of it?

gaunt orbit
#

Not much. There's a template on the wiki, and also on nexus mods I think

#

[[Modding:Farm_data]]

tranquil surge
#

Well, if I can't get this working in CFL with this next attempt, I guess I'll switch...

#

Wellp, still nothing is spawning, so I guess I'm swapping to CP...

pallid patio
#

For some reason when trying to add a door to my map, I cant get the cursor to interact with it even though everything on tiled looks to be correct

gaunt orbit
#

Like a warp door or an interior door?

pallid patio
#

interior

#

i have the action door property on the tile, which worked on my other map but for some reason on this one I can't get it to be interactable

latent mauve
pallid patio
#

yes

latent mauve
#

You need both Tile Property and the Map Property for doors to work correctly

#

Is your Action Door tile property on the Buildings layer?

#

And do you have the bottom tile of the door itself on the Buildings layer?

pallid patio
#

wait im a genius

#

i spelled door wrong

soft lance
#

When editing the target's fields, is it possible to define multiple maps, and change all of their "Fish" field? Or do I have to copy and paste this 5 times if i wanted it to be applied to 5 different maps

calm nebula
#

This seems like a great use for lcal tokens

soft lance
#

im just adding support for other mods to add my fish into them, and this mod has a lot of maps I wanted to add, but i didnt want to keep copying and pasting same code for each map

urban patrol
#

oh lucy you're here, i was just about to reply to a comment by you on nexus

#

you shouldn't be telling mod authors to make their format 2.8.0 instead of 2.9.0; you should update your content patcher instead

autumn tide
#

hellooo I may have fucked up one sec

#

!log

#

ohh yay it's not my mod!!

urban patrol
#

(claude, you can use commands in governors mansion for personal use to keep things clean)

autumn tide
#

-# oh shit sorry

urban patrol
#

all good, i just wanted to make sure you were aware!

soft lance
urban patrol
#

gotcha, i thought you were implying the mod being broken was the mod author's fault. glad to see you know what the issue is!

brittle pasture
#

You should always use the latest format version (currently 2.9.0) to enable the latest features, avoid obsolete behavior, and reduce startup time.

urban patrol
#

but yeah as selph says updating mods (especially pathos' mods, which are extremely stable) is always a good idea

soft lance
#

what's a lcal token? im very interested in it, it may help reduce repetitibe copy and pasted fish code for multiple maps

soft lance
uncut viper
#

Content Patcher 2.9.0 is not available for Android. If you care about Android support and don't use the new features from 2.9.0, you should stick to 2.8.0

#

(For PC users and PC only mods there is of course no good reason not to update as already mentioned)

soft lance
#

I tried this for the local tokens

#

the local tokens not entirely working just yet (im still learning them)

#

old version without it worked, new doesnt, im not entirely certain what i did wrong, but i am still learning how these local tokens work

lucid mulch
#

what did 2.9 do to break android compat

uncut viper
#

Android SMAPI doesn't have the new Mask mode for image editing

lucid mulch
#

right yeah it depends on new smapi and android is a fork

hollow dust
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 0 C# mods and 0 content packs.

lucid iron
#

looks like that stardrop issue

lucid mulch
#

wouldn't stardrop tell smapi to run on a different mod folder full of symlinks, that looks like a direct mods foler access

fierce vault
#

So, the stardew syntax extension is what will help me fix this nightmare, right? 😵‍💫

fierce vault
#

Vanilla events are so intimidating in their final form!

vernal crest
# soft lance

When you say it doesn't work, what do you mean is or is not happening?

urban patrol
#

i'm not sure if nomori's converter takes multiline events

fierce vault
#

Oh, that reminds me... should I be i18n-ing as I try to figure out the event basics??

vernal crest
#

Nomori's i18nifier works really well for events in my experience so if you're happy with how it does the keys or you're comfortable in how to find and replace the keys you can use that at the end

urban patrol
#

yeah i always i18n with the converter at the very end

vernal crest
#

Otherwise it probably is worth doing i18n as you go because it's a real pain to do it all manually at the end

autumn tide
#

hey! what's the console command to check the patches applies to a specifc area of the games code?

vernal crest
fierce vault
#

Thanks, that's good to know!

urban patrol
#

oh nice!

vernal crest
autumn tide
#

ALSO it's really cool seeing you green Abagaianye SDVpufferheart

#

that's the one! thank you :)

#

what would the asset asset name thing be? just the file path from unpacked content?

fierce vault
#

I have LINQpad on my desktop, which I remember being related to the i18nifier, so I'll need to figure that out again!

#

Thanks!

vernal crest
#

You shouldn't need LINQpad

fierce vault
#

Oh?

vernal crest
#

It's just a website you paste your stuff into

#

!converters

vernal crest
#

The first link in other tools

fierce vault
#

Ok!

#

Would it be a bad idea to wait to do the conversion until the very end with multiple events in the json? Because I'm likely going to tweak/change them in the future even after they are "good enough". I know it would mean testing all the events again at the end.

vernal crest
#

I recommend that you try using the converter sooner rather than later so you get a feel for how it works. It doesn't have to be with your event though - why not try it with a vanilla event so you can see what happens? You can use the Stardew Syntax extension to multi-line the vanilla event first and then run it through the converter.

fierce vault
#

Ok, thanks. I'll try testing it soon then. Just looking at the vanilla event's converted json would be good enough right?

vernal crest
#

Yeah

fierce vault
#

Off to event making I go (after a little more setup) then!

soft lance
#

No errors or anyrging either

lucid mulch
#

I should test a cursed method of doing multi-line events

vernal crest
dreamy cedar
#

Is there a best way to run time off the game clock? I mean advance the clock about 30-50 minutes or so. I'm guessing that just doing Game1.timeOfDay += 30 would cause mayhem somewhere...

ivory plume
dreamy cedar
#

ty!

lucid mulch
#

yay my cursed multiline event worked

#

(I don't actually recommend doing events like this, I was just curious)

vernal crest
#

Huh that's neat

ivory plume
#

(Fun fact: both the game and SMAPI's JSON parser support multi-line event scripts, if you don't mind your code editor yelling at you.)

lucid mulch
#

(I'm aware but I do care about the code editor yelling at me)

calm nebula
#

Thanks I hate it

lucid mulch
#

At least I went with the 213 ⁨/⁩ instead of refactoring it to be 213 instances of a TextOperation append

calm nebula
#

Thanks I really hate it

#

Instead can we adopt python strings in json

#

So does it work if u omit the 213 /

lucid mulch
#

you get 212 errors saying that each field failed because the index needs to be between 0 and 0

fierce vault
#

That's so much nicer to read, too bad the editor complains about itSDVpufferchickcry

lucid mulch
#

the only thing the editor dislikes about that sample is that its still format 2.7 as I haven't updated

fierce vault
#

Oh, wait, so it's not screaming at you for multilining specifically?

tiny zealot
#

this is a different kind of multilining

lucid mulch
#

nothing about it is invalid json, thats the whole point

red basalt
#

It would be great to have an extension on the moon that reorganized an entire Json file.

#

I want it to be properly tabulated

fierce vault
#

Ohh, so one might not even need the schema for multilining if you just structure it like that?

vernal crest
#

The schema doesn't prevent VSC from complaining about multilining, does it?

lucid mulch
#

the schema enables comments (maybe trailing commas) and the extra validation, but not multiline

vernal crest
#

I don't think it even allows trailing commas SDVpufferthinkblob

lucid mulch
#

actually this sample has a trailing comma and its fine

calm nebula
#

JSONC

#

Just set vsc to jsonl, cowards

fierce vault
#

Wait, I was confusing the stardew syntax extension with the schema lol

lucid mulch
#

jsonc doesn't let my debugger mod work because jsonc is hardcoded to not allow breakpoints regardless of other extensions or settings say

calm nebula
#

What about jsonl

#

Or json5, is that one an option

lucid mulch
#

jsonl doesn't show any syntax errors at all

calm nebula
#

Ngl sinz

lucid mulch
#

and json5 isn't available out of the box and the various extensions I found all kinda sucked last I checked years ago

calm nebula
#

Breakpoint in json scary haha

lucid mulch
#

I only even use breakpoints as a signal to encode what patches should be tracked as mods have too many patches

fierce vault
#

Well, I really like how you wrote that event

#

I want to see if I can do that too 😄

tiny zealot
#

i do not care for the sea of / or giving every line a direct index

lucid mulch
#

outside of the performance impact of forcing cp do the work of having to do all the string joining to make this work, its also kind of a maintenance annoyance to keep the ⁨/⁩ length in sync

fierce vault
#

So... it would be a bad idea?

#

I'm a complete event making beginner rn

lucid mulch
#

I used a lot of multi-caret editing to populate all the indexes, doing the units first in blocks of 10 then 20 and maybe 30?, and then did the tens/hundreds in blocks of 10

calm nebula
fierce vault
#

ok, i guess I'll use the multilining extension then...

#

I can't tell what's better or why at this stage 😅

lucid mulch
#

there is a vanilla debug command that natively reads from a multiline text file you can use for event authoring and at the end put it back into cp

brave fable
#

personally i just write multiline events in a text editor such as sublime with syntax highlighting disabled for the file

#

no corrections, but no errors

tiny zealot
lucid mulch
#

technically using the vanilla tools to do event authoring is the authors intent, doing in cp at all goes against ConcernedApes methodology

fierce vault
#

So this is sort of related to the extension, but do you remove the schema specifically from the files when you upload your mod?

gentle rose
calm nebula
#

Anyways bluebs u should do what the rest of us do

brave fable
#

make mods? oh no

lucid mulch
#

the schema doesn't need to be removed when uploading

calm nebula
#

Write a bunch of python to turn an excel spreadsheet into event script

tiny zealot
fierce vault
lucid mulch
#

SMAPi/CP doesn't care if its there or not, only the editor takes notice to it

fierce vault
#

Kay, thanks!

brave fable
#

oh wonderful, now there's an easy way to tell between irocendar and ichortower. now if only i knew which was which

lucid mulch
#

(also there is no difference between you locally running your mod while developing it, and an end user using it after downloading it from nexus)

calm nebula
#

Iro is the one who is willing to be a moderator

gentle rose
calm nebula
#

Ichor is the one with the good hobbies

pale river
#

iro made the cool tiled extension, ichortower made the cool events framework

fierce vault
#

thanks for answering my noob questions all time guys! :>

#

Mod making has been really fun for me 😄

brittle pasture
#

I should mention that I looked into allowing (Neo)vim's syntax highlighting to accept multiline JSON strings some time ago, and I wanna share my handiwork: ||there is none! I failed! naught remained after hours of work, not even my sanity...||

patent lanceBOT
uncut viper
#

oh, blueberry, i did the thing you wanted. now you just need to wait for the next stardewxnbhack update in however many months/years 😌

lucid mulch
#

I was originally looking into what would be required to get monaco editor to accept the craziness that is all the spec violations that newtonsoft doesn't care about to overhaul the json validator site and came to the conclusion its not happening

#

the closest I got in theory was aot compiling newtonsoft as wasm and just running it directly but effort

brave fable
#

how did you know i wanted you to turn an excellent shade of green

fierce vault
gentle rose
#

bike-or-flower

uncut viper
gentle rose
#

(rhymes with ichortower)

fierce vault
#

Ok, so it's what I thought!

calm nebula
gentle rose
#

afaik that's ichor's about me on discord SDVpuffersquee

calm nebula
lucid mulch
fierce vault
pale river
calm nebula
#

Why did I ask that I know it has a tokenizsr

#

I've used that tokenizer

lucid mulch
#

casey has the code crime title out of tenure, I'm just as willing to commit crimes

brave fable
#

eee-rock-un-dah of course

calm nebula
#

All yall criminals

gentle rose
#

(the word ichor is usually pronounced eye-core. irocendar has no canonical pronunciation because it's a keymash)

vernal crest
gentle rose
#

(but I usually go with eye-roh-send-ahr)

fierce vault
#

Alright!

#

So i was right I think!

fierce vault
calm nebula
#

Anyways

fierce vault
#

let's see..

lucid mulch
#

(it is cute listening to people pronounce my name, I think its mainly in 3 camps)