#making-mods-general

1 messages · Page 455 of 1

uncut viper
#

you can also just open Data/CraftingRecipes and see how many lines there are

rigid musk
#

that...

#

why did i not think of either of these things

#

i always do this to myself

fervent horizon
#

looks like 150

timid onyx
#

Where can I find the "Good night, dear" line that your spouse says in a speech balloon while in bed at night? Doesn't seem to be in any files in /Data or /Strings

hard fern
timid onyx
#

Are you sure? I thought it was part of the additional 1.6 spouse interactions like making them jump when you interact with them from behind

#

There's also a line akin to something like "Aren't you coming to bed, dear?"

#

I did experience these in a modded game but I do not think my dialogue mods would go out of the way to add C# interactions like that

ornate trellis
#

never heard of those before the only stuff I know is the general marriage dialogue

timid onyx
brittle pasture
#

10% chance per night

timid onyx
#

Awesome, thank you

hard fern
#

🤔 huh the more you know

brittle pasture
#

I saw those lines and I played like an avg of 2 hours per month smh my head

umbral plume
#

pst hey @gentle rose real quick; the animated portraits mod-i should make all the frames on the same sheet right? not as seperate files?

whole raptor
#

I'm actually kinda curious how the sheet looks like for animated portraits SDVpufferthinkblob

umbral plume
#

(although 64 pixels is tiny so i wanna make mine bigger like 192 but i dunno if thatll mess it up....?)

whole raptor
#

If we're talking about Iro's new framework, then it does support HD portraits

lucid iron
#

New hd portrait framework has layers so you can have eyes separate from mouth and so on

umbral plume
#

im just not entirely sure how im going to make sure i draw them aligned and not like a pixel off cause that would major suck

gentle rose
umbral plume
gentle rose
#

dw about it, it's all good! (though some people prefer to be asked about being DMed so it's usually best to ask in server, you'd be amazed how many spam DMs some people get)

umbral plume
gentle rose
#

you draw the entire portrait sheet in a single frame, then the entire portrait sheet for the next frame in a new file, etc etc

umbral plume
#

i used to make them seperate files because krita but the vanilla and your for modders thingy has it all on one big sheet so i wasnt sure which was the best to work with

gentle rose
#

so the things all in one sheet are the different emotions, not different frames

calm nebula
#

38

gentle rose
#

so the top left is portrait 0 (neutral? maybe?), top right is portrait 1 (happy? iirc?), etc etc

umbral plume
#

ohhhh like those strip photos from photo booths

gentle rose
#

exactly!

#

so each frame is built like that, so frame 1 has frame 1 of each portrait

umbral plume
#

okay so the first colomn is frame 1 of each emotion is one file, then the next colomn is frame 2 of each emotion is a second file and so on

gentle rose
#

not quite, there are always two columns and they're just more emotions

#

it goes

0 1
2 3
4 5
6 7

for most vanilla portrait sheets

#

but you can have over a hundred if you want (guess how we know...)

umbral plume
#

and lastly: does each portrait have to be 64 pixels cause thats tiny

brittle pasture
#

yes*
*there's a few HD portraits frameworks out there, including iro's one but tbh I'd recommend just working with 64x64 like mr ape intended

gentle rose
#

in vanilla yes, in my framework no

hard fern
#

🤔 so if i put this in the "Items" field in a shop entry, would it only sell items that have the specified context tag, and only on mondays?

                            "ItemId": "RANDOM_ITEMS (O)",
                            "PerItemCondition": "ITEM_CONTEXT_TAG Target {{ModId}}_hereismycontexttag",
                            "Condition": "DAY_OF_WEEK Mon"
                        }```
shut edge
#

hmm

umbral plume
#

its cool if theres no answer for this one but anyone got any advice to keep the portraits lined up so theyre not like a pixel off and i have to readjust them one by one? i wonder if i can use onion skins without using multiple frames in krita?

hard fern
#

use an editor with a grid

brittle pasture
#

(krita is one of those)

umbral plume
#

krita does so i should probably just line up the shoulders or whatever with the grid then ii guess

hard fern
#

gotcha

umbral plume
#

or i could use onion skins and then just delete the extra before finalizing it lol

#

anyway THANKS YALL i love this community so much yall are so damn helpful

umbral plume
#

I DONT HAVE ANY PENS THAT CAN DRAW SUCH SMALL PIXELS SDVpufferwaaah

lucid iron
#

Pencil tool at 1px?

umbral plume
#

HOW DID MR APE MAKE ART SO TINY

brittle pasture
#

with pixel art you're going to be primarily dropping pixels one by one

#

at the scale SDV uses

gentle rose
#

apparently krita has some built in brushes specifically for pixel art

hard fern
#

i think i messed up lol.

#

are these strings not LocalizedText or .

brittle pasture
#

code pls

hard fern
#

im juggling like 15 windows one moment 😔

calm nebula
#

Juggle 16

hard fern
#

ah i see it

#

wuoops

brittle pasture
#

though from the screenshots you may be missing the Strings/ part of Strings/1_6_Strings

#

yep lol

#

also : is the separator between the asset and the key, not another slash

hard fern
#

im also missing the closing bracket lol

#

you know what.

#

i was copying my mod

#

where i did it correctly

#

how did i fuck it up like this???

#

nice now my shop menu crashes when i turn my config on.

lucid iron
#

That's concerning

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 53 C# mods and 7 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

hard fern
#

i already fixed that

brittle pasture
#

ah I still see it in the logs so
probably not causing the crash though

hard fern
#

the error is at the very bottom

#

sorry it's cuz i patch reloaded a bunch of times

brittle pasture
#

looks like the error's coming from your recipe edits

hard fern
#

hm

#

im noticing it explodes and dies when i get to the cake

brittle pasture
#

(side note, your shop data is fine, but to limit confusion for yourself you should probably make the key and the Id field the same)

hard fern
#

it;s my recipes

brittle pasture
#

just in case can you post the main content file where you're defining those tokens

brittle pasture
#

MUSH is missing the quantity for the last item

hard fern
#

ah crap

#

thx

#

SDVpuffersweats nope

#

still crash

#

same error

brittle pasture
#

what the new log says

#

(the error is caused by the recipe having two ingredients with the same ID)

#

(previously it failed because your missing number causes some recipes to be parsed as having multiple ingredients with the ID 1 instead of 1 being the quantity)

#

your Shrimp Donut recipe is missing a number

#

and Warrior Smoothie

hard fern
#

ugh im going to explode

#

i did fix the smoothie one

#

ok im gonna give up for now

#

i need to be places

#

ok nvm i dont need to be places

#

i still missed one somehow

#

wait can you not patch reload dynamic tokens or something

brittle pasture
#

yeah it doesnt

shut edge
#

looks like the issues i was getting with livestock bazaar are because it didn't like my animals being different dimensions

#

which isn't a surprise or problem really

indigo yoke
#

hmmm. might be out of scope but I wonder if CJB Item Spawner could read all the monster data and generate a spawn egg for each of the monsters.

So while testing mods there are faster ways to just grab and test the baddies.

shut edge
#

debug ws marnie

#

helps a lot

brittle pasture
#

there were talks some time ago about CJB Item Spawner exposing an API so we can register custom spawns

shut edge
#

oh monsters, oops lol

hard fern
brittle pasture
#

doublecheck with the wiki

hard fern
#

ugh

#

so

#

sigh

#

thank you selph

#

i have to go fix like roughtly 3 mods now

#

hm nope it still doesn't work

#

wait what

brittle pasture
#

you didnt change it?

hard fern
#

sorry i parsed the wrong file

#

sorry i managed to misplace my entire mod???

#

it went to the shadow realm

glossy cargo
#

Has anyone ever had this issue?

[19:27:09 ERROR SMAPI]    Skipped mods
[19:27:09 ERROR SMAPI]    --------------------------------------------------
[19:27:09 ERROR SMAPI]       These mods could not be added to your game.

[19:27:09 ERROR SMAPI]       - StardewViewerEvents 0.0.1 because its DLL couldn't be loaded.
[19:27:09 TRACE SMAPI]         (Error: FileLoadException: Could not load file or assembly 'System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at StardewModdingAPI.Framework.ModLoading.AssemblyLoader.Load(IModMetadata mod, FileInfo assemblyFile, Boolean assumeCompatible) in SMAPI\Framework\ModLoading\AssemblyLoader.cs:line 178
   at StardewModdingAPI.Framework.SCore.TryLoadMod(IModMetadata mod, IModMetadata[] mods, AssemblyLoader assemblyLoader, IInterfaceProxyFactory proxyFactory, JsonHelper jsonHelper, ContentCoordinator contentCore, ModDatabase modDatabase, HashSet`1 suppressUpdateChecks, Nullable`1& failReason, String& errorReasonPhrase, String& errorDetails) in SMAPI\Framework\SCore.cs:line 2086)

The problem seems to be that it can't load System.Collections.Immutable, but the dll is clearly there

brittle pasture
#

doesn't the game come with that dll

#

just checked my install folder

glossy cargo
#

Oh, it seems like it does

#

interesting. Version incompatiblity, maybe?

unkempt wraith
#

Can I add more furniture textures to an existing AT furniture mod by just dragging a new one in the textures folder? or is it more complicated than that?
ie. a mod author that made 2 at furniture packs removed them from nexus and combined and reuploaded them on kofi, only thing is they also condensed and got rid of some texture I liked but I was wondering if I just drag some of those old textures into the new file if it will work?

glossy cargo
#

The game comes with the 6.0 version of it, but my mod requires >=8.0

#

I wonder how I can fix that....

gentle rose
glossy cargo
#

it's mine. I'm creating a new mod. Trying to launch the barebones version of it

#

I can do any trial and error anyone would suggest

#

but I believe Selph's intuition was very correct, and it's a conflict between the two versions. No clue how to fix it though

royal stump
#

I vaguely recall that being a persistent limitation of SMAPI's loading process, but Pathos or somebody who develops it would know better than me

#

the only real workaround I know myself is recreating the necessary bits in your own code base

lucid iron
lucid iron
glossy cargo
#

No clue, it's an indirect dependency

lucid iron
#

Hm yeah i was gonna say what if u change hint path but no clue how to do that for a nuget

#

*change hint path so that it just grabs the 6.0 from game

uncut viper
#

i wonder why its even trying to pull v9.0.0.0 of that assembly because when lookin at the repo, it seems like NET 6 support was only dropped 2 weeks ago for Discord.Net... but that wouldnt be in the latest stable release yet

#

and the timestamps of your dlls there also indicate its using the version from july, which is before they dropped net6 support

tiny zealot
hard fern
#

Umm i keep forgetting the name of it though

#

Let me find that again

lucid iron
#

did ppl ever get a 1x1 or 1x2 pet bowl working? i remeber some attempts

tiny zealot
#

that's enough info. thanks!

hard fern
#

Is the specific name

rigid musk
#

does anyone know where the icon for the qi coin is

#

i was guessing cursors but i may be blind (and that thing, as its name suggests, is cursed)

lucid iron
#

cursors :)

#

193 + 2 * 9, 373, 9, 10

rigid musk
#

of course it is

lucid iron
rigid musk
#

thank you chuchu 🚂

#

i am blind for sure

fickle lichen
#

hi there, so, i'm making a fashion sense mod and for now i made a ribbon, already made all the sprites (such as the front, back, etc) but for some reason whenever i wear it in-game, the ribbon will not show the different angles i made for it, instead it shows the same sprite over and over, but a bit cropped on the sides. could someone please help me? this is the json file in case it is needed.
https://smapi.io/json/none/269b7947e33642618e644007cd0a7d08

#

oh, and by the way; in case this is also needed, the whole image size is 24x76, while the sprite itself is 24x12

vernal crest
fickle lichen
#

oh, and by the way; today i've been testing out some of the tips you gave me, and there has been some pretty great progress; the ribbon shows up in the game! :p

vernal crest
#

Yeah that sounds like a good plan. A hint for what will help: open your ribbon png in your art program and find the pixel co-ordinates for the top left of each view

fickle lichen
#

what do you exactly mean by finding the pixel co-ordinates for each view? :>

#

sorry, i'm a bit slow lol

#

you mean finding out how many pixels does the sprite have?

#

....okay, i just tested out the ribbon in the game, and apparently changing the starting position numbers worked, but for some reason the sprite looks... cropped? i don't know how to explain it, but it just doesn't appear fully

hard fern
fickle lichen
glossy cargo
#

FWIW, I managed to downgrade Discord.Net to a version from 2 years ago, that used the same dll as Stardew does, and it worked. The library still seems to work with Discord for my purposes, so I think I'll be okay

fickle lichen
hard fern
fickle lichen
#

uhhh

#

i'm not sure about what do you mean

#

you mean the starting position?

hard fern
#

umm

#

maybe?

#

if you set the thing to be a siz

#

but didnt adjust the starting position

#

it'll be like.

#

size

#

maybe im too tired for this my brain is kinda frying

#

one sec

#

like.. ur hatsize

#

im looking at the github page rn

#

in the hat template example, where it has all of this stuff

fickle lichen
#

alright so the hatsize is 24x12 for the front, 14x12 for the right, 14x12 for the left, and 24x12 for the back

hard fern
#

you might have to adjust the starting position then

fickle lichen
#

hmm..

hard fern
#

bc i think it starts counting at the top left, but since you have gaps on both sides, it stops before it gets to the actual edge of your hat

fickle lichen
#

eh, i'll continue working with this tomorrow, i'm pretty tired rn

#

goodnight!

soft lance
#

Hey everyonne

#

Quick question

#

On Nexus, when you download a mod

#

How can you remove the super long random characters they give with it?

#

"Aquatic Sea Fish 1.0.2-38752-1-0-2-1761705112.zip"

#

It gets very annoying to see it, is this a bug with Nexus? Everything gets zipped normally, so I'm very confused

tiny zealot
#

it's not a bug. it's just how nexus assigns filenames

soft lance
devout otter
#

You can't. That's how Nexus index their filename. So what you do is pack your mod in another folder and hope that user will use that instead of your zip name.

soft lance
vernal crest
#

Yeah as long as people aren't unzipping by letting Windows give it a new folder with a name taken from the zip (in which case they will get a doubled folder) then it doesn't matter what the zip is called. And if they are, that's their problem lol

vernal crest
soft lance
#

Lol, I just realized my mod had no update keys, just added them...my mod has been out for a week...hopefully this wasnt too big of an issue..I mean v.1.0-1.0.1 has very minor bugs, so hopefully people on those versions know when to update, im shocked i never caught it till now lol

solid apex
#

are there links with an updated way to create maps? I wanted to create a sign that then teleports to the custom map/house, so I can make it more compatible with extensions mods. I downloaded Tiled, unpacked the Content folder, but I don't know ehere to go from hereSDVconcernedCA

vernal crest
solid apex
#

thank you

faint ingot
#

So... I am planting an idea in my head for a future mod, and it has me wondering: Is Yoba translated differently in other languages, or is it fairly universally just "Yoba"?

royal stump
#

I can't read all of them, but it's directly pronounced "yoba" in the majority (that is, in everything I can read)

hard fern
#

Yeah, that's what i gathered too. I checked about 7 or so language files

#

7 different languages

drowsy pewter
#

I can confirm its yoba in english

royal stump
#

the least literal one I can see is Иобы, which I guess would read like "ioby"

faint ingot
#

works for me thank you

#

While you're around, I have a question that I think is about FTM? Is it normal for an outdoor FTM area to spawn wood debris, it's not a big deal but I'd rather it didn't.

#

I'm redoing one of my maps anyway and it would be a good time to change that if possible

royal stump
#

FTM just spawns the things each pack tells it to, so that shouldn't happen unnecessarily
it doesn't stop base game spawns, though, so that'll happen if the game would normally do it

#

(I don't recall how sticks and such work normally, though, aside from the farm always spawning them)

calm nebula
#

Sticks and stones can break my bones but

dusky sail
faint ingot
#

Maybe it's unrelated to FTM but I couldn't find map settings that were helpful

vernal crest
#

Did you start your map by copying from vanilla?

faint ingot
#

To be honest I don't remember that's certainly possible

#

I do see some things like this in the TMX is that the source of the problem? <tile id="314"> <properties> <property name="Type" value="Wood"/> </properties> </tile>

royal stump
#

so as far as I know:
a) the forage in Data/Locations -> "Forage" could do that
b) any outdoor location will have weeds/twigs/stones appear, though it's much less common than on the farm/islandwest unless you intentionally set some map properties (e.g. "SpawnDebrisOnNewMonth")

#

that said, the map property skipWeedGrowth should turn "B" off entirely

#

but as far as FTM goes, it won't add twigs unless you intentionally spawn "Twig" or 294, etc

faint ingot
#

OK, thank you for the info I will tinker with those settings, and forgive me for thinking this was FTM's doing!

versed wyvern
#

Could I get a quick explanation to clarify how the "Priority" field works for Edit patches? Content Patcher's docs for Edit-type actions says that patches are first applied by priority, then by load order, then by the order they're written in the json, so that means an action with any priority specified will effectively cut in line for load order?

drowsy pewter
#

yes correct

#

load order is the order of each mod in the mod list, but priority will jump past that

#

So you can have patches that both take place before and after another mod's patches, if you need to control it in that detail

royal stump
#

tbc, the default priority of an edit is 0, so just specifying one at all doesn't mean you go first

versed wyvern
#

Hmm, so that confuses me

drowsy pewter
#

Whats your usecase?

#

We can help you choose a best course

versed wyvern
#

Okay, so... say Mod A loads a custom character, and Mod B which loads after Mod A contains edits to that character.
Reading the docs I was led to believe that if Mod B adds Priority fields to the edits they would then ignore the load order and jump ahead of Mod A, which sounded like that would break things
Esca just clarified that even without a specified priority they are considered Priority 0, so actually both actions are ignoring load order, it's just that if we don't specify priority then they have the same priority and it defers to load order to decide what goes first?

drowsy pewter
#

Without priority they will follow load order yes

#

In this case I would suggest that Mod B add a dependency (full dependency or false dependency) to the manifest to ensure it loads second

royal stump
#

loads happen before any edits, so unless Mod A is doing actual edits, it may be a moot point

drowsy pewter
#

also a prudent point haha

royal stump
#

but the main thing with priority is that all edits that don't specify a priority still have "Priority": "Default" internally

versed wyvern
#

Okay, I think that all makes sense, I was just confused about how it sounded like the priority field existing at all was making things cut in line

drowsy pewter
#

So if Mod B adds Priority Early, it will cut ahead and break stuff. But if it adds Priority Late it wouldnt, it would come second. It just would be slightly better to depend on load order for this type of thing.

#

Priority is to control mod patch order, not to always cut in front. A lot of times you want to cut behind

royal stump
#

yeah, the common use is just "oh my basic edit is getting overwritten by something" -> add "Priority": "Late"

#

SDVpuffernerd a quick reference, assuming I didn't get lost somewhere

drowsy pewter
#

I feel like I'm in class

versed wyvern
#

I got here in the first place trying to research some kind of mod conflict involving patch order but I think this means Priority isn't the source of the issue at all and I'm in over my head henyaDerp

drowsy pewter
#

if you want to explain the conflict we can help

devout otter
#

Sorry to interject a bit. But I feel like I need to point out another Priority behaviour: if this is a Load and not an Edit, then the priority is Exclusive if not specified, not Default.

#

You can't have two mods Loading the same asset with an Exclusive priority.

#

And if one of them is Exclusive, it would override any other priority.

versed wyvern
# drowsy pewter if you want to explain the conflict we can help

Might be a bit tricky because the problems aren't from my own mods, just something that was reported to me regarding their dependencies
I'm using Scale Up Unofficial, an update to Platonymous' Scale Up mod using open source code, for one of my mods, and a user mentioned that SUU resulted in an error with another mod's EditImage actions that resulted in System.InvalidCastException: Can't replace loaded asset of type ScaleUpUnofficial.ReplacedTexture with value of type Texture2D. The new type must be compatible to prevent game errors.
The EditImage actions in question had Late+ priorities set and removing them also removed the error, and the error also did not appear with Early priority. So my assumption was that somehow adding the priority field was causing the patch action to step behind something it shouldn't be, but from what you folks just explained to me that shouldn't be possible because that's not how Priority works, right?

So from there just leaves me thinking that maybe it's just a bug with SUU if a mod contains a Late priority Edit, but my attempt to reproduce such an error in my own mods didn't break anything so right now I'm just confuse trying to find something to report to the author WarShrug

drowsy pewter
#

If scale up is involved it's a different thing altogether

versed wyvern
#

My guess had been that adding a priority field somehow causes Edit actions to interact with Scale Up in the wrong order

#

But that sounds like that shouldn't be possible

drowsy pewter
#

I mean it's a pre-1.6 unofficial update C# mod getting involved in load order, it could be anything from an issue with the load order itself to with the C# mod's unofficial update

#

So idk how helpful we could be

royal stump
#

yeah, it's not so much a CP/priority choice issue there as Scale Up being incompatible with something (e.g. it might assume all edits are Late or earlier)

versed wyvern
#

Aye, I was just trying to figure out how I could make a bug report to the author but I can't... actually break anything in the same way so far rosedopHuh

devout otter
#

So the order of patch is like. You have a Load on your asset using SUU, then another mod does EditImage on that asset using Late priority?

versed wyvern
#

Nah, the assets were from completely unrelated mods but SUU has to patch into the sprite code and it appeared as if the priority field was causing something to break with basic Content Patcher functionality

#

So my questions about how Priority worked ruled out my assumption that it was causing the actions to jump ahead of the load order, and this must just be a bug with SUU that I should figure out how to reproduce before reporting

indigo yoke
#

I am confused on why they are so far apart.
The debug code says

[Wizardry] The bugs position is {X:480.5559 Y:578.1362}
[Wizardry] The bug draw position is {X:472.3604 Y:492.78833}
[Wizardry] The player position is {X:480.5559 Y:578.1362}

If I use temporary animated sprites it works.

Does the draw spritebatch have a different ... hmmmm. I think I might know the issue.

#

nope still off T_T thought it might be because rendered hud having a different point zero than rendered world and tried rendered world spritebatch

hard fern
#

discord compression is doing Things to that image lol

indigo yoke
#

fixed it

#

Tempanimation sprites have a Game1.GlobalToLocal(Game1.viewport, position). neat

#

now it's not respecting layers T_T sadness

indigo yoke
#

back to temp sprites @_@

gentle rose
gentle rose
#

look up the other monogame sprite batch modes or I think it's actually the crafting menu that has an example of switching them

#

one of the menus

hallow prism
#

!stone

ocean sailBOT
#

🪨 The item ID for Stone is 390.

fathom hound
#

!Itemid

ocean sailBOT
vast hearth
#

Hi! Who knows which file in the game is responsible for the character’s sprite specifically in the gift log? Because the sprite has been replaced everywhere else, but not in the gift log.

vernal crest
#

Their base sprite at Characters/<NPC Name>. Changes to their sprite using Appearance don't get reflected in the Gift Log.

vast hearth
drowsy pewter
#

it will only show abigail.xnb in the gift log in winter as aba mentioned

#

If your change for that asset is turned off in winter, it will show the vanilla art

vernal crest
#

Winter sprites are set using Appearances, so even in vanilla NPCs should not have winter clothes in the gift log

vast hearth
vernal crest
#

Hmm. Is your change to Characters/Abigail conditional in any way?

jaunty moat
#

dammit I recolored every tilesheet where I saw any orange grass but there are still these patches

#

I've seen it in recolors that aren't updated for 1.6, which file am I missing?

vast hearth
vernal crest
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.

vernal crest
jaunty moat
#

thanks!

vernal crest
#

You might need to adjust it in the settings to turn tile data info on. I haven't used it in "player" mode for so long I don't remember what it shows lol

vast hearth
# vernal crest !json Can you share a link to your json, please?

I wasn’t paying close attention—while learning how Content Patcher works, I had set a “When:” condition and specified the season. Later I learned that this isn’t actually necessary, since the file is replaced based on the original file’s name, but I forgot to update this in content.json. 😅

Thanks for pointing that out.

#

Now it works properly 🙂

jaunty moat
#

I just wanted to make green fall for earthy recolor. I begun with just replacing the fall_outdoorsTileSheet and all fall tilesheets with their spring counterparts. They layer perfectly onto each other, have the same resolution of 400x1268, but when I replace the fall_outdoorsTileSheet it just leaves those weird spots

vernal crest
#

Are you accounting for SVE's additional tilesheets?

tiny zealot
jaunty moat
vernal crest
#

Also check the fall_outdoorsTileSheet2 like ichor said

jaunty moat
#

yeah, I checked it out as well

#

Lookup Anything clearly says that the tile is from fall_outdoorsTileSheet and I even found the individual tiles on the sheet

#

And they're recolored

#

I'll see maybe some other mod is overriding it

vernal crest
#

Yeah you can check your log

#

If you upload it to the log parser and then click the Trace button and search fall_outdoors it will show you all of the mods editing those tilesheets and in what order

jaunty moat
#

How do I get the log?

vernal crest
#

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

jaunty moat
#

thanks, I'll take a look

#

Yeah, it's some mod, I did a quick test with just the recolor and it works fine

#

off to reading the log I go

jaunty moat
#

It was because of some tilesheets that were a dependancy for the mot I have deleted long ago

#

Guess that's what you get for not keeping your modlist tidy

whole raptor
#

Interesting to see how a custom wedding events page on the wiki was created 2 hours after I released my wedding mod back in may SDVpuffersquee

autumn tide
#

hellooo wanna double check something, <season>_<day> spouse dialog takes priority over all other types of generic spouse dialog, right?

tiny zealot
#

the game checks keys in the order they are listed in the table

autumn tide
#

OH

#

alrrr ty!

tiny zealot
autumn tide
#

gotcha, thanks :)

#

hmm should we add that to the wiki?

tiny zealot
#

it is there, but it's not especially prominent

autumn tide
#

oh, okay

#

thanks :)

#

found it lol, I might make it a bit more prominent bc rn it's effectively a footnote

#

is this correct? also want it to be easily legible, lmk if it isn't!
An NPC's named file in <samp>Characters\Dialogue</samp> contains most of their dialogue. The game will select dialogue from one of the sections below, in the order shown. This means keys listed earlier in each table are checked first (and thus have higher priority), but note that some keys only apply in certain circumstances or have a random chance to be chosen, in which case lower-priority entries may appear.

#

for a wiki entry! this is the og line:
An NPC's named file in Character\Dialogue contains most of their dialogue. The game will choose dialogue from one of the sections below, in the order shown here.

#

@tiny zealot forgot to reply to you lol

tiny zealot
#

might as well fix the typo so it says Characters\Dialogue instead of Character\Dialogue

autumn tide
#

oh, will do!

#

alr updated the message

#

anddd fixed another typo of mine lol

#

does it look alr otherwise?

tiny zealot
#

if i were writing it, i'd say
... from one of the sections below, in the order shown. This means keys listed earlier in each table are checked first, but note that some keys only apply in certain circumstances or only have a random chance to be chosen, in which case lower-priority entries may appear.
but i suppose it's fine

autumn tide
#

that's way better lol, I'll change it to that

#

okayy updated it

#

hmm gonna make the edit now

autumn tide
#

back again lol, sooooo hypothetically speaking would it be possible to make an event set in lewis's basement?

#

or would i have to like duplicate that map and shit and treat it as a custom map?

tiny zealot
#

the real one should work, but watch out for hardcoded stuff which i have a feeling will be involved

autumn tide
#

hmm okay

#

i want krobus and dwarf to break into the basement and get attacked by the demon shorts-

#

if I'm gonna traumatize them i owe them some cute fun events LOL

tiny zealot
#

i don't know anything about how that area is set up but i assume the shorts are hardcoded in an annoying way, so my expectation is

  • you won't be able to stop the shorts from spawning
  • you won't be able to control what they do
autumn tide
tiny zealot
#

no idea lol but i would guess no

autumn tide
#

hmmm okay

#

found the entry in locations:

    "DisplayName": null,
    "DefaultArrivalTile": {
      "X": 4,
      "Y": 4
    },
    "ExcludeFromNpcPathfinding": false,
    "CreateOnLoad": {
      "MapPath": "Maps\\LewisBasement",
      "Type": null,
      "AlwaysActive": false
    },
    "FormerLocationNames": [],
    "CanPlantHere": null,
    "CanHaveGreenRainSpawns": true,
    "ArtifactSpots": [],
    "FishAreas": {},
    "Fish": [],
    "Forage": [],
    "MinDailyWeeds": 2,
    "MaxDailyWeeds": 5,
    "FirstDayWeedMultiplier": 15,
    "MinDailyForageSpawn": 1,
    "MaxDailyForageSpawn": 4,
    "MaxSpawnedForageAtOnce": 6,
    "ChanceForClay": 0.03,
    "Music": [],
    "MusicDefault": "Upper_Ambient",
    "MusicContext": "Default",
    "MusicIgnoredInRain": false,
    "MusicIgnoredInSpring": false,
    "MusicIgnoredInSummer": false,
    "MusicIgnoredInFall": false,
    "MusicIgnoredInFallDebris": false,
    "MusicIgnoredInWinter": false,
    "MusicIsTownTheme": false,
    "CustomFields": null
  }
}```
tiny zealot
#

try stuff and see what happens, i guess! you might end up having to duplicate the map to avoid the shorts, but then you'll have to try to recreate them somehow and it might get janky

autumn tide
#

alr!

#

I might make the shorts a temp NPC or some shit lol

#

this is gonna be chaos but I'm excited :)))

#

actually, I think I'll duplicate the map from the beginning to avoid hardcoded stuffs

#

...eugh wiki here I come-

#

i already downloaded tiled so that's good

calm nebula
#

(You can always changeToTemporaryMap)

#

You dont need to duplicate the actual map

#

Roughly - changeLocation goes to thr actual location

autumn tide
#

oh?

autumn tide
#

..found it lol

#

it's an event command

fickle lichen
#

oof.. i'm making a hats mod, and for now the first hat (a ribbon) looks like this, and i've been tweaking the values/numbers so much and testing the game for so many times 😭

#

also yeah the middle part of the ribbon is supposed to be an eye-

autumn tide
#

the eye looks cool :)

fickle lichen
#

it's still pretty misaligned

fickle lichen
autumn tide
#

and make one side of the bow lower than the other?

#

some dithering might help it look more textured too

fickle lichen
jaunty moat
#

ye it's cool

dire kestrel
fickle lichen
#

is it fs_reload and not fs reload? (i'm sorry if i'm wrong...)

#

please don't make fun of me lmao 😭

tender bloom
#

Yeah the underscore matters

fickle lichen
autumn tide
#

sorry as in I sympathize with your struggles lol

fickle lichen
#

OHH

#

it's oki

#

:D

#

after all, i'm new in the modding stuff so i'll be practicing until everything comes fine, because that's what it is about! :>

#

i don't wanna give up yet

#

i'll believe in myself :D

autumn tide
#

istg the case-sensitivity

round dock
#

!anyonecancook you can do it SDVpufferheart

ocean sailBOT
#
fickle lichen
#

i tried to type fs_reload in the smapi console, but for some reason it doesn't work for me? i mean, nothing happens

autumn tide
#

hmm, put debug before it maybe?

fickle lichen
#

okay but like.. how would i exactly type it? do i type something like debug_fs_reload or something like that?

autumn tide
#

debug fs_reload i think? also very much new to modding lol

fickle lichen
#

oh, okay! thank you, i'll test it out :p

dire kestrel
#

are you pressing enter after typing it

autumn tide
#

ofc!

fickle lichen
whole raptor
#

@simple girder Hi, I'm planning to update my Enchanted Ceremony mod soon-ish (probably) and I saw lots of people wanted to see Fleurine as a wedding guest. Would you mind if she participated if your mod is installed?

dire kestrel
# fickle lichen yes

not sure what's going on there then SDVpetchickensanta it should output something, even if no foreign packs are loaded

unreal spoke
#

Make sure you didn’t accidentally uninstall Console Commands. That might potentially be the problem.

uncut viper
#

Console Commands is not required as the debug prefix is not required

#

Console Commands adds a command prefix debug for running the vanilla debug commands but fs_reload is Fashion Sense's own thing and you would just type fs_reload

#

same reason you dont need to type debug patch reload ModId for CP mods

whole raptor
#

Do NPCs have a conversation topic about player getting married? SDVpufferthinkblob

uncut viper
#

yes, married_<Spouse Name>

#

as well as the generic married

#

if you've already been married once before you even get married_twice (instead of married, it wont reset that one)

#

the spouse-specific one will happen every time as long as you get married to a different person every time or divorce them but the others only happen once

whole raptor
#

Oh, so I wouldn't even need to add a topic, I could just add a dialogue with a key for a specific spouse? Neat

uncut viper
#

you can yeah

#

there's also roommates_<Spouse Name>

#

(there is no generic roommates or roommates_twice)

#

these all do still last the default 4 days though so if you wanted longer thatd be good reason for your own topic i suppose

fickle lichen
#

finally, i managed to make all the ribbon alignments look great 😭

#

this took me so much time, but i'm glad i got my goal!!

vernal crest
fickle lichen
autumn tide
fickle lichen
autumn tide
#

uhhh anyone know where the spring_objects things is? the one with all the item sprites?

#

istg I'm going insane looking through the game files-

#

or does it have a different name?

#

FOUND IT

#

maps

#

..why do i only find the answer to my questions after asking- SDVpufferchickcry SDVpufferchickcry SDVpufferchickcry SDVpufferchickcry SDVpufferchickcry

#

now to find the number for the exact sprite-

iron ridge
#

ooh i should make

gentle rose
#

or a tiled plugin! or both!

#

I mean it's all javascript so SDVkrobusgiggle

hard fern
#

😔 the actual map never loaded in for me on that

gentle rose
#

I could have a look at more automation but it would have to be on a server because I do NOT have 73GB free for the mod dump SDVpuffersquee

#

I don't think I have 7.3GB free tbh

iron ridge
iron ridge
iron ridge
iron ridge
uncut viper
#

(thank you iro for reminding me to delete the second copy of the mod dump I had that I forgot to ever delete)

indigo yoke
#

I am not home so I can't check the unpacked data atm but an idea popped in my head and I am super curious about it:

Can locations have custom tags like items?

royal stump
#

GameLocation has modData you can use, though not really tags as such

#

that and map properties, I suppose

hallow prism
#

there is a location context too, but i don't think locations can have several of those

brittle pasture
#

location data has CustomFields

indigo yoke
brittle pasture
#

most data entities in game has CustomFields really (aside from the string ones that we're all praying 1.7 kill someday)

royal stump
#

yeah, several options can approximate tags, depending on what you want to do exactly

autumn tide
#

hmmmmmmmm

indigo yoke
autumn tide
#

hey! got questions about advancedMove, for a loop, does stopAdvancedMoves immediately stop the character from moving or does it wait until the sequence is over?

royal stump
#

I'm not familiar with the feature, but you could probably choose a field ID to check for it, then set the field's value for known vanilla/etc locations

#

e.g. via mod data, location.modData["modID_SomeTagID"] = "true";
or if several tags would be involved, location.modData["modID_Tags"] = "some_tag, some_other_tag";

#

one of the CP-accessible things would be better if mod authors are intended to add them

vernal crest
autumn tide
hard fern
indigo yoke
royal stump
#

(and if all else fails, your mod could provide a data asset that's just like "list of locations that do this thing" or have these tags)

hard fern
#

maybe my laptop is just in loading purgatory

brittle pasture
iron ridge
hard fern
#

i dunno what that is...

iron ridge
#

press f12 or ctrl + shift + i, go into network and is there any red

#

oh no there's always going to be red

royal stump
brittle pasture
#

if you want something equivalent to item context tags CustomFields is definitely the way to go

hard fern
#

is this the red stuff?

#

oh no now the website froze

indigo yoke
iron ridge
#

some just dont have proper images, but it shouldnt cause issues

iron ridge
hard fern
#

🤔 do you think people would notice/care if i just cloned my shop for the night market without making the one in the desert disappear

indigo yoke
vernal crest
#

I guess if people playing MP happened to have one player at the night market and one in the desert at the same time they'd notice but I don't think there'd be outrage lol

royal stump
# indigo yoke I'll look into it when I get the chance.

for ref, both Data/Locations and Data/LocationContexts entries have a field like this at the bottom:

"CustomFields": null

which in C# is this

/// <summary>Custom fields ignored by the base game, for use by mods.</summary>
public Dictionary<string, string> CustomFields;
#

so you & location adders could set a particular field in there

brittle pasture
#

[[Modding:Location_data]]

hard fern
#

SDVpufferflat dang i have no idea where people stand in the night market

brittle pasture
#

(for full reference)

hard fern
#

does anyone know if npcs stand here on any of the 3 days the night market is open?

vernal crest
#

Vanilla or modded? Because almost certainly for modded

hard fern
#

uhhh SDVpuffersweats

vernal crest
#

You should be able to check doing find in files though

#

Just search across your game/mods folders for the coordinates

hard fern
#

all i really need to know is sve + vanilla

#

i guess i could just check each one manually for each date though

vernal crest
#

Manually as in opening all the files one by one?

hard fern
#

yeah

#

wait no not files

#

i meant just watching the npcs go to the festival

vernal crest
#

No just do a find in files search

#

Let me try it

hard fern
#

im trying but i can't

vernal crest
#

What's the coords of one of the tiles?

hard fern
#

10 37

#

🤔 huh. looks like nobody actually goes there

#

not on festival day at least

vernal crest
#

Nope, but Emily goes there on Fridays when married lol

hard fern
#

she's been patched in

indigo yoke
vernal crest
# hard fern she's been patched in

You could probably ask Scarlett to check on modded NPCs for you as well if you wanted to, since she has everyone and their dog installed

hard fern
#

since my shop is 2 tiles wide it should still be accessible via the flag even if an npc is standing on her

vernal crest
#

Haha no pressure! I just wanted to let you know if you wanted to do it but didn't want to have to get so many NPCs haha

gaunt orbit
#

I want to make a fancy text mod so badly but I don't have the TIME SDVpufferwaaah

gentle rose
#

fancy text?

#

ichor is making a font mod I think

gaunt orbit
#

Yeah like inserting text effects into sprite text

#

For dialogue or mail mainly but also StardewUi

next plaza
#

I've been wanting to do that too

#

It's on my "if I ever get around to reworking my UI system" list

uncut viper
#

throwing my hat into the "Wanting to make a mod that does that" ring too mostly since the latest deltarune chapters

brave fable
#

sitting on my wavy text throne, sipping on shaking strings

next plaza
#

Clearly, I just need a mod that rips the game's UI system apart and replaces it all with Mlem.UI (which has built in text formatting (including wobbly, @brave fable!), and the ability to add custom ones

gaunt orbit
next plaza
#

(I was using Mlem with one of my game projects)

gaunt orbit
next plaza
#

Good question. Dunno

#

I can barely read my own mind. No way I'll manage reading yours

gaunt orbit
#

Oh they made Actually Additions! That's why they sound familiar

next plaza
next plaza
#

Like, the MC mod????

gaunt orbit
#

Yeah!

next plaza
#

...huh

gaunt orbit
#

Small world I guess

next plaza
#

It's almost like many programming modders end up on the "make my own game" pipeline sooner or later

gaunt orbit
#

And from there you go to "make my own library/engine"

next plaza
#

I may have taken a stab at making SDV text fields not suck recently, but ended up getting annoyed at it after realizing I had to rework it to support emoji too

#

(Since my main usecase was entering commands in the chatbox, it kinda had to work with the chat box)

gaunt orbit
#

Text fields are genuinely evil

#

Thank God for NamingMenu

next plaza
#

I finally learned exactly how ctrl+left/right in most programs worked after carefully examining it

#

I never thought I'd learn that

next plaza
#

What all was I doing?

  • Movable caret instead of always at the end
  • Delete key support added (with behavior as expected)
  • Using the mouse
  • Selecting text, both with cursor and arrow keys+shift
  • Using ctrl to traverse words in a way you'd expect from any other program
  • Ctrl+A, Ctrl+C, and Ctrl+X all work as well (+Ctrl+V working as expected with selections involved)
#

The part I stopped at was getting text to scroll if it was longer than the text box... but after I stopped from getting annoyed, I realized vanilla doesn't allow text longer than the text box anyways

gaunt orbit
#

I think I did scrolling in my search box?

next plaza
#

Ah, but did you have caret movement and selection? That makes it much trickier

gaunt orbit
#

Though it's primitive and just takes the last n characters of the string

#

Yeah it's not that advanced

#

Though I did add right-click to clear, partly because it's more efficient but mostly because I developed that reflex from years of tmi/nei/jei/emi searching

next plaza
#

Honestly if I skip the text scrolling part, it's probably very close to ready

next plaza
#

I'd always use ctrl+a + delete/backspace

#

(In general, not sure if the MC mods work with that)

gaunt orbit
#

Some of them support it

brave fable
#

it's all for nothing if your text input doesn't support ctrl+backspace and ctrl+delete

uncut viper
#

the right click clear is vital to me thats why i added that to searchable collections page

next plaza
#

That was fully working

uncut viper
#

(also because of the tmi/nei/jei/emi searching for me)

next plaza
#

Seriously, it was basically everything you'd expect from a normal textbox excluding right stuff (unless I'm forgetting something)

#

I hadn't fully tested the mouse part yet but I think it was half broken, and like I said I didn't finish the scrolling text.

But besides that? 100% working

gaunt orbit
#

Genuinely impressive

next plaza
#

More like an impressive amount of suffering

#

I saved the code in a branch, maybe tomorrow I'll go back to it and try to finish it without the text scrolling

vernal crest
#

Before I go get lost in the decompile, does anyone know how the game determines that the slime hutch troughs are valid to water?

uncut viper
#
public override bool performToolAction(Tool t, int tileX, int tileY)
{
  if (t is WateringCan && tileX == 16 && tileY >= 6 && tileY <= 9)
  {
    this.waterSpots[tileY - 6] = true;
  }
  return false;
}
#

in SlimeHutch.cs

vernal crest
#

Oh darn it's based on actual tile coords? Well, poop. Thank you for finding it so speedily for me though!

uncut viper
#

it does a similar check for sprinklers on dayupdate

vernal crest
#

Hmm the monster hutch framework hutch interior is way bigger than that, it must change it

uncut viper
#

it does patch a bunch of hutch functions

vernal crest
uncut viper
#

i think thats just making every spot waterable

#

idk the reasoning exactly for multiplying the coordinates but i think it just means no matter where you water itll mark it as watered in some way and then its own WaterSpot detection function at the bottom is used in place of the vanilla check for whether or not something is a water spot

#

which will account for the spot you watered

vernal crest
#

My guess is that it's using the tile id to determine if it's a water spot?

uncut viper
#

i meant like there are other ways they couldve kept track and idk why they chose this way specifically

#

the watering can check isnt checking anything besides that it is a watering can

#

if its a watering can then the tile you watered WILL be marked watered

#

no matter where the tile is

vernal crest
#

So I could just water the floor and even though it doesn't change texture it will count?

#

Huh

uncut viper
#

probably? idk i didnt feel like looking at the giant DayUpdate prefix up above im just goin off the bottom 3 functions

#

or bottom 4 ig

vernal crest
#

Well, I can check that I suppose

vernal crest
#

That does appear to be what is happening

calm nebula
#

That's all

#

Doesn't seem to be checking anything else yeah

uncut viper
vernal crest
#

Thanks Button!

tiny zealot
#

and yet it's been enough work just to get that done! sheesh /lh

next plaza
#

Me after dinner: maybe I should mod a little, or possibly even actually play something
Me now: I have to go to bed soon and all I've done is blabber on discord and watch a video or two

lucid mulch
#

ok I have a new reason to want to bump SMAPI to .NET8/9/10
https://github.com/dotnet/runtime/discussions/115627 this thread is a fun read, and has osu and tMod case studies in it about how hotswapping the GC out with a different one has helped improve frametime pacing

spice anchor
#

I am now on the wiki!! SDVpufferparty

next plaza
calm nebula
#

No pause GC

lucid mulch
#

the thread name is misleading, the alternative GC Satori is still pause GC

calm nebula
#

SinZ have you played with the user/server GC setting?

#

In theory a less pause happy gc

lucid mulch
#

SpriteMaster did back in the day, but I haven't done any yet

#

part of my work in Profiler to track the GC events was ahead of starting to mess with GC knobs

spice anchor
#

I have become cheesy ouo

#

I can showcase my goober portraits now 😄

lucid mulch
calm nebula
#

Fancy

calm nebula
#

It doesnt feel like 2000ms ...

lucid mulch
#

one thing chicken-bones as part of tMod did find was that asking for a Gen0 background GC cleanup every frame improved performance

calm nebula
#

....huh

#

Really?

lucid mulch
calm nebula
#

I feel like people would really notice 2 full seconds

#

It's done on a backyard thread right

#

Background

spice anchor
#

Does the publish app not work on mobile?

calm nebula
#

English is hard

lucid mulch
spice anchor
#

/publish

#

Wh

calm nebula
#

Is terraria threaded

#

Threadable

#

Thread friendly

#

A sewing friend

lucid mulch
#

It sounds like they are slightly more background thread than stardew but not too much

calm nebula
#

Stardew does request gen 0 gc every time you leave one map and go to another

spice anchor
#

Oh I'm dumb xD

calm nebula
#

Easy enough to test the every frame thing

lucid mulch
#

Yes, this is a largely single threaded application. We utilise background threads for some computation, but normally do not allocate on those threads. Game developers are always happy to trade lower main thread time for higher overall CPU usage, because most games are inherently hard to parallelise.

#

In a similar manner, doing GC's more frequently means higher overall GC time, but lower individual GC time. Since games care primarily about their frame budget, a shorter GC that runs every frame is preferable to a longer GC that runs periodically (especially if we have no control over when it runs).

calm nebula
#

Why is it so much faster

lucid mulch
#

Satori GC has classic Dijkstra-style write barries, so throughput is comparable to the default CoreCLR GC. Everything allocation-sensitive gets eventually limited by how fast you zero-out memory, so this is unsurprising.

Satori GC has a generational incremental concurrent GC design. All major GC phases that are proportional to the heap size run concurrently with the application threads. That is - all except compaction, which would require read barrier to run concurrently. But compaction is just an optional thing that GC can do, but does not have to. Native allocators do not compact and do just fine. Some other GCs (i.e. Go lang GC*) do not compact either.

In LowLatency mode Satori GC turns off compaction. That may trade a slightly larger heap for better latency guarantees, 0% - 30%, depends on workload..
In rare cases you may even see a reduction in heap size as collections happen faster or if compaction was not very useful. Like in some ASP.Net scenarios where except for a small resident set everything dies after request is over - so why compact what soon will be garbage? (it is hard for GC to know this though without some longer-term history/statistics)
https://github.com/dotnet/runtime/discussions/115627#discussioncomment-13162705

calm nebula
#

Still, you should be able to very easily benchmark "running gen 0 every frame" SDVpufferthinkblob

#

Nice, thanks!

lucid mulch
#

The main result that has been verified is that Satori is less kind to low memory devices than the traditional workstation GC, but in intermediate/high memory, it gets much better latency performance

calm nebula
#

RAM is cheap

gaunt orbit
#

Monogame itself is single-threaded, which makes multithreading any game built on it very difficult

#

And Terraria is very much not designed for multithreading

calm nebula
#

....although tbh just....if I strongly care about gc latency I would be in Rust

#

...i think of this as i read massive amounts of data into memory in python.....

#

So I can understand why core dotnet team doesnt want to work on it

jolly light
#

Hello, I'm trying to add my boots with content patcher. I've read wiki guide(https://stardewvalleywiki.com/Modding:Boots). I noticed that there's a boot color option. To make my shoes look blue, I create a 1*1 texture with a blue pixel and set the color sheet index to 0 with corresponding color texture, but the shoes color didn't change at all, what am i doing wrong?

calm nebula
#

Esp if game consoles pack their own gc

#

Game frameworks

#

Unity

calm nebula
#

I forgot...check the base game but I recall 4 pixels

lucid mulch
#

unity eventually is going to be CoreCLR and then would care about modern advancements in GC

golden basin
#

im slowly driving myself insane : D

jolly light
thorn sorrel
#

Got an issue that's driving me nuts. Maybe someone can help. The modded eggs go in fine but they keep spitting out vanilla mayo instead of the modded mayo:

gaunt orbit
#

Please fix the indentation SDVpufferwaaah

next plaza
#

Vscode extension that doesn’t allow incorrect indentation one

brittle pasture
#

(upload your code to smapi.io/json and post the link here! it makes the viewing experience much better and also catches any low hanging errors)

#

(and yes, indent your code)

jolly light
#

Btw, I used gpt5 to help me debug my cp pack, it gave me the following code:

{
  "Action": "EditData",
  "Target": "Data/Boots",
  "Entries": {
    "200": { 
      "Name": "Magic Boots",
      "DisplayName": "Magic Boots",
      "Description": "Magic Boots",
      "DefenseBonus": 3,
      "ImmunityBonus": 2,
      "Price": 1000,
      "Appearance": 6,
      "IndexInColorSheet": -1
    }
  }
}

But in the wiki, each entry is a simple text instead of a well-structured json (like "Name/Desc/Price/.../..."). Does content patcher support editing boot data like this?

brittle pasture
#

yeah that's nonsense lmao

#

don't trust ai for shit

#

boots data is indeed still a slash separated string

next plaza
jolly light
#

Lol thx for your answer.

brittle pasture
#

(that is changing in 1.7, but that's years away, and certainly not valid code currently)

next plaza
next plaza
lean veldt
#

Hello I'm editing a custom farm map, what are these map properties? Wiki doesn't have these

jolly light
#

The migration guide comes so early.

next plaza
#

I know of at least 2-3 sizable things that aren’t on there yet

#

And a couple smaller ones as well

jolly light
#

Changes in 1.7 look fascinating😋

brittle pasture
thorn sorrel
vernal crest
thorn sorrel
#

Hmm. Did that and it still wants to spit out vanilla mayo

brittle pasture
#

if you use autoindent, Entries and MoveEntries must be on the same indent level

vernal crest
thorn sorrel
brittle pasture
#

had to go afk again and noticed I pinged the wrong person SDVpufferwaaah
sorry aba

jolly light
#

What is a context tag? Is it able to determine game logic, or just used for categorization?(Im quite new to sdv modding)

brittle pasture
#

both
some machines/shops/etc. may choose to interact with every item of a certain context tag instead of specific item IDs

#

you can define any tag you want and attach them to any items you want

jolly light
#

Like a component in unity?

brittle pasture
#

I guess? though context tags by themselves do not define any behavior

jolly light
#

Thx again:)

cloud condor
#

Hi. I'm trying to makes the player go to a custom dimension and I keep running into an error when I try to give the quest to the player with the quest for some reason being null

brittle pasture
#

(side note but I recommend adding the {{ModId}} token to your quest ID as well)

#

though I think an error will only be logged if you use Farmer.addQuest

cloud condor
#

this is the error im getting in the console log:

[23:07:33 ERROR Content Patcher] This mod failed in the GameLoop.TimeChanged event. Technical details:
NullReferenceException: Object reference not set to an instance of an object.
at ContentPatcher.Framework.TokenManager.<>c.<GetGlobalValueProviders>b__34_41(Quest p) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\TokenManager.cs:line 223
at System.Linq.Enumerable.SelectIListIterator2.MoveNext() at System.Collections.Generic.HashSet1.UnionWith(IEnumerable1 other) at System.Collections.Generic.HashSet1..ctor(IEnumerable1 collection, IEqualityComparer1 comparer)
at Pathoschild.Stardew.Common.Utilities.InvariantSet..ctor(IEnumerable1 values) in E:\source\_Stardew\Mods.Pathoschild\Common\Utilities\InvariantSet.cs:line 52 at ContentPatcher.Framework.InvariantSets.From(IEnumerable1 values) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\InvariantSets.cs:line 84
at ContentPatcher.Framework.Tokens.ValueProviders.Players.PerPlayerValueProvider.<UpdateContext>b__8_0() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Tokens\ValueProviders\Players\PerPlayerValueProvider.cs:line 89
at ContentPatcher.Framework.Tokens.ValueProviders.BaseValueProvider.IsChanged(Func1 action) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Tokens\ValueProviders\BaseValueProvider.cs:line 340 at ContentPatcher.Framework.TokenManager.UpdateContext(IInvariantSet& changedGlobalTokens) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\TokenManager.cs:line 134 at ContentPatcher.Framework.ScreenManager.OnTimeChanged() in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\ScreenManager.cs:line 171 at StardewModdingAPI.Framework.Events.ManagedEvent1.Raise(TEventArgs args) in SMAPI\Framework\Events\ManagedEvent.cs:line 101

brittle pasture
#

(can you wrap that in triple backticks? or better yet upload your log to smapi.io/log?)

latent mauve
#

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

cloud condor
ocean sailBOT
#

Log Info: SMAPI None with SDV None on None, with 0 C# mods and 0 content packs.

latent mauve
#

(please pull the actual log file to upload and don't just copy/paste the console text)

brittle pasture
#

it seems like this error is already after the fact (you added null to the quest log)

#

can you post the CP code where you added the quest? just to doublecheck

cloud condor
brittle pasture
#

!json pls

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.

brittle pasture
#

also in your C# code you need to turn {{ModId}} into your CP component's mod ID

#

the substitution in the CP component is done by CP itself, in your C# code you need to do it manually

brittle pasture
#

thanks. the code looks fine to me.
the other possible culprit is that you didn't actually load your CP mod. your full log will have that info

cloud condor
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 4 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

brittle pasture
#

got it.
this is wacky... uh run patch export Data/Quest, check the file it generates and see if your quest shows up? but make sure to restart the game and reapply all you code changes just in case

cloud condor
#

thanks for all the help btw. this quest thing has been bothering me for a few days now

vital lotus
#

Is your mod set to the old version of the game? I don't remember but maybe there's a change of quest format before and after 1.6...

brittle pasture
#

nah quest data is still the good ol string format in 1.6

cloud condor
#

so when i tried to run that command it says its asking for arguments as if it didnt read Data/Quest

brittle pasture
#

whoops I had a typo, should be patch export Data/Quests

#

hmm wait a second, your log is complaining that your content pack is not updated for 1.6 even though the json you posted has format version 2.8.0

#

try making sure that the file you're editing is actually the file that's being loaded by the game?

vernal crest
#

Nice catch

cloud condor
#

alright i did forget to put the new folder from my git into mods

issue do still be there though

#

and now when i try to leave the house after activating the quest I get an endless error

brittle pasture
#

did you apply the {{ModId}} fix I suggested

cloud condor
#

boutta facepalm myself

#

how do i apply that fix exactly

brittle pasture
#

in your C# code, replace {{ModId}} with the ID in the CP component's manifest

cloud condor
#

for replacing the mod id is it just the Unique ID in the manifest?

brittle pasture
#

yes

cloud condor
#

ok cool

#

ok the quest is still giving me that same error where its null

hard fern
#

this sure is a map patch... SDVpuffersweats

brittle pasture
cloud condor
brittle pasture
#

and your C#?
and just in case do run patch export Data/Quests and post the file it generates

cloud condor
#

ok so the issue is potentially that in the c# it doesnt have the word content after the UniqueID

#

thats the issue

brittle pasture
#

your quest is added by the CP component, so {{ModId}} gets turned into the id of the CP component

cloud condor
#

gotcha, thanks again foir all the help

indigo yoke
hard fern
#

it's just a wip

jolly light
#

How can i decide which texture to use in different rotation of a furniture ?

vernal crest
#

If you're using Content Patcher, your options are: the sprites directly to the right of the first one

If using MMAP Draw Layers, your options are: limitless!!!!

If using Furniture Framework, your options are: not sure, but I'd guess closer to MMAP than CP

woeful lintel
woeful lintel
jolly light
#

Thx for your help. I'm trying to make a tool to convert some easy-editing forms to cp pack. 😃

#

Im considering integrating with existing frameworks to support more content customization

drowsy pewter
#

Heh. Love my realistic fish colors mod

hard fern
#

whaaat you mean pufferfish dont look like this irl?? SDVpufferfish

lime maple
#

is aedenthorn here?

dusky sail
hallow prism
woeful lintel
#

giving anything cooked with pufferfish a 1/(cooking level) chance to instantly send you to the hospital

drowsy pewter
# dusky sail Dear yoba i hope this farmer's cooking skill is high enough

Hi @,

Sometimes, I wish this valley had a real high-end restaurant nearby. Someone I know online was telling me about the crazy types of fish that people eat raw - like poisonous pufferfish and sea urchins. Wild, right?

I have to try that some day. If you catch a good pufferfish, make sure to let me try some - though, maybe you should be the one to taste-test it for poison first.

Just kidding, lol.
-Sebastian

hard fern
#

Sea urchin gonads are like. Weird texture

#

I kinda hate it

#

But I also want to try it at least one more time

dusky sail
#

Sebastian is going to eat my shitty fugu sashimi and die. This is a threat and a promise?

wicked swan
#

so for npc schedule, i want him to go to the beach, do i have to write down the whole route like mountain/town/beach or i can just put beach right away?

hard fern
#

So if you want your npc to go the beach, put something like 1600 Beach 10 37 0
Or something (this is an example, you'd replace the numbers with your own)

wicked swan
#

ah okay so i just need to put the destination alright got it, thanks!

vast hearth
#

Hi. Does anyone know which version of SpaceCore is compatible with the mobile version 1.6?

drowsy pewter
#

you need to join the android smapi server and get the special version there

#

!androidsmapi

ocean sailBOT
#
Android SMAPI

We are not able to provide support if you run into trouble or compatibility issues with Android SMAPI; please use the discord linked on the Android SMAPI github.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. Please see the wiki instructions for more information regarding installing the unofficial Android port of SMAPI for Stardew Valley 1.6.

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

uneven spindle
#

hello! anyone knows how to debug translations? i'm trying to do config settings translations but even the default.json doesn't seem to apply

vernal crest
#

It sounds like it's someone else's mod? You should check the field names in their ConfigSchema in the content.json and compare them against the i18n keys in the default.json

uneven spindle
#

thats the guide i was following but still

#

i can share the relevant bits of the content.json if you want

vernal crest
#

Yup that'll be helpful. And the default.json please

uneven spindle
#

the default.json is placed inside the i18n folder

vernal crest
#

Is this your mod?

uneven spindle
#

no its not, i began working on some fixes to get into modding

#

i read about localization and decided to implement it for fun

vernal crest
#

It should not have a Description field in the ConfigSchema and the enable clothing section key in the default.json is written incorrectly. The names should be getting translated though

uneven spindle
#

maybe its not working because of those errors?

vernal crest
#

You have config.EnableOutfits.EnableOutfits.name but it should be config.section.EnableOutfits.name

#

Maybe, are there errors in the log?

uneven spindle
vernal crest
#

I'm on my phone by the way so it's likely that I'm missing some additional errors

#

Did you add the i18n before starting the game?

uneven spindle
vernal crest
#

And do you have file extensions turned on if you're on windows?

uneven spindle
uneven spindle
#

like restarting the game after making changes inside the i18n folder?

#

yes i'm restarting the game after each change

vernal crest
#

Ok, I'm unsure of what's going on so I recommend making a copy of your default.json and then deleting all but one set of the config translation keys. Make sure you comment out/delete the description field for that config setting in the ConfigSchema too.

(This is to reduce the variables to help isolate the problem.)

uneven spindle
#

let me try the other fixes first, maybe that was it

#

i deleted the descriptions in my content.json and removed all but his bit in the default.json

{
    // Outfit settings
    "config.section.EnableOutfits.name": "Test",
    "config.section.EnableOutfits.description": "Test"
}
#

but it doesn't seem to work

#

just figured it out, i misplaced the i18n inside the assets folder

#

sorry i wasted your time :(

vernal crest
#

Ohhhh dear lol

#

Well that's okay at least you found out before I went and downloaded SCC haha

vital lotus
#

how do we localize wild tree? 😅

lucid iron
#

Is that uiis2 tooltip

vital lotus
#

ah...

#

i think so

lucid iron
#

I think there's info on that on the github, a custom field you need to put

vital lotus
brittle pasture
#

I don't think that change is merged yet methinks

vital lotus
#

welp, at least there's clarity now

#

will add the field for when it gets merged

lucid iron
#

It's safe to just add it now, assuming nothing changes tho

#

Unused custom fields don't really do anything bad

vital lotus
#

okie

#

why is the tree seed (hasn't sprout) get destroyed when hit with a hoe instead of going back to being seed?

#

hmmm

hallow prism
#

depends

#

early game it happens if your foraging level is 0

#

which is usually the case when on a test save

vital lotus
#

dang

#

thank you SDVemoteheart

drowsy pewter
#

Haha

brittle pasture
#

there's no new release since nov last year
a massive refactor (including moving to gmcm, tree display name, etc.) is coming eventually but yoba knows when it's done (soon™)

drowsy pewter
#

@brave fable A mod user asked if I could edit the LoC recipes to match the design of my flexible recipes mod, since loc is recommended for using the feature. Would it be alright with you if I did so?

whole raptor
#

Is there a way to make a CP mod print a config value into the log by default for troubleshooting cases? SDVpufferthinkblob Like without any commands, for users who have issues and configs are important.

brittle pasture
#

there's a command for evaluating tokens

#

oh you said no commands

#

maybe BETAS has a print to console thing? don't recall
(but I'll be honest any users who can't be bothered to run a couple commands for the person personally debugging for them is liable to be ignored)

whole raptor
#

It's more of a me thing, like "I don't care enough to ask people to do something at this point" SDVpuffersquee

lucid iron
#

I am with selph in that i rather have the excuse to disregard

drowsy pewter
#

I use this to debug people with cornucopia

#

when i remember it exists

#

you can also do similar jank stuff like load an asset on the config condition

jolly light
#

Hey everyone 👋

I'm trying to automate SMAPI from another process (Rust), but I ran into a problem.
I start SMAPI like this:

let child = Command::new(&preference.smapi_path)
    .stdin(Stdio::piped())
    .spawn()?;

Then I try to send a command to it:

let stdin = runner.child.stdin.as_mut().unwrap();
writeln!(stdin, "patch reload \"{}\"", downloaded_mod.unique_id)?;
stdin.flush()?;

But nothing happens — the SMAPI console doesn’t react at all.
If I type the same command directly into the terminal, it works fine.

So… is there a way to send console commands to SMAPI via stdin?

drowsy pewter
#

actually its the trigger action that shows up in trace, the mailflag shows up with the trigger action, so technically the mailflag is not needed but I'm not sure what other action would be a good choice to put there

#

I use the mailflags to communicate between mods, so the trace message is secondary for me

gaunt orbit
#

I'm not sure why, exactly, since it uses the standard c# api for reading from console

#

Pathos doesn't know either

jolly light
tiny zealot
#

(which i only have to do because when SMAPI is running via dotnet watch, approximately half of my direct input gets eaten and enters the void, but redirected stdin is fine)

next plaza
#

(SMAPI doesn't use Console.Read/Write directly anymore with that)

#

...specifically the second autocomplete PR

#

The one that isn't closed yet

#

Despite being over a year old at this point

#

I should really update that

uncut viper
gaunt orbit
tiny zealot
#

it's irritating because it makes a second terminal which accepts input but doesn't display it, and the initial terminal displays but won't take, but if i don't do that then the starting terminal eats an arbitrary subset of keystrokes (for mysterious reasons) so is totally unreliable

#

hot reload is Good™ so i pay the price, but if i don't need it need it then i just run the game conventionally

gaunt orbit
#

So maybe it's a windows or c# specific problem

gentle rose
#

and also may I please introduce you to things like tail -f, while true: cat's less illegal cousin

#

oh wait that's your INPUT loop(?)

#

scary

tiny zealot
#

yeah this is to send input, i know about tail -f

gentle rose
#

spooky

#

perfect for halloween

calm nebula
#

Ichor did you ever see the tail -f talk

tiny zealot
#

no

calm nebula
#

Once a decade ago a friend linked me to a talk on tail -f and how cursed it is

#

And I've never been able to find the talk since

gentle rose
#

-# I still prefer file descriptor crimes over while true cat crimes

next plaza
#

But it has cat in the name

gentle rose
#

wait

#

doesn't cat loop by default

next plaza
#

No, the cat needs to be in pretzel mode for that

gentle rose
#

nuh uh, linux cats clearly pretzel automatically

next plaza
#

Hmm

#

Guess I'll just use cat --big-stretch

#

If I need non-looping

tiny zealot
# gentle rose doesn't cat loop by default

i assure you there was a reason i put the while true in there (every line of my above crime was determined empirically to be useful), but it was long ago and i don't remember what it was

next plaza
#

Ah, so it's like ancient magitech in fantasy stories

#

But instead of hundreds of years it could've been, like, two months ago

gentle rose
#

if anything shell scripts that work are scarier than ones that don't

next plaza
#

(Or in other words, the load bearing coconut.png story)

shut edge
next plaza
#

Bold of you to assume my brain works

shut edge
#

Hohoho

#

Only on days where your mind and body agree to a ceasefire and permit crab you to do tasks am I right

patent lanceBOT
next plaza
hard fern
#

What, no way

next plaza
#

I feel like I vaguely recall this happening once in the distant past

#

I assumed it was a SMAPI thing, but I'm not using SMAPI here

elfin kindle
#

What in the world

latent mauve
#

Ah, the magical expanding window when it's not on a primary monitor? I recall coming across that in the support threads. xD

inner harbor
#

Farm Type Manager question for anyone - I want to add a modded item to a beach spawn, but only if said relevant mod is installed. Can I do it in the main FTM content file? Would I use the "GameStateQueries": [], extra condition?

hallow prism
#

there is a CP condition field that should accept hasmod

#

and so yes, main FTM should be able to

royal stump
#

⬆️ "CPConditions": {"HasMod": "That Mod's ID"}
you could use a GSQ if you require something that adds a HasMod GSQ, but the base game doesn't, iirc

hallow prism
#

"CPConditions": {
"HasMod": "mistyspring.ItemExtensions"
},
Here is how i'm doing it, even if this one isn't needed anymore (but back then i wasn't sure if i wanted to have IE as mandatory)

#

Esca was faster than me 😄

inner harbor
#

coolio, thank you!

autumn tide
#

hey! so i have a long, fairly complex event that changes locations a lot, it'll go town - mayor's house - mayor's secret basement - town, but because the event is so long, I want to split it into two pieces for easier editing. I'm planning on splitting the event right when they get to the secret basement. The thing is, where I would put the entry for the second half of the event? ik the switchEvent thing has to be in the same location, but which 'same location' would it apply to?

#

hmmm should i maybe change the location back to town at the end of the first event, and then have the second event immeadiately warp to the basement?

next plaza
shut edge
#

having some kind of brain blankspot again i think

#
      "Action": "Load",
      "Target": "{{ModId}}/assets/pets/gothicadog, {{ModId}}/assets/pets/antiquadog, {{ModId}}/assets/pets/spot, {{ModId}}/assets/pets/boneypet {{ModId}}/assets/pets/diamonddogpet, {{ModId}}/assets/pets/adoptdogs",
      "FromFile": "assets/pets/{{TargetWithoutPath}}.png"```
#

this is loading my assets

#
        "{{ModID}}_spotpet": {
          "Id": "{{ModID}}_spotpet",
          "Texture": "{{ModId}}/assets/pets/spot",
          "IconTexture": "{{ModId}}/assets/pets/adoptdogs",```
#

this is editing pet data

#
        "Texture": "cryomancer.snesdogs/assets/pets/spot",
        "IconTexture": "cryomancer.snesdogs/assets/pets/adoptdogs",```
#

there's the patch export

#

but the game acts like the textures are null

#

adoptdogs works tho

#

hmm maybe AHM is breaking something somehow

#

ok no still does it without AHM

#

files seem ok

#

must be some tiny thing i'm missing here

#

oh fff

#

yeah missed a comma in the load

#

tale old as time

#

it is vanilla behavior that an animal that requires an upgraded building to get can also be put into a lower one, right?

#

like you need a deluxe barn to get pigs, but when you have one, they can go in any barn?

worthy ermine
#

Dwarf love ❤️‍🔥

brave fable
calm nebula
#

Morning, bluebs !

brave fable
#

all bug reports are your responsibility 🙂‍↕️

#

god you're fast

#

but not fast enough. it's lunchtime

drowsy pewter
#

can i have a morning atra

next plaza
calm nebula
#

Good morning 6480!

drowsy pewter
next plaza
#

Wait is 6480 in morning land

calm nebula
#

It's a great day for debugging convergence issues 🙁

next plaza
#

I’m in bedtime land

brave fable
calm nebula
#

You're getting a morning atra

#

Is not morning for atra

drowsy pewter
#

lunchtime atra

next plaza
#

I think it’s a bit past lunchtime atra

#

Unless you wake up in the afternoon and count that as your breakfast sort of thing

dusky sail
#

Good <t:1761875280:t>

next plaza
#

I’ve certainly never done that before. Definitely wasn’t like that even just a few months ago. No ma’am.

drowsy pewter
#

hehe

calm nebula
#

Oh it's the middle of the night I'm just rocking to little mix

#

Someone let me have coffee

#

Oh wair

#

That someone was me since I'm an adulty adult

next plaza
#

(Compared to me, a childly adult)

gentle rose
tiny zealot
#

hey ichor maybe you should go to bed

gentle rose
#

if I start going to bed at 2am I'll lose all my street cred

vernal crest
#

Is it possible to prevent a CP mod config from being added to GMCM?

livid kite
#

If I remember, you can have it appear during the menu option, but not in the game. I though I can't remember which mod had that option

vernal crest
#

No, that's only C# mods