#making-mods-general

1 messages · Page 229 of 1

modern narwhal
#

Been MIA from modding for half a year or so and I just wanted to ask if there is a way now for Artisan Goods to benefit from multiple professions like smoked fish does

desert tinsel
#

Hello everyone, good morning. I would really like to create a mod that adds two new NPCs, but I don't know where to start since I'm a complete beginner when it comes to modding. This would be my first mod. What would you recommend, and where should I begin?KayFalida

vernal crest
# desert tinsel Hello everyone, good morning. I would really like to create a mod that adds two ...

!startmodding I recommend starting with a very little mod that just replaces an existing NPC's portrait or changes a line of their dialogue so you can get familiar with how Content Patcher works first - just a test, so just use a silly doodle or something for the image, not anything serious. There's a tutorial for how to make a Content Patcher mod in the links below. Then, once you understand the process of how to actually make a change in game, you can look at the official wiki NPC page and at the resources we have for making NPCs (which I will also link).

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.

vernal crest
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:

desert tinsel
vernal crest
hard fern
#

It looks like it's missing a lot of things?

dry flicker
#

how so?

vernal crest
#

The first three commands in an event are mandatory.

#

You do not have them.

dry flicker
hard fern
#

Why did you hide them?

dry flicker
hard fern
#

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

hard fern
#

You can share it easily with the parser

vernal crest
hard fern
#

It's important to show your full json to check for any problems

vernal crest
#

Have you checked that your event works with debug ebi whateverYourTokenResolvesTo_2?

dry flicker
#

SDVitembobo sorry for causing confusion

true coyote
#

so, Kaya deleted their love of cooking ui recolor -- what is the etiquette on making it compatible for the new release of LoC if I have the mod still and it just needs to be rearranged to meet the changes blueberry made on the sprite sheets?

#

personal use only? ok with credit?

gentle rose
#

don’t publish unless you have explicit permission

#

personal use is fine, publishing requires permission from Kaya

vernal crest
#

Yep, personal use only

true coyote
#

even if none of the original sprites are theirs? even the colors for it I think are others, such as vintage. Not trying to wiggle my way out, I'm just trying to clarify 100%

gentle rose
#

if you’re using their old mod, you need their permission. If you recreate it using existing assets, you’re good

true coyote
#

hmm aight

#

maybe I'll look at the other popular ui recolors

#

hmm well it looks like vintage interface at least has open permissions -- but the other ones are naver so I'll leave those be and maybe just put out a vintage interface one SDVpufferthumbsup

hallow prism
#

(and using palette of another mod heavily counts in needing permissions for me)

tropic walrus
#

Nobody owns combinations of colors lol

#

Go ahead and show me your copyright claim for Pantone 448 C

hallow prism
#

sure once you shows me your accreditation for asking for irrelevant stuff in a rude manner i'll do it 🙂

gaunt orbit
tawny ore
rancid musk
lucid iron
#

Like most things around modding it's about being polite isn't it LilyDerp

#

In Shiloh's case (blueberry made new assets for LoC that kaya didn't do) i think it's fine if only those new assets are posted

#

The practicality of this is questionable since kaya deleted their mod

rancid musk
#

It's about being polite, respecting other people and their wishes, respecting copyright, and having a basic understanding that a "collection of colors" is literally art like have they never seen a painting?

hallow prism
#

in this case yes it's more a courtesy thing, permissions can be used for a lot of different things, not all related to law/copyright

hallow prism
# lucid iron The practicality of this is questionable since kaya deleted their mod
KAYA in SDV

I made 4 recolor for match with some interface mods.몇종류의 인터페이스 모드와 맞추기 위한 리컬러 모드입니다. ▼필수선행모드 (Must need for use it) Content Patcher, The Love of Cooking ▼ 옵션모드 (Optional) Generic Mod Config Menu : Lets you edit the config.json in game easily!

#

(didn't test the DL but it seems to be here)

#

in case that changes anything to the options/approach

sour sleet
#

Wonder what the reasons are for deleting a mod?

lucid iron
#

Oh cool then it is worth doing then (assuming dl works)

hallow prism
#

in kaya's case

lucid iron
#

Note about only do new assets not covered still stands ofc

hallow prism
#

she was using assets made by other people (with permissions), nexus planned a change to prevent the ability to delete mods (they are still "available" for collections using them), kaya didn't want to lose the ability to fully delete if asked

sour sleet
#

That makes sense SDVpufferthumbsup

calm nebula
#

(I can see deleting/hiding mods if you no longer plan on maintaining them tbh. Incidentally, something I should do.)

latent mauve
#

I'm trying to be good about making sure my Laundry Machines mod is fully working for folks, but it's so hard to fix potential compatibility issues when users ignore requests for logs and then still ask "do you know of any incompatibilities"? SDVpufferwaaah

true coyote
# hallow prism its here apparently https://www.postype.com/@kayainsdv/post/10313018 ?

this is the old one from I think 2021 - however her blog doesnt have any like blanket permissions for updating. Most of her recolors in it were naver and im not going to poke that bear, but whoever has left vintage ui open has left blanket permissions for "asset" use which i assume also means the palette, so I'll stick to it (which is fine for me because I only use vintage)

lucid iron
faint ingot
#

Not me trying to give portrait modders a headache:

true coyote
#

so many pixels... in the LoC book sprites..

rigid musk
faint ingot
# rigid musk this is actually really cool though O:

Thanks! Portraits are by @sterile crescent - she had given me permission to include and edit them, I did some very simple recolors and when I showed them to her she loved the idea and did new custom portraits for all the color options.

gentle rose
#

(but in general, I believe combinations of colours are also protectable under trademarks, so they literally are copyrightable)

naive wyvern
#

theres also this as well
Many companies copyright/trademark colours all the time

#

its also why we have specific language when referring to specific colours
"Oh, thats Miku blue", "Facebook blue is different from Tumblr blue" etc etc

rigid musk
#

Creating palettes is also a pain in the arse at times

#

Like making sure colors look really good together is a true skill

naive wyvern
#

so asking for permission to ask to use a palette from a UI mod makes total sense

#

hiii lily

rigid musk
#

Hi >:]

final arch
faint ingot
drowsy pewter
tender bloom
#

potato poatato potatoto

drowsy pewter
#

Perfect solution

rigid musk
#

what it looks like when I search up something with the 1.5k mods that I have

brittle ledge
#

Reminded of a somewhat random question I had: what happens if you're dating an NPC that becomes unromanceable (i.e., some condition sets CanBeRomanced to false), would you just stop dating as if you never had been or would it cause weirdness?

brittle pasture
drowsy pewter
#

Oh SVE hahaha

rigid musk
#

that's a good question... I suppose you could test that with ... oh goodness what's her name from Ridgeside - I know she turns unromanceable if you go Joja

sour sleet
#

anyone know why my file paths arent saving in tiled? keep having to change them in text editor everytime i load my map in tiled SDVpufferwaaah

rigid musk
rigid musk
#

Yes!

#

Her name completely went out of my brain for a bit there oh my goodness

brittle ledge
#

I'm thinking about doing a workaround for the vanilla bug where FlowerDanceCanDance isn't working by making Jorts romanceable for a day

#

but since he's not actually dateable, I think I'll just make sure he rejects the bouquet

rigid musk
#

The only thing you need to toggle an NPC as romanceable a when condition right? Not an external mod? I was thinking that I would make it so that Qi is unlockable as a romance option instead of being romanceable outright as it would make more sense (to me anyways)

#

Also I would dance with Jorts at the flower dance forever oh my god

brittle ledge
#

Yeah, Wren will also be a toggle as to whether you want to romance her or not since she has platonic 10 heart events

rigid musk
#

idk why I didn't think about it before I ended up changing all of his non-romantic events to be below 8 hearts

brittle ledge
#

1.6 dispositions spoil us kyuuchan_nod2

rigid musk
#

I can always change them back but I had made it so that they had platonic and 'romantic' dialogue depending on the relationship the farmer has with him so making those the toggle wouldnt make sense at this point (and im also not losing the alternate events i worked hard on that dialogue)

#

I could always make more events

#

b_shiver eugh

rough lintel
drowsy pewter
#

They're scalding hot 😭

muted agate
#

Hello ! I'v got a problem while trying to setup a project. Dotnet tells me that I don't have .NET 6.0, but I just installed it, and when I list my sdks, it appears. Can somemody help me ? Thanks

#

Btw I'm on Zorin 17, so it's like Ubuntu 22.04, and I use vscode

rough lintel
#

oh speaking of amazing art, 6480, i may be contacting u about some … [sniffs quietly] commission ….. maybe …

drowsy pewter
#

Oooohh

#

Be forewarned though my waitlist is getting a littleeeee long

rough lintel
#

do u have a carrd or smth for info

rigid oriole
#

(in their bio)

drowsy pewter
#

Yeah feel free to check it out and dm if you have questions!

rough lintel
#

oh wtf it didnt load for me. oopies. thank u

lucid iron
#

try just sticking <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.2" /> in csproj

calm nebula
#

Not sure that dotnet add command is right tbh

#

I think dotnet new maybe to make an empty project first

#

Not sure either

#

Probably classlib for the template

gaunt orbit
#

yes, classlib for template

#

also don't forget to add the csproj to your solution

tribal ore
#

Is {{Spouse}} a reserved token? Would Characters/Dialogue/{{Spouse}} work for NPC spouses from other mods?

#

As long as "HasValue: {{Spouse}}": "true" ?

calm nebula
#

Yes

tribal ore
#

Woohoo! Alright, I'm in business then

ivory umbra
#

is there a way to iterate over keyvaluepairs in a dictionary with a random start point?

muted agate
lucid iron
sour sleet
#

When I change the image source in my tmx file to just paths.png for example, and then open it up again in tiled, the files cannot be found for all the tile sheets even though they have not been moved. All the map tiles are red, what can i do about this?

tender bloom
#

do you have paths.png in the same folder as your tmx?

#

changing the image source is equivalent to telling the tmx to look somewhere else, so it's basically like moving them

sour sleet
#

i'm changing the image source to be in the content unpacked folder so they're not being moved. do i need to include them in the same folder as my tmx? if i did that though, would recolours still work?

uncut viper
#

is your tmx itself inside your unpacked content folder?

#

the tilesheets must be in the same folder as your tmx, wherever it is, when you are editing the tmx

#

if they are vanilla tilesheets, you delete them before publishing the mod and the map will load them just fine

#

changing the image source without changing where the tilesheets are located IS moving where tmx is looking for tilesheets, only if you dont move the pngs themselves its now looking at nothing

sour sleet
#

Oh ok that makes sense. Thank you SDVpuffersquee

#

my tmx is not in the unpacked content folder so the tilesheets are not in the same folder

#

guess that's where i'm going wrong SDVkrobusgiggle

uncut viper
#

then you must move one or the other so that everything is in the same folder and fix your image sources inside the tmx at the same time to make sure all of your image sources are just the tilesheet names and no file path

ivory umbra
# lucid iron Elaborate on what effect you want to achieve

for my monster hutch framework i iterate over all the monster types in the data model to determine if they should produce overnight based on count and watered troughs. this would prioritize the monsters at the beginning of the list if there isn't enough water for all of them, so i'm trying to figure out how to randomize it

calm nebula
#

You have to copy to a list and then shuffle the list

#

Or array

languid aurora
#

Grab the keys from the dictionary, shuffle somehow, then go through your dictionary using the keys in that order

calm nebula
#

I might be misremembering but there is a shuffle method in Utility

uncut viper
#

if you dont care about random order but just random start point, you can also just iterate over the dictionary but continue if you dont pass an RNG check, save the index that you finally did pass the rng check (and stop continuing/skipping at that point), and then re-check the first ones you skipped after you do your initial pass

#

(assuming you have enough water to bother doing the recheck)

#

no list copying, no shuffling

calm nebula
#

(Tbh if you're like, let's make this fast! You might as well go into the stackalloc world)

#

You aren't actually gonna have that many entries

languid aurora
#

If it's just random starting point you can just get the length/count of keys in your dict, then use a random number to choose an index of those keys, then that key would point at an entry to start from

#

Basically there's any number of ways to approach this, just depends on how random you want

brittle pasture
#

unrelated to your question, I'm not quite sure how your hutch mod works, but why are you iterating over monster data instead of the monsters in the hutch itself?

ivory umbra
#

the data model has a field to set the number of that monster type required to produce, so i iterate over the monster types to count and compare the number watered to number required to produce to calculate amount of produce to drop for that monster type

ivory umbra
#

thanks for all the suggestions!
i think this will suit my purpose:

            var data = AssetHandler.monsterHutchData;
            var keys = data.Keys.ToList();
            var checkedKeys = new List<string>();
            while (checkedKeys.Count < keys.Count) 
            {
                Utility.TryGetRandom(data, out string key, out MonsterHutchData value);
                if (checkedKeys.Contains(key))
                    continue;
                checkedKeys.Add(key);
                if (waters < 1)
                    break;
                int monsterCount = 0;
                foreach (var monster in __state)
dusk mulch
#

do yall think it would be worth it to make a suggestion to make a channel for advanced modding, like C# modding and mapping, Npc’s?

rigid oriole
#

i don't think there's a reason those quesiton can't go in the channels that already exist

dusk mulch
rancid musk
#

The idea of additional channels for modding has been brought up multiple times. The problem is you're creating more places we have to look when we want to help people.

I specifically, as an example, definitely wouldn't be subscribed to channels about mapping or making NPCs. But I have answered questions about those topics before based entirely on game knowledge from C# modding.

lusty elm
#

^

sour sleet
#

I'm a little rusty from taking a break. My warp isn't working, any ideas why? I've been on the wiki page and it seems as though I've formatted it correctly. No smapi errors, just not warping to the new map

rancid musk
calm nebula
#

(If you want to be fast you can break apart fisher yates)

rancid musk
#

A HashSet's Add() method returns true if the item was added, or false if it was already present in the set. It's convenient.

calm nebula
#

I have an example in AtraBase

sour sleet
#

I've put the warp properties in the map itself and i've also put them in the json

rough lintel
lusty elm
gentle rose
#

Fisher Yates is one of those names that seems like it should be for an algorithm that’s much less fundamental than what it actually is

calm nebula
#

The general idea is to simply keep a counter of active elements and swap the used ones to the end

rough lintel
#

its why we got the art and the “making” split

rancid musk
#

I love ref structs.

#

Don't use them enough.

calm nebula
#

Why not?

rigid musk
#

pondering Is there a way to add dialogue that mentions things leading up to the wedding ceremony? Someone commented that it was odd there was no dialogue for that and I wasn't even aware that was possible... if it was anyways (I don't really marry npcs all that often if that isn't obvious... and when I do I guess I just dont pay attention to the dialogue leading up to the wedding... or i dont talk to them I guess)

gentle rose
#

I haven’t touched them since I first learned C# properly when I was implementing my own solitaire clone SDVpuffersquee

rough lintel
rancid musk
#

Usually whatever I'm working on doesn't have performance critical loops so I don't bother writing stuff like that.

rough lintel
#

but i could be wrong

rancid musk
#

The lazy gets me.

rigid musk
#

Okay then I am not in fact crazy and did not miss something on the wiki... maybe

calm nebula
#

Seeeee Khloe I just happened to have that written already

gentle rose
calm nebula
#

So it's easy for me to just stackalloc and do the little shuffle

rancid musk
#

Yeah, and I might steal that if I can think of anywhere I could use it

hard fern
hard fern
#

Is it engamement dialogue or something like that

gentle rose
calm nebula
#

Incredibly easily. Use a trigger action to set a CT if your {{Spouse}} has a value and that value is an engaged friendship

rigid musk
#

what if I... did not want to do that

#

I did miss it

rancid musk
#

(Yes I know you don't directly call malloc ever in C# but the point stands.)

calm nebula
#

(Fwiw, i wrote for both stackalloc and rented buffers)

#

A lot of fast mode atra code can handle both

#

Avoid allocations with this one stupid trick

rough lintel
#

frick!!!

#

i was lile thats a huge use case that has to exist

gentle rose
rancid musk
#

It's only an allocation if it comes from the RAM region of the address space, otherwise it's sparkling memory access

#

Being serious though, stackalloc is great.

#

I should use it more.

gentle rose
#

stackalloc sounds like one of those very powerful methods for crime

rancid musk
#

I'm usually too lazy to consider it though.

rigid musk
#

is there dialogue entries for things leading up to having a child though catpeek (as far as I can tell there aren't I did search the wiki... but im also very ill right now so i could be blind)

rancid musk
#

It's not even crime. You're just allocating bytes from the stack. It's freed once the method finishes executing, and it's not garbage collected.

#

If you're working with a small amount of data and it's simple stuff like bytes or ints in an array, go for it.

#

Though keep in mind that memory allocated with stackalloc isn't initialized like memory allocated with new

gentle rose
#

one day I will dive deeper into the madness of gc etc in C# but today is not that day

rancid musk
#

They day should really be today for anyone making C# mods for Stardew.

#

The name of the game is reducing GC churn as much as possible so the game's frame pacing remains as stable as possible.

#

The GC is the biggest enemy of stable frame times. (The next biggest enemy is people who decide to process millions of things in a single frame.)

final arch
#

the frame pacing issues are rly just the cg? damn

calm nebula
#

There is a trick I do in at least one mod

rancid musk
#

When the garbage collector kicks in, it pauses the runtime while it's running. The entire game just freezes. It's usually incredibly brief, but the more stuff people allocate the more work it has to do.

#

Stardew is a pretty small game so it's not so bad here.

#

I used to do Minecraft modding and it was terrible there, lol

calm nebula
#

Then I just add in high priority (ie "Town" dialogue when that token is "Expecting")

calm nebula
lucid iron
#

If we just all wrote mods in C++ then the stack alloc would just be how it goes no extra attention Dokkan

calm nebula
#

Hear me out: Rust

lucid iron
#

Nou

marble verge
#

Good evening. I have a question about the world map graphic. Is any of this dynamically generated? I'm using a recolor, but certain areas have vanilla colors - and I cannot, for the life of me, figure out what's causing it. I've been looking for the actual graphics in the mods that I think add the patches, but I can't find anything.

rancid musk
#

atra I don't want my Stardew to get rusty how am I gonna till the ground effectively with a rusty hoe

lucid iron
#

For map tiles no, all the tiles are some actual tile on a sheet

marble verge
#

I'm not sure how clear this is, but...

lucid iron
#

Oh the world map comes in pieces yeah

marble verge
#

For example, the area added by Cape Stardew. I've been digging through the folders, but I can't find the actual image anywhere.

lucid iron
#

Are you looking at their mod's folder

marble verge
#

Looking at it right now. Even ran a search for *.png, but nothing.

sour sleet
#

Using debug warp doesn't even take me to my map, what am i doing wrong oml SDVpufferwaaah

hard fern
#

another day another "answering nexus comments and asking for a smapi log"

calm nebula
#

Also why none of my mods work currently, atracore is much more about these fast snippets over having an effect on the game lol

hard fern
#

😅 time for me to learn how to use a new framework... i have never used pif before but i suppose it wouldn't hurt to create pif rooms for my greenhouses

marble verge
#

It's just too weird. I've dug through every .png in the Cape Stardew folder, and there is no world map graphic - yet it shows up in-game.

shadow pagoda
#

would anyone happen to know the method or general code that is used to check if the player can go into an area? Specifically stores like the seed shop. I'm trying to see what are the conditions in order to make the text at the bottom appear. I know it's not TryOpenShopMenu

marble verge
#

Same thing with Lunna - you can see the little bright green patch to the west of the Wizard's Tower - but there's no graphic of it anywhere.

iron ridge
#

Have you checked where it does the edit and look at the fromfile?

marble verge
#

That's the thing - I've been searching for "Target": "Data/WorldMap" in every .json file I can find, but nothing.

dusk mulch
shadow pagoda
#

Oh... That's a extension I have that plays hulu in PIP. Kinda forgot it was there 😅

dusk mulch
#

lol

lucid iron
sour sleet
#

Can anyone help me? Debug warp takes me to my new map but the actual warp points do not. I've added the coords in map properties within Tiled and I've added them to my json... don't know where i am going wrong

lucid iron
#

Action ConditionalDoor

sour sleet
#

sure, one sec

dusk mulch
#

Okay well

sour sleet
#

the locations.json file is separate if you need that too

dusk mulch
#

Replace the FairyPlace.8BitAlien with {{ModId}} (Less bug prone)

lucid iron
#

Wait no door is interior yggy

dusk mulch
#

Also you need EditMap, not Load

sour sleet
#

sorry, i should specify that all the locations work other than FairyPlace2

dusk mulch
#

You don't need a FromFile there either since you're adding warps, not creating a location

shadow pagoda
lucid iron
#

Ok i was right the first time it is Action LockedDoorWarp

#

It is gonna be in GameLocation performAction and the big ol switch is probably mangled

sour sleet
#

I have created a location. FairyPlace and FairyPlace2 are two different locations

dusk mulch
#

So, Remove the FromFile, Make sure the location is being loaded into Maps correctly, make sure you use EditData on Data/Locations and use {{ModId}} instead.

#

Oh

lucid iron
#

Yeah but just ctrl f that file for like

#

Door

#

Eventually find it

dusk mulch
lucid iron
#

I believe the args have everything you care about tho

reef kiln
lucid iron
#

[[modding:maps]]

lucid iron
#

So you can just grab the Action prop as it is and not worry too much about the impl

dusk mulch
#
    {
      "LogName": "Load map into assets",
      "Action": "EditMap",
      "Target": "Maps/{{ModId}}_FairyPlace2",
      "AddWarps": [
        "27 27 {{ModId}}_FairyPlace 41 0",
        "28 27 {{ModId}}_FairyPlace 42 0",
        "29 27 {{ModId}}_FairyPlace 43 0"
      ],
    },

@sour sleet

marble verge
sour sleet
dusk mulch
sour sleet
#

Sadly, no

lucid iron
#

As mentioned your AddWarps is on Load which is illegal

#

You need to do it on a separate EditMap after Load

hard fern
#

..i should update my testing version of stardew

sour sleet
lusty elm
#

huh, I've never really designed a lived in map before, its an interesting challenge trying to figure out "How do these people live? What do they Value?"

reef kiln
#

I just got an ad for a product that uses AI to "write my book for me"...... ? How is that my book if AI writes it? Also, I am not writing a book so ad was maybe missing it's target audience.

rigid musk
#

What could cause an NPC to get stuck while going to a certain point in a schedule? For some reason he either gets stuck going into the bus or just entering the casino... just standing there... menacingly

hard fern
#

blocked tile?

rigid musk
hard fern
#

PIF rooms are shockingly easy.

rigid musk
#

No cause with his normal schedules he's able to move about just fine

hard fern
#

hmmmm

rigid musk
#

It's only his marriage schedule(s?) that seem to be the issue (im only testing one right now because it was theo ne that was showing up with errors)

#

He can turn around and go back to bed just fine though which is even weirder

hard fern
#

oh marriage schedules are cursed SDVpuffersweats

rigid musk
#

they truly are

hard fern
#

you know what's not easy about pif? me forgetting stupid stupid things and having to reload the game every time

lucid iron
#

Does patch reload not work

hard fern
#

it's my maps

lucid iron
#

Oh when i was doing my pif versions

hard fern
#

gaahh it keeps spitting me out in front of my greenhouse, not the door

lucid iron
#

I just did cp edits on the same tmx

#

So that i don't have to deal with it Dokkan

dusk mulch
#

Okay, just released a mod, what is next on the agenda...

lucid iron
#

You need to yeet the Warp map prop and put in the pif warp tile props

dusk mulch
#

Hm, "Dark Mode SDV"

hard fern
#

i did do that

reef kiln
rigid musk
#

he appears to get stuck when going ... anywhere? I guess - or at least to the last part of his schedules

#

one of them is to go to the beach and he's just

hard fern
#

Oh gee. guess what. i was editing the wrong version of my map. how incredible.

#

how many times have i done this.

rigid musk
dusk mulch
rigid musk
#

😭 he absolutely is not

hard fern
#

he's just a little tired 👍

reef kiln
dusk mulch
#

he is trying to see what is outside the map

rigid musk
sour sleet
ocean sailBOT
#

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

brittle pasture
#

and you have the json?

sour sleet
#

I have a content.json and a locations.json, which do you need?

lucid iron
#

It looks like your map didn't load hm

hard fern
#

hooray it works... now to forget this exists and not upload it for a week

sour sleet
lucid iron
#

Need to see your json yea

#

You didn't remove the Load all together right

sour sleet
#

No i didnt

#

Which json?

#

content or locations?

reef kiln
dusk mulch
#

yall im making a SDV dark mode mod, which one should i start with

rigid oriole
#

fully depends on whata you mean by dark mode

#

the menus? the maps? the sprites?

dusk mulch
#

like just turning down the colors so its nicer for the eyes

dusk mulch
lucid iron
dusk mulch
#

also do i need to rename them with "z_"?

lucid iron
#

They r not legal there

rigid oriole
#

then it doesn't matter where u start if you're doing everything

#

the maps take up the most screentime

dusk mulch
#

fair enough

lucid iron
#

Your EditMap also doesn't need the FromFile

rigid oriole
#

you can also start with menus and test them against existing map recolors before you do ur own

dusk mulch
lucid iron
rigid musk
#

Well... if anyone has any ideas what's going on with the marriage schedules (and why he just stops when going to them) I would appreciate the help (please ping me)

Cursed cursed cursed... that's all this mod is and has been is cursed

sour sleet
lucid iron
sour sleet
#

Ok thanks!

#

It's worked! Turns out I forgot to Load it in the locations.json SDVkrobussad need a break me thinks, head is fried and i'm making stupid mistakes

#

One last thing tho, can warp coordinates be negatives like -1 for the warp to be north?

calm nebula
#

Yes

brittle ledge
#

I have a question for the CP experts: do dynamic tokens resolve before changes like Load and Edit regardless of where they are in the actual content.json?

calm nebula
#

Should

brittle ledge
#

E.g., if I have a load that uses a token and my dynamic tokens are at the bottom of the file, will the load have errors because it doesn't get the token?

calm nebula
#

No

brittle ledge
#

I kind of suspected it might be that but I wanted to be sure, thanks! (Don't ask why my dynamic tokens are at the bottom of my file.)

uncut viper
#

likewise for config

dusk mulch
#

why is there just 1 yellow pixel on the fall town map? (above lewis's house)

rough lintel
dusk mulch
#

i also found a MUCH easier way to be abled to change every color at once

rough lintel
#

i just checked my files to see

#

that's so funny

#

it probably gets blended into the grass, so nobody notices

dusk mulch
rough lintel
#

wait no

#

it wouldnt even show up

#

but yes

#

he probably did

dusk mulch
#

does this look darker to you? like, easier on the eyes?

hard fern
#

not really

dusk mulch
#

hm

brittle pasture
hard fern
#

i dont actually notice any difference

brittle pasture
#

(ssh I know the colors arent the same)

dusk mulch
#

i thought doing another layer over the top of that then setting it to 20 opacity and using a 80 black color to fill that layer would do it

#

how about now

#

or does it just look foggy

#

i will see how it looks in game

#

ok it doesnt look as bad in game

shadow pagoda
#

I'm getting this syntax error that's claiming I have the game open (or at least that's the only other time I've seen this error). But I don't and I'm unsure how to fix this

calm nebula
#

Reboot your computer

tribal ore
#

I've noticed that using a command to set the date (e.g. world_setseason and world_setday) don't actually advance conversation topic counters or anything. Is there a better way to advance time quickly in order to test conversation topics running out?

uncut viper
#

sleeping over and over again

#

really the only way to do it

tribal ore
#

... really? XD

uncut viper
#

as its that overnight stuff that decrements the counters

tribal ore
#

Goddamn it. I'm going to have to make like sleeping beauty for an entire year

vernal crest
#

Maybe set your counters smaller while you're testing?

uncut viper
#

you can just test your CTs with a very small duration just to test to make sure things happen right, and then you can be confident it will work the samew for a larger number

tribal ore
#

Unless there is a way to store values in dynamic tokens?

uncut viper
#

depends what you mean by store

tribal ore
#

I want to store a date

#

If I can't, then I will use a CT

#

as a timer

uncut viper
#

i mean. you can technically store it

tribal ore
#

Trigger action -- store the date this happens

uncut viper
#

you wont be able to read it really, depending, sortakinda

#

you can send a mail flag that is just the current date and time and have 114 different dynamic token values

#

depending on the exact date of the mail flag

tribal ore
#

LOL

uncut viper
#

but you cannot set the dyanmic token value to that of the mail flag without knowing the mail flag

tribal ore
#

That is amazing

#

I think I'll stick with the CT for now. I'm already using somethign similar for an event, but the exact date doesn't matter so much

uncut viper
#

BETAS can let you write to and read from the player's mod data which might help with what you need. but if you can make it work with CTs/mail flags id just stick with them

tribal ore
#

Will keep it in mind. I'm adding something that is going to turn into its own utility mod by the time I'm through with it

#

So it'd be good if it was simple

uncut viper
#

(if you do keep it in mind and try to give the mod data thing a shot, i believe Esca's Modding Plugins also has a mod data reading CP token as well (BETAS doesnt do tokens))

lusty elm
dusk mulch
#

well that is the bathouse tilesheets done... 272 more tilesheets to go.

reef kiln
rigid musk
#

bceOhYouStare is... there a reason why Qi's stuff would remotely affect other NPCs /alter their schedules/cause them to walk into the desert and stuff because... that is happening and I do not know why even

#

This mod will forever confuse me I don't even know why this would happen

reef kiln
#

NPC can walk to the desert? I did not even know that was an option?

rigid musk
#

Yeah I mean there's a warp from the bus to the desert and the desert to the bus

#

I just don't know why they would... be taking that route for any reason ever

lusty elm
#

When npcs break i know the used to just keep walking, that's all I can contribute atm.

calm nebula
#

Anyways, i need to go swimming

reef kiln
rigid oriole
#

I've got a C# mod with one content pack that I deploy on build using the <ContentPacks ... /> tag in my .csproj. I've updated the manifest version in both the C# mod and the CP mod to have version 1.1.0. However, on build, I get the error that the content pack "can't be loaded because its manifest.json has version '1.1.0' instead of the required '1.0.0''

#

(yes i saved the files)

rigid musk
#

bceTiredDrool this mod is going to take my soul i swear...

calm nebula
#

The content pack, use $Version

rigid oriole
#
  <ItemGroup>
    <ContentPacks Include="[CP] FailedQuestsLoseFriendship" Version="$(Version)" />
  </ItemGroup>
#

I've had it as $Version

vernal crest
rigid oriole
#

Does it not automatically pull from the manifest?

vernal crest
#

Nope

#

Stupid autocorrect

rigid oriole
#

Interesting. I don't see it listed in the mod build config docs. Is it a generic C# thing?

#

That does fix it for me tho thank u

#

I figured if it was pulling the content pack's manifest to get the version, it would also pull the main C# mod's manifest

vernal crest
#

I don't know. I just asked in here about it and was told to add it. I don't know how everybody else knew to do it without it being in the docs.

rigid oriole
#

I feel as though it's not from the ModBuildConfig and it's just a C# .csproj property (that's my guess anyway)

#

I have zero formal C# training, I just learned it by pretending it was java and taking IDE suggestions 💀 and now i can write passable C#

vernal crest
#

I have no experience with any language that is even close to it so I'm basically learning a whole new foreign language.

rigid oriole
#

I actually really like C# so I'm kinda happy it's what I get to write mods in

vernal crest
#

Lol I hate it so far but we'll see how I feel once I actually have the hang of it

unborn orchid
#

Does mod config not work with i18n?

rigid oriole
#

Mod configs definitely can be i18n

vernal crest
#

I don't know how to do it with C# but it's possible

calm nebula
#

J think it defaults

tawny ore
#

If you use ModManifestBuilder, it also supports content pack deployments in that it can sync your mod versions to it

#

(And every C# modder should use ModManifestBuilder)

dusk mulch
#

Instead of having to edit every single tilesheet in the game to make a dark mode, can I just have a layer that is always on the screen at a certian ocpacity that makes everything just slightly darker?

vernal crest
tawny ore
#

If you use it, you don't even need to specify the version at all:

<ItemGroup>
    <ContentPacks Include="[CP] Toolbar Icons" />
</ItemGroup>

It's enough to simply include the content pack, and it'll get the version from your <PropertyGroup><Version>

unborn orchid
#

@vernal crestThanks. I miscommunicated. I want to change my item descriptions based on whether the characters are female or male.

vernal crest
tawny ore
dusk mulch
#

yeah i really dont want to have to edit 270 tilesheets...

#

so i wont, i have another mod to work on anyway

tawny ore
#

You reduce the color information by overlaying a tinted darker tile, so everything would probably become slightly washed out.

vernal crest
unborn orchid
#

I can do item images which I've done before. But trying to copy it into i18n isn't working currently.

vernal crest
#

How do people know to even use <PropertyGroup><Version>? Did Pathos tell one of you and it's been passed around ever since? Is it something you know about if you have a certain existing knowledge of C#?

unborn orchid
#

I currently have the player manually selecting genders in the mod config

tawny ore
dusk mulch
#

How does the mines maps work? Like can I add more custom levels with CP?

#

I can't find documentation on it

calm nebula
vernal crest
tawny ore
#

I use the same properties in every project, so when I create a new one I just copy+pasta it

calm nebula
#

I'm "retired" in that the big complex interesting mods are dead

calm nebula
vernal crest
tawny ore
#

Hence why if you're using that feature, you need to refer to its documentation

dusk mulch
vernal crest
tawny ore
dusk mulch
#

I think I will take a break from modding to just play.

tawny ore
calm nebula
#

Tbh I also copy from project to project

calm nebula
tawny ore
#

I haven't said anything about content pack deployment without using ModManifestBuilder as my original post was suggesting that everyone should use ModManifestBuilder since it has certain features that make deploying your C# projects and bundle content packs easier.

unborn orchid
#

This is what I'm currently have. {
"Changes": [
{
"Action": "Load",
"Target": "Mods/{{ModId}}/i18n",
"FromFile": "Data/assets/Underwear/default.json"
}, //Objects
{
"Action": "EditData",
"Target": "i18n",
"Entries": {

            "Item.AbigailP.Name": "Abigail's item",
            "Item.Abigail.Description": "Purple  with a skull on it.",
            "When": {
                "Abigail": "Female"
            }
        }
    }
]

}

tawny ore
#

That's not how you load i18n files

#

i18n entries are just available to your mod as tokens, automatically

#

Anywhere you want to refer to an i18n token, you use {{i18n: Token-Key}}

unborn orchid
#

@tawny oreAh I understand! I feel stupid now.

#

Thanks!

tawny ore
calm nebula
#

You can also use tokens in your i18n call

rigid musk
#

Okay for some reason SpaceCore is causing npcs to go into the bus and then to the desert... why I have no idea

#

not very cash money of you spacecore

tender bloom
#

It’s probably got to do with how the network of locations is constructed

#

If you have loops in the network, bad things happen

tawny ore
#

I thought SpaceCore isn't really meant to have side-effects unless a content pack uses it to change things

rigid musk
#

Wait let me correct that - not having space core is making them go into the bus actually

tender bloom
#

And i think spacecore may try to fix those bad things

rigid musk
#

Perhaps I am too tired and sick to be editing this mod right now

tender bloom
#

Yeah that sounds more right from what I recall hearing about this function

brave fable
#

really the fix should simply be closing all VS windows and reopening, but VS sometimes just keeps going after you've closed it, hence task manager

reef kiln
# dusk mulch how about now

Does it bother anyone else that the roof of the general store and Dr office don't line up with the rest of the building. Because it kind of physically hurts me. I know it is the vanilla tile sheet, that makes it even worse for some reason.

dusk mulch
tidal stone
#

in the content json under format, what do i put there i know it should be a number of some sort but idk what it correlates with or where to find the correct number if there is one

tidal stone
#

ty ty

reef kiln
#

The older # work but you should not use them as they are obsolete.

reef kiln
dusk mulch
#

:(

teal bridge
#

Once you've already decided that a tile sheet is going to be irregular, there's no sense in worrying about that.

#

Usually more effort goes into packing (and is better spent on packing, to reduce load times) than making it look pretty in an editor.

calm nebula
#

I've wondered if he used a tilesheet packer

teal bridge
#

Cursors probably doesn't for historical reasons but it seems plausible for the maps.

lucid mulch
sour sleet
#

Tested my map on several save files since adding paths (spawnable trees, bushes and hardwood stumps) It looks different depending on which save I load it on. Some will have no trees or anything and some saves will have everything fully grown. Is this an error or how it’s supposed to be?

lucid mulch
#

all of that gets stored in the save file, so whatever you have in your map file is mostly a suggestion for the first time its ever used

#

theres a reason major mod updates recommend using mods like Reset terrain feature to get the intended bushes, etc

sour sleet
#

Ahh ok, glad to hear it’s working as it should. But what’s confusing me is that even a save that’s not had my map on yet is missing all the trees etc

lucid mulch
#

some of the logic iirc runs overnight not day started, so sleeping would make it show up I think

sour sleet
#

Ooo that would make sense

lucid mulch
#

creating a new save does a simulated overnight sleep as it initially creates the save on spring 0, and sleeps to become spring 1

sour sleet
#

Going to do some more testing w that knowledge SDVpufferthumbsup

rigid musk
#

i also just cant get him to actualy go to the end destination of his marriage schedules so that's also fun

#

ill figure it out eventually probably

lucid mulch
#

spacecore will ensure they take the minimum amount of map warps, so adding npcwarps from their warp rooms to the desert bus tile would do that I think?

reef kiln
#

Do you have a schedule viewer mod installed to see where they are trying (supose) to go.

lucid mulch
#

did anyone (other than me) actually make a schedule viewer mod in the end?

vernal crest
#

I use the Schedule Viewer mod by BinaryLip, whoever that is

lucid mulch
#

I didn't think I released mine (or updated it for 1.6)

brittle ledge
#

GIMA had one, but it's also not updated for 1.6.

rigid musk
#

i do have a schedule viewer mod... idk which one is doing it but it shows me that claire is supposed to be going to joja and martin is supposed to be going to.. i think the library

lucid mulch
#

ah its just a text view of it

rigid musk
#

let me launch it again

reef kiln
lucid mulch
#

mine visualized them in the world

calm nebula
#

I think SVE also changes the bus warps somehow

#

Forgot how

rigid musk
lucid mulch
#

I know sve added bus warps for claires warp room thing

rigid musk
#

yeah they both start in their warp rooms... of course the time im going to take a picuture they dont actually do it but their schedules indicate where they're supposed to go at least

#

and claires

hard fern
#

does mr qi get stuck like, right next to the edge of the bus stop map?

rigid musk
#

no he gets stuck in the casino at the door

hard fern
#

O

rigid musk
#

which is weird because with his non marriage schedules he can move around just fine

hard fern
#

He can't get in...

rigid musk
lucid mulch
#

let me take a brief look as to how badly ScheduleDebugger needs updating for 1.6 compat

rigid musk
#

the only one that works is his forest schedule which... i dont really know why

#

theres not much different with that one than with his other schedules

hard fern
#

Ur right lily this is driving me insane too

lucid mulch
#

if those mods just read the schedule as written they wont detect void warps

rigid musk
#

hell the beach schedule is far simpler than the forest one (at least in terms of maps he needs to cross to get there) so idk why he gets stuck at the beach but not in the forest

lucid mulch
#

though now I think about it, mine wont detect void warps either, but you could combine it with DataLayers to see the warps to see if it would run into a void warp

#

the TL;DR of warp issues, is that if an NPC walks into a warp that their schedule didn't intend them to take, they will become very confused and walk weirdly where they got warped to

#

which is a separate problem to the circular loop problem in macro pathfinding where the pathfinder gives them a shit route

rigid musk
#

I mean that would (kind of) make sense for why they go back into the bus and end up there ... I guess (though I feel like they should just get stuck at the bus instead of going into the casino for whatever reason and getting stuck at the door, but truly what do I know)

#

I'm not really sure why they turn around and go into the bus though, because it's not like they step out and are warped away they actually turn around and go into it

#

Yet another issue from this mod, very on brand, very Qi

ivory plume
#

@teal bridge Data Layers 1.20.0 is (finally) released with the new API. Thanks for the PR!

swift needle
#

Is furnace can be edited on cp?

lucid iron
#

furnace is a machine yes

swift needle
#

how to target the furnace? Is it using targetfield or i just enter it on the entries?

lucid iron
#

Use targetfield, since you don't want to overwrite the original

#

What do you hope to achieve?

swift needle
#

i want to make you can put wood into furnace to make coal

#

like 20 wood for 1 coal, i have made on PFM but still dont really understand how the CP works

lucid iron
#

Oh but you can do that in vanilla with the charcoal klin

#

Look at Data/Machines and basically copy the rule

swift needle
#

where to find that

vernal crest
swift needle
#

i am not, usually i just experimenting what to do when error occurs on the mod

vernal crest
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!

swift needle
#

is it possible on mobile?

teal bridge
lucid iron
#

a lot of things r more annoying on mobile but if you can access the smapi console you could do patch export Data/Machines

#

anyone remember where this is used

#

i think its animated

acoustic summit
#

It definitely is, that is so familiar for some reason. I'm not sure exactly where but its used as a selection denotation. The animated cursor hovers over the "thing" selected.

proven spindle
#

Isn't that in the dialogue boxes when there's more text without a defined break in between?

lucid iron
#

oh huh

acoustic summit
#

You got it Si

proven spindle
lucid iron
#

i read fast so i brain deleted them

#

amazing

lusty elm
#

Huh

acoustic summit
#

The little things in Stardew SDVpufferwow

lucid iron
#

that bouncy X must be there too ig

proven spindle
#

The x is for when there is a coded break in the dialogue

#

'#$b#' versus the string just being too long for the box lol

acoustic summit
#

Its always right after an update that people get the urge to comment recommendations and requests... I enjoy adding cool ideas but I wish I could be given them before I push an update to something SDVpuffersquee

lucid iron
#

the creep is eternal ukimasu

sour sleet
#

Is there an alternative to Reset Terrain? It's not updated for 1.6

lucid iron
#

it is unofficially updated

#

although, what do you want it for?

#

!rtf

ocean sailBOT
#

Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).

sour sleet
#

I'm currently testing my new map and it's not spawning trees and bushes on some saves and is on others

lucid iron
#

im tempted to make an alternative cus this unofficial did not do keybindlist correctly

acoustic summit
#

It might not be your issue, but if the location was loaded prior to the path tiles for trees and bushes being added then it wont necessarily work properly. If they load on a new save then thats good

lucid iron
#

what feature would i even add tho

#

unless i just

#

unofficial the unofficial LilyDerp

#

that seems silly

#

and i have hard time imagining more than 2.5 ppl being bothered by this

calm nebula
#

I meannnnnn

#

Bring able to link to a Nexus page and not a github?

acoustic summit
lucid iron
#

that requires me coming up with actual feature monS

sour sleet
#

yep they appear on a brand new save so reset terrain would fix that on an existing save right?

acoustic summit
#

it should yeah!

proven spindle
#

idk how hard it'd be and feel free to ignore but I'd love a feature where you can choose to just remove all trees/bushes that are standing on tiles with layers other than back (so like if you add a mod that adds a house in the forest, it'll just remove stuff that's standing where the house tiles are)

sour sleet
#

awesome thanks pal

lucid iron
#

the mod author directed removal is a trigger action you can use

#

but if it is for user directed version of mod

#

i suppose i'd let people select

#

i have 3many commitments rn hence why i just tell ppl these ideas in hopes that they do it PecoSmile

sour sleet
#

it says RTF is not compatible

latent mauve
#

there's an updated one for 1.6 on github, I think

sour sleet
latent mauve
#

LOL

sour sleet
#

oh

latent mauve
#

okay, what's the SMAPI error, and are you on the latest SMAPI?

#

(trace will give you more than "not compatible" usually)

sour sleet
#

Yep im on the latest smapi and the error is "These mods could not be added to your game.

[SMAPI] - Reset Terrain Features 1.0.2 because it's no longer compatible."

latent mauve
#

The one linked should have had 1.0.3, not 1.0.2

vernal crest
#

You might have accidentally downloaded the first one on the list which is for 1.6.8

latent mauve
vernal crest
#

Meh, I think a quick convo about finding the right mod for testing her own mod is fine here

latent mauve
#

But yeah, make sure you've grabbed the ZIP from November 4th

sour sleet
#

Oops yes you're right Aba SDVpufferyikes Thanks both SDVpuffersquee

#

Need to go to bed SDVkrobusgiggle

scarlet ether
#

Hey, is it possible to blacklist specific map tiles from receiving overlays? I noticed this in WBPT and can't figure out a good way to keep it from happening. Any advice?

lusty elm
#

what do you mean by overlays?

scarlet ether
#

In the _outdoorsTileSheet there is a 16x16 square of the carpenter front door that is normally used during night time. In vanilla it's lit up, but WBPT has no window, so it's just solid wood.

lusty elm
#

it also doesnt help i dont know the abbreviation WBPT or what im looking at outside of a house and a door.

scarlet ether
#

Way Back Pelican Town

lusty elm
#

ah, so its generating a light when you dont want it to because its coded for that tile to have a light source on it?

hard fern
#

(where is the light, am i blind)

scarlet ether
#

No, I just don't want the door to be backwards. Doorknob is on the left in the attach picture, when the original sprite has it on the right. The reason for it being on the left in the attached pic is because that 16x16 tile is also applied to Maru's shed/room thing. Original sprite for the carpenter front door has doorknob on the left.

#

Sorry, for wall of text. And probably bad explanation. It's late and I'm frustrated; brain is not braining correctly. D:

lusty elm
#

so the door knob is on the wrong side? is that the problem? (I'm tired too, and my brain has been on the fritz all day)

scarlet ether
#

Yes, the doorknob is on the wrong side. If all else fails, I'll just go in and edit the sprites some more. I've been working on this project all week and spent the last few hours just respriting and adjusting colors for this one building. D:

lusty elm
#

Yeah my solution would just be patch that square on the map with like a CP edit, or use multiple layers to make it look like what you want, if you're reusing the door tile elsewhere. Aka just have the wood tile as buildings and the doorknob on buildings1 as a layer over it or something, as base stardew can do taht now.

lucid iron
#

im not really set on the inset bg hm

brave fable
#

what else, flat 25% white? single colour outline?

vernal crest
#

Wiggly

lucid iron
#

well the current version has a long divider

#

it is also different orientation ofc, so i was thinking maybe horizontal divider (unclear how to make that work

brave fable
#

imo vertical is more sensible since scrolling can happen line-by-line rather than bit-by-bit without being jarring

lucid iron
#

yea but the reading order is this

#

which is a bit strange once rules that r actually in the middle get chopped off by scrolling

brave fable
#

oh machine rules have ordered precedence don't they

uncut viper
#

can you make it diagonal instead

lucid iron
#

if its vertical u just read L->R U->D

lucid iron
vernal crest
#

Just make it really thin so it has to have one rule per row SDVkrobusnaughty

lucid iron
#

i'd die

#

i run Cornucopia WAG Baubles and some random other stuff this save

#

this mod is honestly less for me to turn machines off and more for me to read the rules at all SDVpufferpensive

lucid mulch
#

hmm, if I build my stardew mod development helper mod, I have no idea what it should be called, in part as I can't find a good word beginning with S to describe mod

brave fable
#

really it feels like the only unambiguous way of presenting a wrapped ordered list is by numbering all the elements

#

sumptuous is quite a good word beginning with s

#

salacious is good too

dusk mulch
#

how does that make sense, (i havnt had any other versions of the mod btw)

lucid iron
brave fable
#

ooooh salubrious, definitely

vernal crest
lucid iron
#

Sphinx

dusk mulch
#

or am i being dense

vernal crest
dusk mulch
#

oh, alright

lucid mulch
lucid iron
#

sinz if you run out of S are u gonna let yourself have a Z sometimes

lucid mulch
#

I started a naming scheme and I'm going to keep it

lucid iron
#

why dont the last 4 have space

lucid mulch
#

they predate me doing spaces

lucid iron
#

what r these actually

brave fable
#

'support' doing some heavy lifting

dusk mulch
#

doing some sporadic shifts

lucid iron
#

SeleneSupport.Support

uncut viper
#

if you ask me i dont think Shared Spaces should count

brave fable
#

Sinzational Stardew Software Solutions is my vote but "my new helper mod" doesn't tell me a single thing about what the mod does

lucid mulch
#

SeleneSupport was a lua mod loader, I also had SeleneShowcase for an example mod but I cant find it anymore
SnakeSupport was a python mod loader, also had Snake Showcase as well.
SeleneSupport.Support was a weird thing where I had to hide the ModEntry class from SMAPI, and smapi didn't check dependencies

lucid iron
#

SeleneSupport.Sneak

lucid mulch
#

SixSupport was an experimental mod that would impersonate and pretend to be dead mods and implement their apis with facades to vanilla mechanisms

lucid iron
#

ah like python-six then

#

except it should be 30 yggy

brittle pasture
#

SusSupport SDVpuffersus

lucid mulch
#

Sporadic Shifts is my personal misc mod, currently all it does is remove the character limit from the farmname textbox in character customization
Science Showcase is just an example mod, though it currently includes code to fix a 1.6 alpha bug that got incorporated into vanilla afterwards.
Scene Setup is what Atra released as Event Tester
Scrutinizing Spousal Speech was a logging mod that would log when marriage spouse dialogue failed to load. 1.6.9 or 1.6.15 has it now so its dead.
Several Spouse Spots, Shared Spaces, and Spending Services are already released on Nexus
Speedy Solutions is my WIP mod for performance optimizations

brave fable
#

getting a feeling of Sinzational Sibilant Synonyms Skirting Sensible Style Standards

lucid mulch
#

it started as a metaphorical middle finger to everyone loving to initialize mod names rather than refer to the mod name, so I would have all my mods just be SSS or SSSS

#

but if I do make the mod helper mod, it would have the LSP fun stuff to go with companion vscode extension (and maybe visual studio extension if the vscode one goes well), and I'll throw the schedule debugger in there as well

brittle pasture
#

Smapi Smod Shelper then

lucid mulch
#

so I'll have three main meta mods, the ModAuthor mod, ModUser mod and Profiler

lucid iron
#

Stardew Syntactic Server

lucid mulch
#

pretty much a kitchen sink mod for stuff I make that only mod authors should ever download

#

might also turn off some of the performance optimizations that the user facing performance mod adds

dusk mulch
#

is it possible to do a mapedit for the mines since the mines arnt an actual location? (i dont think)

lucid iron
#

you can edit individual layouts

lucid mulch
#

map edits sure, you never map edited a location anyway

lucid iron
#

its jank tho

dusk mulch
dusk mulch
vernal crest
lucid mulch
#

each mine floor is technically a location, they are just dynamically generated on the fly, and get cleaned up when no one is that deep anymore

lucid mulch
#

but the map edit would apply to the layout rather than 57 or whatever

dusk mulch
#

ok i get what i need to do now, ty!

uncut viper
#

and only a little bit too many commitments

#

i can shove one aside no problem (some problem)

lucid iron
#

yea u should do it

brave fable
#

how is it possible for the foreach line to throw a NullReferenceException SDVpufferthinkblob ```cs
if ((CraftingRecipe.cookingRecipes ?? DataLoader.CookingRecipes(Game1.content)) is Dictionary<string, string> data)
{
foreach ((string key, string value) in data)
{ ... }
}

lucid iron
#

does it make a difference if u dont unbox

proud wyvern
#

what's the actual exception/stack trace

ocean sailBOT
#

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

#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 412 C# mods and 1038 content packs.

proud wyvern
#

that... doesn't seem to be the failing bit of code?

#

unless your master is behind

uncut viper
#

is your repo not up to date

proud wyvern
#

it seems to throw here

#

i never trust line numbers in mods

#

i don't know why, but they're never right

hot gale
#

Wanna know if this is possible before I attempt, I want to have a config toggle for SVE support. This would change the recipe for the initial mead from regular honey+fruit to Jar of Honey from SVE bears. Not sure how to tackle this quite yet, just want to know if this is a common method

#

Can I have a config swap entries of a machine?

uncut viper
#

you can make your patches only apply depending on a config option

#

but you cannot have a config option automatically assume a value based on a mod existing

hot gale
#

Gotcha so configs are more of a true/false exclusive toggle

uncut viper
#

no

#

configs can be different values, they are not binary

#

whether a patch applies is a binary on/off but you can have many different patches based on the many possible values you can put on a config option

hot gale
#

I see

uncut viper
#

im just saying that a config option cannot have When conditions and so you cannot check for the existence of SVE in the config option itself to conditionally create the config option

#

the existence of the config option is determined from the getgo and does not change

#

and by "determined" i mean "its there if you write it, its not if you dont"

dusk mulch
#

What does LogName do?

lucid iron
#

are you against simply using the SVE recipe if SVE is on?

hot gale
#

Thats what I want

hard fern
dusk mulch
lucid iron
#

then don't do a config, it'd just be editdata with HasMod sve

vernal crest
#

Especially useful if you patch the same asset multiple times because then you can tell which one CP is referring to in your log.

hard fern
#

If i made a patch with log name "i hate this patch" if something in it borks thats what the log will say is having trouble

vernal crest
#

Rather than having to count them and hope you've got the right one.

brave fable
proud wyvern
#

what the hell is this indentation

lucid iron
#

are you auditing blueberry code

uncut viper
#

in some regards one could say blueberry requested it and simply did not specify the limits of the audit

#

maybe it throws an NRE bc of the bad indentation

proud wyvern
#

i'm just trying to read it, and that bit is making it harder to do so

#

what if it's value that's null for some recipe, for whatever reason

#

that would suck

brave fable
#

indentation like that usually comes from people submitting PRs with spaces while i use tabs

#

tabs appear about 2x wider

proud wyvern
#

the only things that could even BE null in this method are value and Game1.content - unless ArgUtility.Get can also return null

uncut viper
#

you are the sole contributor to this file

proud wyvern
#

i assume Game1.content isn't null

uncut viper
#

ArgUtility.Get can return null

#

if no other defaultValue is specified

proud wyvern
#

ah yup

#

which would mean the value is invalid / you don't handle missing parts of it

brave fable
#

so ..?```cs
if ((CraftingRecipe.cookingRecipes ?? DataLoader.CookingRecipes(Game1.content)) is Dictionary<string, string> data)
{
foreach (string key in data.Keys)
{
string[] requirements = data.TryGetValue(key, out string value) && value is not null
? ArgUtility.Get(value.Split('/'), 3).Split(' ')
: [];
// . . .

uncut viper
#

you can also just do if (!data.TryGetValue(key, out string value)) continue;

proud wyvern
#

if value is "a/b", this will still throw

#

i don't know the format of this thing, but i assume some mod added some entry with only 2 delimited values

uncut viper
#

(pretend the index was there though. idk recipe data i was only formatting the tryget)

brave fable
#

well the error was thrown on the foreach line itself so not sure what to make of that

proud wyvern
#

you can't trust line numbers

brave fable
#

it's possible it's just mod-added malformed data though, that's like 1500 content packs between these two mods with god knows how many items

uncut viper
#

you should probably just switch to ArgUtility.TryGet instead of ArgUtility.Get

#

and just pass in the entire value as an array split by /

crude plank
brittle pasture
#

everything else has defaults

#

if the recipes are truly malformed the game would have exploded before the mod did I think

uncut viper
#
foreach ((string key, string value) in data) {
  if (value is null || !ArgUtility.TryGet(value.Split('/'), 3, out string thirdField, out string error, allowBlank: false) continue;
  if (thirdField.Split(' ').Length > 1 [...]
#

ig that would actually be the 4th field. w/e

#

too used to GSQs and actions where the 0th is the query itself so i ignore it

#

maybe would wanna add allowBlank: false to the TryGet parameters idk

teal bridge
lucid mulch
# dusk mulch What does `LogName` do?

somewhat of a weird name, but it is the display name of the patch. Named that way because the only time ContentPatcher will ever really use it is for logging purposes (but stuff like Profiler via content packs will also see it)
when the LogName isn't specified the name will default to <Action> <Target> #<Sequence number of how many of this type is in this file> ie EditImage Maps/townInterior #4.

lucid mulch
dusk mulch
crude plank
#

SSSS if you will

#

you can't escape the initialism

lucid mulch
#

with profiler being the exception proving the rule

crude plank
#

Yes Profiler is safe from initialisms

#

One word mods are the only ones safe

uncut viper
#

hi selph

brittle pasture
#

not too late to change it to SinZational Software Speedometer

#

hi button

#

cant type today ugh

wraith oasis
#

quick question about custom farms, is the debris density that the farm starts with preset with the farm?

#

i got a custom farm layout today and it has a really heavy amount of debris, and i was wondering if that was a mod author change or what

wraith oasis
brittle pasture
#

yeah, you can open the map in tiled to check for yourself

#

and yes, they will then spread on their own

lucid mulch
#

iirc its something along the lines of running the debris generation 5 times or something

wraith oasis
#

i was just curious

#

i need to get tiled setup becuse the mod has an overworld map art, but it doesnt work in 1.6

lucid mulch
#
    LocationData data = this.GetData();
    int numberOfNewWeeds = Game1.random.Next(data?.MinDailyWeeds ?? 1, (data?.MaxDailyWeeds ?? 5) + 1);
    if (Game1.dayOfMonth == 1 && Game1.IsSpring)
    {
        numberOfNewWeeds *= data?.FirstDayWeedMultiplier ?? 15;
    }
brittle pasture
#

anyone made a maximum weeds map where you have to constantly fight the weedses to reclaim farmland yet

lucid mulch
#

and I think there might be some stuff in the map for literal spring0/1 year1 on top of what will be generated on top

wraith oasis
crude plank
wraith oasis
#

theres just a crazy amount of trees outside on day 1 with this farm

crude plank
wraith oasis
brittle pasture
#

default trees are also on paths I think

#

have you opened the map in tiled?

wraith oasis
brittle pasture
#

you technically dont need tiled to view the map (if it's tmx), but it'll probably look incomprehensible

wraith oasis
#

i cant find anything in map properties

latent mauve
#

The positions/areas would be determined by your Paths later, if that's what you mean?

wraith oasis
latent mauve
#

The value is just T for the SpawnDebrisOnNewMonth Map Property according to the wiki, it's likely one of those "if property exists, it's true"

#

(looks like skipWeedGrowth will do the opposite, as well, and block weeds from ever spawning)

wraith oasis
#

is the FirstDayWeedMultiplier in tiled?

vernal crest
#

No mention of it on the wiki

wraith oasis
#

i guess not, i doubt anything was changed for the record but this is just an exercise for me at this point to learn a bit more about stardew modding

latent mauve
#

It's in location data

wraith oasis
#

got it

#

thank you

latent mauve
#

FirstDayWeedMultiplier (Optional) On the first day of each year, a multiplier to apply to the number of daily weeds spawned. Default 15.

#

There's also MaxDailyWeeds if you want to go crazy with it

#

You'd just need to edit the Data/Locations entry for your Farm to set those

vernal crest
dusk mulch
#

why is it so difficult too get a shop to look good, ive tried a building, crack in the wall, hole in the wall, nothing works

wraith oasis
vernal crest
wraith oasis
#

not like i would mind some additional wood early on lol

vernal crest
#

Lots of things in Stardew can be messed with. If you know C#, pretty much anything can be lol

#

Starting to tweak stuff in your own game is the gateway drug of modding lol

wraith oasis
#

ive only messed around in C++ but im pretty sure the skillset transfers

#

lol

dusk mulch
vernal crest
#

If you're already familiar with C++ then you'd be ahead of me already probably

dusk mulch
#

I am looking for a dark building that would fit in with the mines, like something that would look like it should be there in the mines, Anyone have any suggestions?

wide flint
#

How do I access fields of objects in C# added through CP?
For Example, Cornucopia adds custom Bushes and I want to access AgeToProduce and DayToBeginProducing

lucid mulch
#

read or edit

latent mauve
dusk mulch
latent mauve
#

Ah! Slime hutch maybe?

#

Lava dungeon set pieces are good too

dusk mulch
#

I am testing with lava dungeon set pieces and I think I may be abled to do something to make it look... decent.

latent mauve
#

They tend to have darker floor textures for the lava dungeon, at least

dusk mulch
#

yeah

lucid mulch
# wide flint How do I access fields of objects in C# added through CP? For Example, Cornucopi...

if you just want to read the values then Game1.content.Load<Dictionary<string, ICustomBush>>("furyx639.CustomBush/Data") where ICustomBush is a copy of https://github.com/LeFauxMatt/FauxCore/blob/3971d89fd4ae3057bc5e560eb4c5178d02e37c9b/FauxCommon/Integrations/CustomBush/ICustomBushApi.cs#L126-L164
if you want to edit the values, then you want to follow https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Edit_a_game_asset with furyx639.CustomBush/Data being the asset name and the type being Dictionary<string, ICustomBush>

#

for reading you could also just use the CustomBush api's directly

wide flint
dusk mulch
#

Unless...

#

I go a bit more simple.

wide flint
lucid mulch
#

no idea, but modData is a generic vanilla container to store stuff for save/load serialization

lucid basalt
#

hey does anyone know if there's an api for the wiki? I've not come across anything so I'm guessing it's a big fat no but I'm wondering if anyone knows of anything 🙂

lucid mulch
#

outside of any batteries included apis as part of MediaWiki, doubt it?

dusk mulch
#

ok i think that coud look good if i removed the background

lucid basalt
#

essentially I could scrape it but that will take time

hard fern
#

Recipes?

lucid mulch
#

if you want vanilla data, just get it from the game files?

dusk mulch
lucid basalt
#

ok thank you 🙂 for context i'm looking to make a web app for a portfolio with recipe tracking. (I know there's something similar) I'm pretty fresh off a web dev bootcamp, we learned more about api and scraping etc so i wasn't aware there was another option! Thank you for the pointers 😄

dusk mulch
#

Oh, sorry if I came off harsh. Good luck!

lucid basalt
#

oh not at all!! I appreciate it 😄

dusk mulch
#

What is the staircase item ID? I cant find it in the great ID spreadsheet or the 1.6 item ID's.

#

found it

#

its a big craftable

lucid mulch
#

(Same as Lewis's shorts)

fathom rapids
#

does anyone know where the game stores the odds for fishing out garbage

#

it's not data/fish.json )=

lucid mulch
#

its the absence of fishing the other stuff

#

but also what you want is in Data/Locations

fathom rapids
#

ty!!!!

#

oh so the answer to 'how hard would it be to change the odds of fishing out garbage' is 'fucking very'

#

ty

lucid mulch
#

depending if you want more or less

fathom rapids
#

less

#

i guess i could inflate the odds for something else??? but the thing is i want this to apply to all locations where like. anything other than garbage can be caught at all, including modded

lucid mulch
#

you can add something that has a 100% chance prior to trash, but you are just making more different trash at that point

#

the trash is in the "Default" location in Data/Locations

fathom rapids
#

hum. but if it's something like wood it wouldnt be trash 🤔

#

algae... 🤔

lucid mulch
#

the "Trash" table is
"(O)167",
"(O)168",
"(O)169",
"(O)170",
"(O)171",
"(O)172"

fathom rapids
#

well my headache is too bad to dig thru this file right now but i do have a plan now :D tysm!!!

lucid mulch
#

algae doesn't count, its much more of a fish, but driftwood is in that list

#

if you somehow leak any odds and the fish code doesn't actually spit out an item, the actual trash item will happen as an emergency fallback

#

but in normal conditions Data/Locations should always pick a winner

fathom rapids
#

ty

tacit moth
#

I have a question about stardew mods. I see thet some stardew valley mods have in their folders a .dll file. Why do some mods need this dll file?

lucid iron
#

those are C# mods

tacit moth
#

Oh, thank you!

lucid iron
#

mods generally have to be either C# or depend on a C# mod

#

e.g. content patcher mods dependent on content patcher

round marlin
#

Hey I really need help, I‘m trying to add a few big craftables to the mod Hardware store (for my own use only) but it didn’t work correctly

I’m trying to add the keg and the preserves jar to it, but it makes an amerald stone from the ID of the keg

tacit moth
#

This is keg's item id: [(BC)12]

#

It's a big craftable so it should have BC in front of the id

#

(i hope i'm right)

lucid iron
#

is this STF?

round marlin
#

Yes it’s STF

tiny zealot
#

gonna have to take it up with STF to see if it even supports other item types. i'm guessing no since it's an array of ints

lucid iron
#

hm im not sure how to put qualified item id there yggy

#

it does say BigCraftable tho

round marlin
#

The Preserves Jar works fine but when I add the (BC) the shop didn’t open

lucid iron
#

yea cus it is probably looking for an array of ints

#

could you try having a separate entry for keg?

royal stump
round marlin
#

The separate entry for the keg didn’t work

lucid iron
#

Do you still get an emerald

round marlin
#

Yes

royal stump
#

you could try ItemNames instead of ItemIDs, but kegs might just be bugged with STF in that case
(and use "Keg")

lucid iron
#

Mystery

#

I suppose you can just editedata the hardware store in content patcher

#

If STF makes a real Data/Shops entry in the back

royal stump
#

yeah, if it's just converting things to 1.6 data internally, that should do it

round marlin
#

Thanks a lot it wirkt with the item names

deep cypress
#

Well this is puzzling! Somehow, when clicking both right and left mouse buttons at the same time, I made Penny jump!

drowsy pewter
#

the long awaited sequel to spenny
jenny

tacit moth
#

Hi, i try to change a location from the mod Ridgeside Village whitout adding it as a requirement but it gives me this error:[Content Patcher] Error preloading content pack '(CP) StardewSuburbs'. Technical details:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at D:\test\Mods\StardewSuburbs(CP) StardewSuburbs\content.json. This doesn't seem to be valid JSON.
Technical details: After parsing a value an unexpected character was encountered: ". Path 'Changes[6].ToArea', line 91, position 12.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in /home/pathoschild/git/SMAPI/src/SMAPI.Toolkit/Serialization/JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentPack.ReadJsonFile[TModel](String path) in /home/pathoschild/git/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 443

#

Also here is the part of the content.json with the error:
86 {
87 "Action": "EditMap",
88 "Target": "Maps/StardewSuburbs_ridgeside_path",
89 "FromFile": "assets/ridgeside_path_patch.tbin",
90 "ToArea": { "X": 6, "Y": -1, "Width": 5, "Height": 3 }
91 "When": {
93 "HasMod |contains=Rafseazz.RSVCP": true
94 }
95 },

drowsy pewter
#

you have a syntax error at the end of line 90

tiny zealot
#

(i'm skeptical that "Y": -1 will work, but i've never tried it)

tacit moth
brittle ledge
#

Ridgeside shouldn't have any negative coords on the map, are you trying to patch in something beyond its bounds?

tacit moth
deep cypress
#

Negative Coordinates: The Undiscovered Country

stone crypt
#

FYI: Nino Kito played your Friendable Mr Qi mod on Twitch. So it will be on YouTube soon

rigid musk
#

oh my God

#

😭

#

I hate that /hj

#

I don't wanna be perceived but it's also great but also oh that makes me feel woozy

stone crypt
#

I watched it on Twitch, it was good 👍

rigid musk
#

SDVpufferfear that's.. good i hope he enjoyed it

#

I've been a long time subscriber lol

stone crypt
#

Nino also played my mod Haley's Pregnancy, before the 1.0.0 update. I want him to play the update with the new events!

rigid musk
rigid musk
stone crypt
rigid musk
#

God I don't wanna know what people think 😭

stone crypt
#

Don't worry about it! It was good 😊

lean river
#

Would anyone know where I can find a tutorial on how to make a romanceable characters?

deep cypress
#

Hi loves! Whats the C# command to set an NPC sprite frame?

dry flicker
#

Ciao, I'm adding support for SVE in my mod, which can be downloaded in additional files.

{
            "Action": "Include",
            "FromFile": "assets/Events/eventsSVE.json",
            "When": {
                "HasMod |contains=FlashShifter.StardewValleyExpandedCP" : true
            }
},```

Is it perhaps possible to add something like "If the fromFile doesn't find the file, add another one and put a warn in SMAPI?" without breaking the NPC
dry flicker
# lean river Would anyone know where I can find a tutorial on how to make a romanceable chara...
Stardew Modding Wiki

So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...

rigid musk
#

Unless they have the mod

#

I did it with mine with some events /event compatibility

dry flicker
#

yeah but, let's say that they have SVE, but they didn't download my additional files for compatibility with SVE, so even tho the WHEN will come out true, it won't find the file

#

🤔

rigid musk
#

But why make the file optional/additional?

#

You can just include it/the edits in your main files alongside the when condition

#

My power is out right now so I can't send the code snippet from mine but I can take a very poor picture with my phone kekw

dry flicker
#

thanks

rigid musk
#

SDVpufferparty

Also you can still include the file in your main mod, it just won't load unless they have SVE as well

lean river
#

About to start making my oc mod aa

dry flicker
lean river
#

Tysm!

brittle ledge