#making-mods-general

1 messages · Page 47 of 1

hallow prism
#

tips : write modding:what you search in the wiki search box

#

it will search in the modding pages

clever sinew
#

Thank you both 😭

#

no, cause I just searched i18n because I didn't know if the rules were different

#

So that took me to the translations page

hallow prism
#

oh i see 🙂

#

when you want to do randomisation there's several ways

#
  • use the chance thing explained on dialogue page (named c something, i don't remember if it's #c or c# or else), see abi gift dialogue for amethyst for ex
  • use a random token in pair with the translation key (ex : mykey(your randomtoken here) and have mykeyrandom1 mykeyrandom2 and so on in the translation file
  • have the dialogue keys edited randomly by a cp patch
clever sinew
#

Ohhh interesting

hallow prism
#

you may find one approach easier than others, so it depends of what you prefer

clever sinew
#

I am wondering if I am maybe looking at the wrong thing then because for example, this section I am looking at seems to pull from one of the options: "This story is about a princess fighting a lich., This book has a bunch of short stories.#$b#Most of them are fantasy., I'm reading the third book in the Adventure Boy series., This book is actually a magic tomb.",

#

Or maybe I am completely misreading

#

Oh no this is one line

hallow prism
#

i don't know, not enough context

clever sinew
#

OH I see

#

This may still not be enough context, but this section has "spring101.1", spring101.2, spring101.3, spring101.4. I need to crossreference but it seems like the game then just pulls one of the lines to use, maybe

#

I think also I might just look at some other mods as well and piece it together that way

hallow prism
#

hu yeah

#

some mods are doing stuff in a specific way

#

maybe they use randomisation and , is their separator.

#

you'll find a LOT of different stuff

#

(oh yeah some people will also use directly the random separator in the dialogue)

#

so if you feel stumped by a mod, remember it may be advanced mod making and try to see if a simple mod do that this way too

clever sinew
#

Good to know

#

Thank you so much for all the help!

sour sleet
#

Haven't modded in a bit so i'm a little rusty. Can someone explain why this ```{
"Action": "EditImage",
"Target": "Mods\FlashShifter.StardewValleyExpandedCP\SVE_Fruit_Trees",
"FromFile": "assets/SVE_Fruit_Trees.png"
},

#

I have the image in the assets folder, i can't see what i've done wrong

hallow prism
#

no idea if the path is right without more context

#

a log can help see if there's an error

sour sleet
#

there are no smapi errors, just no changes showing in game. what's confusing me is i have another similar line and that's changing in game

hallow prism
#

ok

#

good luck then!

lucid iron
#

you want to retexture the SVE fruit tree?

sour sleet
#

yep!

lucid iron
#

make sure you have the right target

latent mauve
#

Also make sure your mod is loading after SVE

sour sleet
latent mauve
#

Easiest way is probably to set a false dependency in your mod's manifest

sour sleet
#

thanks!

#

ahh still not showing the changes in game sadly

finite ginkgo
drowsy pewter
#

if you have trouble finding texture names in the code, lookup anything with datamining fields shpws it to you ingame

#

but you cant just copy the png name from the files

sour sleet
#

thanks both, lookup anything is awesome

sour sleet
#

So I’ve managed to get the fruit trees changed now thanks to that. However, I don’t see where I’m going wrong with this. It’s not working when I put the target as zspring_SVE_Tilesheet2 😦

#

I’m trying to retexture an out of bounds tree

#

I assume the tree is from that tilesheet so I’m confused

timber escarp
#

Hey all just wondering if anyone could give me a little direction on how to make a mod that dumps items into chests beside a workbench when accessing it? Ive found the Workbench.checkForAction Method which handles checking the chests around it but not really sure how to handle moving items from the players inventory to the chests

rancid temple
sour sleet
rancid temple
#

You can do an EditMap and patch over the tree with your own tilesheet

#

Or the old recolor method of just manually replacing the tilesheet in SVE's files

sour sleet
#

Awesome, thanks!

rancid temple
#

Is that tilesheet from a different mod? I'm not seeng it in SVE's files at all

sour sleet
#

No, SVE got an update very recently and it’s from there

rancid temple
#

Oh, guess I should update then lol

#

Lemme do that and get back to you if I see anything different

sour sleet
#

I appreciate it!

rancid temple
#

Target should be Maps/spring_SVE_Tilesheet2

#

It says zspring in Lookup Anything because in the map info it has to have a z in front of it for vanilla maps in order to avoid re-organizing the tilesheet order

#

You'll need to check in the actual code itself to see what the real Target is

#

(Un)fortunately, every tilesheet Load seems to be in one unbroken line

#

So that's... fun

velvet narwhal
#

The best part is finding little tiny bugs that weren't there during sve beta in your mod but now suddenly is there

rancid temple
#

I'm tempted to turn word wrap off to see how insanely long this line is

velvet narwhal
#

It's, scarily long

rancid temple
#

That is ridiculous lmao

sour sleet
#

So this? { "Action": "EditImage", "Target": "Mods/FlashShifter.StardewValleyExpandedCP/Maps/spring_SVE_Tilesheet2", "FromFile": "assets/spring_SVE_Tilesheet2.png", },

rancid temple
#

No should just be Maps/spring_SVE_Tilesheet2

#

Whenever you load an asset to Maps you have to start it with Maps/, and Flash usually doesn't use either a manual or automatic ModId

#

Compatibility is for the little guy after all

velvet narwhal
#

why the server image change

#

what does announcements say

rancid temple
#

It do that sometimes

#

Looks Fall-y

velvet narwhal
#

looks good

sour sleet
#

You are a lifesaver Rokugin

rancid temple
#

It is freakin' cute though

sour sleet
#

It's working now!

velvet narwhal
#

*very glad i turned off comments considering everyone's getting, "DOES THIS WORK WITH NEW SVE UPDATE?"

#

tldr; yes, my expansion works with the new beta, no i will not give a flying raccoon about the duplicate heart event

rancid temple
#

Just another reason to avoid NPC or world mods

velvet narwhal
#

trust me, i was tempted to gut my expansion and go, "i'm done"

#

i will have one, very time map patch that holds a tunnel with a minecart for mine since i'm like "yeah this is a big boy expansion, it requires a bit more finesse"

timber escarp
velvet narwhal
#

does automate have open source

rancid temple
#

Yep

gilded comet
#

it's at the bottom of the nexus page

velvet narwhal
#

i just didn't have nexus open at the moment SDVkrobusgiggle

rancid temple
#

I've got all this fireplace crap working in 1.6.9 but I'm not sure I want to try to figure out how to deal with it in 1.6.8

calm nebula
#

Don't worry about it!

#

Just do all thr work, promise yourself you'll release when X version comes out, then never do it!

velvet narwhal
#

if i remember correctly, i had to manually type in 'workbench' though SDVpufferthink

timber escarp
#

nexus is horrible, limited speeds, ads, shady admins in the past, idk why people continue to use it...

rancid temple
#

It's like the opposite issue lol, I have the future update version ready but not the current version

#

The other big alternative is curse which is worse

timber escarp
#

Or just use github...

velvet narwhal
#

average modder will not know how to install mods from github

rancid temple
#

Yeah, good luck getting the entire community to deal with that garbage lmao

gilded comet
#

ah yeah bc microsoft is a wonderful company

timber escarp
#

microsoft are terrible true but 0 ads and no limits on anything

calm nebula
velvet narwhal
#

that will kneecap the computer illiterate if it were all on github

uncut viper
#

github has limits

timber escarp
#

To what degree?

calm nebula
#

Anyways there isn't a point in this conversation

rancid temple
#

github definitely has limits, they just aren't willing to tell you what they are or when you'll hit them until you do

uncut viper
#

there are repo size limits and search limits

timber escarp
#

yea fair this conversation isnt for here

#

THanks for the automate link though 😄 gonna dig through and see what i can come up with

brittle pasture
#

re: GitHub, stealing this screenshot from 6480 I hope he doesn't mind

timber escarp
#

skill issue * thats joke

rancid temple
#

Yeah, because gatekeeping is definitely what the community needs

brittle pasture
#

it's more a 'mod authors can't possibly be bothered to respond to 100x of these comments' issue

#

but anyway I'm derailing this channel further

timber escarp
#

Forced signups to a website seems like gatekeeping to me

rancid temple
#

Also, that's such a rude issue name for their problem lmao

gilded comet
velvet narwhal
#

NOT THE MATH

rancid temple
#

Brb finding a calculator to put that math into

velvet narwhal
#

symbolab or desmos

rancid temple
#

Or google lmao

gilded comet
#

i checked it

velvet narwhal
#

anyway, i've been staring at atra's fertilizers with grabby hands

calm nebula
#

0x1950 recently posted that in a different server

#

You may grab my fertilizers

#

All my mods are up for grabs afaik

brittle pasture
#

wdym afaik, are there secret mods you don't know about

rancid temple
#

I assumed atra isn't keeping track of which ones have been taken over by others lol

calm nebula
#

As far as I Kare

tender bloom
#

I guess it’s possible someone picked up some of them—I do actually think a couple have been

calm nebula
#

Oops

gilded comet
calm nebula
#

Let's see. 36^2 + 72^2 makes great mods

tender bloom
#

I seem to vaguely recall one of the “make X easier/saner ones” getting redone by someone

velvet narwhal
#

i don't think the core of more fertilizers got pushed for 1.6, i'm more interested in how atra deconstructed the hardcode of it

tender bloom
#

Like maybe trash consume bait or easier cave puzzle

calm nebula
#

A ficking 200 line transpiler, that's fucking how

gilded comet
velvet narwhal
#

oh no that's out of my paygrade

rancid temple
#

That's like 10 instructions /j

calm nebula
gilded comet
#

AWESOME

velvet narwhal
#

wait where's the quote button

patent lanceBOT
# calm nebula

Please use 💬 reactions to add quotes. Or .quote add "text" - userid:### nick

rancid temple
#

How long until 6480 buckles under the bullying and changes their name

velvet narwhal
#

never

tender bloom
#

Never

lucid iron
tender bloom
#

It’s a good number, they should keep it

#

Lots of nice evens

gilded comet
tender bloom
#

Yes I have feelings about numbers, no you shouldn’t be surprised about this 😛

velvet narwhal
#

∴ The divisor of 6480 are as follows: ⇒ 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 27, 30, 36, 40, 45, 48, 54, 60, 72, 80, 81, 90, 108, 120, 135, 144, 162, 180, 216, 240, 270, 324, 360, 405, 432, 540, 648, 720, 810, 1080, 1296, 1620, 2160, 3240 & 6480

gilded comet
#

the prime factors are wonderful. 2^4 * 3^4 * 5^1

tender bloom
#

Look at how many lovely divisors!

#

So many multiples of 6

velvet narwhal
#

i love these commit comments

gilded comet
#

108 !!

rancid temple
#

atra and Casey have amazing commit messages

next plaza
#

?

drowsy pewter
#

Okay so you guys went from one off-topic convo to an entirely different off-topic convo

#

is what i'm seeing

brittle pasture
#

sorry SDVkrobusgiggle

lucid iron
#

writing mod page succ

#

can i ai this part LilyDerp

gilded comet
# gilded comet 108 !!

currently trying to find a source for and research further a belief system my anthro teacher brought up with 108^108 steps of reincarnation. i thought the reincarnation cycle was usually known to be without beginning so this was interesting to me. I still don't know the specifics of the belief system, but i have an email im waiting for a response to 👍

108 is also generally an important number in certain belief systems, makes sense that one of them would implement that into the reincarnation system i just don't know what system does it 😭

velvet narwhal
#

oh the description, are you still dealing with nexus markdown bbc?

brittle pasture
#

wdym I love writing descriptions

gilded comet
calm nebula
#

This is why you draft them in markdown first

#

And suffer because VS markdown is just. Slightly. Not. Github markdown

velvet narwhal
#

honestly, i open up a text file in vs22 and manually write bbc because it brings me back to the old man days

lucid iron
#

well ill just yoink atra's md to bbcode thing prob

calm nebula
lucid iron
#

but the act of writing is hard too KasumiDerp

tiny zealot
lucid iron
#

how can i know what ppl dont know and desire to know

brittle pasture
#

is there a markdown standard with sane table formatting

patent lanceBOT
gilded comet
tiny zealot
#

markdown is nice but it is missing a few things for various domains, and everybody has their own ideas about what is missing and/or how to address it

brittle pasture
#

clearly we should all use latex

velvet narwhal
#

(i'm allergic)

gilded comet
#

lmao

next plaza
#

atra did you just add a quote from over a year ago

tiny zealot
#

i simply use nexus's "wysiwyg" editor and cry softly. from time to time i switch to the bbcode view and fix all the fucked mistakes it made

tiny zealot
lucid iron
#

but ichor the beautiful maffs

calm nebula
patent lanceBOT
tiny zealot
brittle pasture
lucid iron
#

i feel the need to explain what "machine rules" are

uncut viper
#

(i use LaTeX like every chance i get... including for just normal essays. i enjoy monstrocities)

velvet narwhal
#

become chaos, eyedroppertool the nexus color background for secret messages--but if i ever need an actual website i'mma just pay button

calm nebula
#

For years

#

I had a MS word lookalike template

gilded comet
#

what i actually use for personal im-only-going-to-see-it writeups is i use obsidian + a latex support extension. i get to use markdown (love it) and basic math latex (love it) together and it's very fast to do

next plaza
#

I should work on my website more...

#

There's still so much to document though...

#

.choose work on that, don't, don't, don't

patent lanceBOT
#

Choose result: don't

gilded comet
#

ooh

#

.choose psych hw, modding, anthro

patent lanceBOT
#

Choose result: psych hw

gilded comet
#

FUCK

next plaza
#

(If my docs were almost done I would do them... But I still need to do ~7 pages just for the Content Patcher stuff, and it's not as simple as just copying the current docs since I'm adding examples for everything)

acoustic summit
#

What's yall's reccomendation for sluggifying text to save as a file name? Im trying to save data using the players name but that can include symbols that files don't like to use

lucid iron
#

oh you can use savedata instead of file

#

depends on what you are hoping to record though bolbthinking

acoustic summit
#

trying to save a Dictionary is all, pretty simple data types

lucid iron
#

so save data can work for that, but you can only use it as the host

acoustic summit
#

yeah thats what I was thinking

calm nebula
#

Are you doing this on farmhands?

acoustic summit
#

Yep!

lucid iron
#

if you want to give data to farmhand u gotta do some messaging

calm nebula
#

Gonna be honest, I've done some pretty BS stuff for that before

acoustic summit
#

Thats why I thought the hard json file was a good play

lucid iron
#

as for sluggifying text if u just base64 it that should be ok Bolb

calm nebula
#

One of my mods, for example, simply does a deterministic hash code of the farmer name

lucid iron
#

or use the player's id

uncut viper
#

would saving it in the players mod data not suffice

calm nebula
#

Farm name

next plaza
#

Everyone loves a good old deterministic hash code

calm nebula
#

Base_64 should work

acoustic summit
#

Thats a good idea, thanks for the input / help!

uncut viper
#

if you're gonna convert things to a hash code anyway why not just use the players unique id

lucid iron
#

u need to also have the farm name right

#

im not sure how that work

acoustic summit
#

Farm name isnt needed for what Im working on, its a preference keeping utility so if people do use multiple farms with the same name it wouldnt be a big deal

calm nebula
#

It was farm name. Not player name

#

So I didn't go with the random seed because players can set that

uncut viper
#

what if someone makes a farm with the same name

calm nebula
#

I think it actually hashed both the farm name and unique ID togethet

#

Which I assumed had to be unique but I'm probably wrong on that

uncut viper
#

I don't remember how the unique id is calculated tbh. might use milliseconds since game launched as a seed or something

#

i knew at one point

acoustic summit
#

Wouldnt that mean it changes every time you play?

uncut viper
#

it's only made on character creation

acoustic summit
#

Ah

calm nebula
#

Players can also set it

uncut viper
#

their unique id?

calm nebula
#

Yup

uncut viper
#

like Game1.player.UniqueMultiplayerId?

calm nebula
#

The farm's at least

#

Oh no not that

velvet narwhal
#

oh the seeded random thing?

uncut viper
#

that's what I've been meaning, separate from farm seed

pine elbow
#

trying to unpack some xnb files with xnbcli to get the pngs, but when I try opening the exe it immediately shuts

acoustic summit
uncut viper
#

i think it gets set regardless

timber escarp
#

can we use .net8 or just 6?

calm nebula
#

you have to use 6

tiny zealot
#

you can install 8, but you have to target 6 with your csproj

timber escarp
#

Gotcha thanks

brittle pasture
#

and make sure to download version 1.1.0

#

not 1.1.1 (that's for the beta)

pine elbow
#

ty

brittle pasture
#

just unzip into SDV directory and execute it in there

#

(just read through your post a second time, missed the part you were trying to unpack the exe. you can't - that would be decompiling the code, which is a separate thing)

#

running StardewXnbHack should unpack all the PNGs (and other assets) for you to view

lucid iron
#

oh PFM doesnt load in 1.6.9

brittle pasture
#

yeah Digus is aware

#

(it's lights)

timber escarp
rancid temple
#

You have to target 6 but you can set a later language to use

timber escarp
#

Sweet im just using the latest then 😄

#

need all the lil nice additions

#

Lord pathos is typing 🫨

ivory plume
#

Monthly mod stats time!

New: source code dump

In [last month's update](#making-mods-general message), I mentioned the mod dump containing the code & releases for C# mods on the mod compatibility list is no longer maintained. Downloading all open-source mods' code is still very useful for mod authors though.

So, now you can download the source code for every open-source mod again! The mod dump has been replaced with a script you can run locally to fetch the repos. This is easier to maintain and will be updated monthly like before.

(The full dump at the bottom of this post is still maintained.)

Stardew Valley 1.6.9 release date

Stardew Valley 1.6.9 will release on November 4th! See the release notes so far and the mod author migration guide.

Stats

Mod compatibility

73.3% of SMAPI (C#) mods are compatible or have a workaround, up from 72.6% last month.

Unique mods by type

We have 439 more mods this month, compared to last month's 363. It'll take a few more months to see what it settles on after the 1.6 release, but that's about double the 2023 baseline.

That includes:

  • +254 Content Patcher;
  • +76 Alternative Textures;
  • +44 SMAPI;
  • +36 Fashion Sense;
  • +9 Farm Type Manager;
  • +3 Producer Mod Framework;
  • +2 Custom Furniture;
  • +1 Shop Tile Framework;
  • +0 Better Artisan Good Icons;
  • +0 Custom Music;
  • +0 Mail Framework Mod;
  • +0 XNB;
  • -1 Dynamic Game Assets;
  • -1 TMXL Map Toolkit;
  • -2 Json Assets;
  • and +18 for frameworks with <100 content packs.

Content Patcher packs

We have 9,341 Content Patcher packs.

The top six Format versions are:

  • 2.0 (3,078 ↗ 3,183) for Stardew Valley 1.6;
  • 1.19 (575 ↗ 580) for Stardew Valley 1.4;
  • 1.3 (467 ↗ 474) in old unofficial guides;
  • 1.28 (393 ↗ 388), latest version for a while last year;
  • 1.29 (398 ↗ 401) for Stardew Valley 1.5;
  • 1.23 (360 ↗ 361) for mysterious reasons.

Open source

  • We have 2,957 tracked C# mods, of which
  • 1,861 mods (63%) have a source code repo, with
  • 1,051 (56%) in a multi-mod repo and 810 (44%) in a single-mod repo.

Web costs

And finally, web hosting costs for the SMAPI.io site, update-check server, and API dropped from US$189/month to $121/month, mainly due to server scaling returning to normal levels after the 1.6 spike. (The graph is always a bit behind due to billing cycles.)

See also

And that's it for this month!

uncut viper
#

"1.23 (360 ↗ 361) for mysterious reasons." what

lucid iron
#

+2 Custom Furniture;
+1 Shop Tile Framework;
whom'st medlook

uncut viper
#

who made a new Content Patcher 1.23 mod

velvet narwhal
#

whodunit

lucid iron
#

do we haev 1.23 on some guide's examples

#

maybe they just copied without changing and it was some simple retex

calm nebula
#

todo list - find someone who will make a mod per old CP version

ivory plume
#

(There's also one new Content Patcher 1.0 content pack. I guess someone doesn't like... any of the features.)

calm nebula
#

start at 1.0, go to...oh

lucid iron
#

oh i didnt realise 1.6.9 was confirmed to be nov 4th

uncut viper
#

1.0???

ivory plume
#

1.0 doesn't even support tokens.

tiny zealot
ivory plume
#

It's intended to generate a slug that works in every possible case (URLs, file paths, file names, string IDs, delimited fields, etc). It should probably allow non-Latin characters though.

timber escarp
#

Ok so i can't find much useful in Automate to do with moving things from the players inventory to chests :/ maybe im just blind though

calm nebula
#
var t = "a test";

(t.IndexOfAny(Path.GetInvalidFileNameChars()) != -1).Dump();
#

maybe?

ivory plume
#

There's also delimited strings and such, which means no spaces for example.

calm nebula
#

ah, and I guess that would have spaces as well

#

sorry, quotes

#

I'm not very awake

rancid temple
#

Automate doesn't handle moving items from the player's inventory, but you can see how it's moving items from one inventory to another

timber escarp
#

Ahh cheers

calm nebula
ivory plume
#

Automate is very abstracted, since it has a lot of optimizations and supports scenarios that most mods won't need. I'm not sure I'd recommend it for learning how to do things in most mods, there are probably simpler examples.

timber escarp
#

Gf and i are using monster musk in dangerous mines on splitscreen and spend heaps of time trying to inventory dump each day :/ sotrying to cook up a dump to chests sort of thing

calm nebula
#

there's that like. that one mod....convenient chests? that automatically puts stuff in inventories.

#

that said I'm not sure who does the mutex stuff right

timber escarp
#

Yep but it bugs splitscreen

#

GUI elements dont go away

tiny zealot
#

doesn't better chests also have a "dump to specific chests" feature?

ivory plume
#

(Sounds like that mod doesn't do the mutex stuff right then.)

calm nebula
#

I cannot think of a single example I know of that does the mutexes right and isn't abstracted and hard to parse

#

I assume Khloe does her mutexes right

#

hey, what if we look into that mod dump repo

lucid iron
#

i vote for writing your own mod for fun and profit

#

this is the place after all

calm nebula
#

(I have to fix stupid lights bs in AtraCore to build and I cannot. Be. Arsed.)

lucid iron
#

atra u dont have to fix anything

calm nebula
#

Pathos whyyyyy is Ring.lightSourceId protected....

ivory plume
#

You don't want it to feel safe?

calm nebula
#

lol

ivory plume
#

(I'll mark it public in the next patch.)

lucid iron
#

once i am done with this current mod i want to look into identifiable combined rings DokkanStare

calm nebula
#

(you don't have to! But thank you!)

uncut viper
lucid iron
#

r there any concerns with that mod in 1.6?

calm nebula
#

90% I did most of that port already

#

again, I'm blocked mostly because I KEEP ON NEEDING TO FIX SHIT IN ATRACORE

lucid iron
#

terror LilyDerp

#

can i remove atracore dependency u think

calm nebula
#

Yes

#

it's barely used for anything in that one

lucid iron
#

rewrite all the harmony with stock harmony stuff

tiny zealot
#

let atracore (and other personcore mods) go. bring back mods that have one job

calm nebula
#

let atracore go. bring back atra doing random ass python metaprogramming for shits and giggles

lucid iron
#

how many mods do u want to explode spacecore into LilyDerp

#

personally ive only used spacecore save type register so far

velvet narwhal
#

ichor just wants to see the numbers in modded-farmers skyrocket

rancid temple
#

Anyone use any of the new 1.6.9 quest stuff? I need an example because apparently I'm too dumb to understand what you're supposed to do with it now

ivory plume
#

Which particular quest stuff do you mean?

lucid iron
#

i think its on the docs

#

the equiv new calls to check quest complete

rancid temple
#

The replacement for farmer.checkForQuestComplete in this case

lucid iron
#

need to see what particular quest the previous check was for

ivory plume
lucid iron
ivory plume
#

(Note that checkForEventComplete told the quest to mark itself complete if needed based on the values you pass in; if you just want to check if it's complete, there's a field for that.)

rancid temple
#

Awesome thanks, I'll check all these out SDVpufferheart

latent mauve
#

I am so happy, looking at the release notes, the only change I have to make to my in-progress Zelda NPC mod is adding work portraits for Shane and Sam.

#

Phew

rancid temple
#

Yeah, I think CP is mostly unscathed, unless you've got a dependency that's not updated

latent mauve
#

My biggest concern at this point will be if I'm somehow using one of the unused assets by mistake and need to replace them

#

(if someone has a list of which assets are being removed, that'd be a big help at some point for the migration page)

velvet narwhal
#

it's the scaled up ones that got removed

ivory plume
#

These are the assets removed in 1.6.9:

velvet narwhal
#

so that's like;
Maps:
WoodBuildings.png, FarmhouseTiles.png, GreenHouseInterior.png, squints
LooseSprites:
winter_boatJourneyMap.png(?)

calm nebula
#

Poor lady

#

Out there

#

Hammering away at 1:50 AM

#

Somehow not passing out

ivory plume
#

She's been building Stardew Valley for eight years, finally she's putting her hammer down.

gaunt orbit
#

I forget does robin also work on her birthday?

spice inlet
#

imagine trying to get some sleep while she keeps banging on your walls with her hammer at 2 am

gaunt orbit
#

I dont have to imagine we have midnight road work here

tender bloom
#

My best guess is that they were behind schedule and decided to violate noise ordinances to try to catch up

lucid iron
#

If only irl road work only takes 3 days of bonking with a hammer

coarse shuttle
#

Over here thinking what tool to mod sprites with.

velvet narwhal
#

!software

ocean sailBOT
dusty scarab
# ivory plume These are the assets removed in 1.6.9:

just to make sure, when these get removed, it won't affect any custom maps or buildings, right? or does any map that uses stuff like TownIndoors.png going to be needed to be updated to reflect that TownIndoors.png no longer exists?

latent mauve
#

Also, I looked at the release notes in more detail and I have questions: Fixed being able to steal another player's roommate. HOW?

tender bloom
#

Hehehehehe

#

Literally just get a void pendant and steal Krobus from Kailey

latent mauve
#

LOL

tender bloom
#

Krobus is weak and will move house whenever asked

dusty scarab
#

Krobus just wants to be friends with everyone :<

tiny zealot
velvet narwhal
#

TownIndoors isn't townInteriors.png

dusty scarab
#

ah, so if a mod was made from 1.6.8 data and 1.6.8 tilesheets, they should remain good to go?

latent mauve
#

Any custom map that uses those particular sheets (which were mostly older and less detailed anyway, so less likely to be used.) will need to create their own version of the sheet and load it themselves.

#

Or move away from using those sheets.

dusty scarab
#

good to know, thank you. I feel much better now than I did five minutes ago, wondering if I would need to redo everything, haha

uncut viper
#

if a mod references those specific tilesheets they are not safe once 1.6.9 drops

velvet narwhal
#

if you've referenced vanilla maps you're good to go, as long as you didn't embed those ones as an additional

dusty scarab
#

I think the only ones I embedded were the waterfalls and spring_outdoorsTileSheet2, because they had animations I needed for my farm map

#

which, neither of those are on the list of to-be-yeeted

uncut viper
#

i dont think it matters whether you embedded them or not? or am i misunderstanding what someone is saying

velvet narwhal
#

embedding should be automatic for avoiding climbing issues, i meant like, if you're adding a tilesheet outside of what vanilla already has

latent mauve
#

I am 100% guilty of pulling in tilesets from other vanilla maps to use in my map edits (island mostly), but none of the ones I pulled are on the chopping block. 😄

uncut viper
ivory plume
#

(None of these tilesheets were referenced by any vanilla maps; so if you copied vanilla maps, you're fine. You'd need to manually add a reference to these unused tilesheets to be affected.)

velvet narwhal
#

ah, i misread data aSDVpufferbonk
if you have a very very strangely sized tilesheet that don't Look Quite Right ™️ i'd still double check

tender bloom
#

these are the funky ones that look like they're in weird colors/non-stardew art style almost

uncut viper
dusty scarab
#

my maps are using townInterior, not TownIndoors, so that should be okay then. every tilesheet I used came from 1.6.8

tender bloom
#

the ones that pretty clearly look like they were the first draft but left in because why not

dusty scarab
#

(curse those similar names that had me thinking I was using the wrong one)

tender bloom
#

Yeah, I always have to flip through my unpacked Maps folder to be sure I'm getting the right one

#

I assume this is part of why they're getting the axe

#

because they mostly serve to sow confusion

uncut viper
dusty scarab
#

I also wanted to make sure, lol. so that that way, I could remove the offending sheets and re-upload the files so that they still work in November. but it looks like I'm safe, for now, which is a relief

velvet narwhal
#

yknow i would re-un-pack my 168 but i think i'mma just see if that one tilesheet i said earlier got the axe

rancid temple
velvet narwhal
#

the... FarmhouseTiles or something

rancid temple
#

Pretty sure the kitchen stuff is used from there

velvet narwhal
#

i'm unpacking 169-- does it?

rancid temple
#

It's definitely still in 1.6.9 and I'm checking FarmHouse1 and it's still referencing that sheet

velvet narwhal
rancid temple
#

What's that one?

velvet narwhal
#

Maps/FarmhouseTiles.png

rancid temple
#

Oh I see

latent mauve
#

There are two farmhouse tiles sheets, FarmHouseTiles and farmhouse_tiles, I think.

velvet narwhal
#

unless i'm crazy and something got mixed into there, but i'm usually meticulous about it

rancid temple
#

There's one named FarmhouseTiles and one named farmhouse_tiles lol

latent mauve
#

farmhouse_tiles SHOULD be the one being used

rancid temple
#

It is yeah

velvet narwhal
lucid iron
#

i wish the fridge door in cursor could get moved to farmhouse tiled

ivory plume
vernal crest
#

Time to grab myself copies of all those tilesheets

calm nebula
#

it occurs to me

#

that with enough regex and pain

#

you can just...figure out which tilesheets are unused

lucid iron
#

u r level 50 so you could get the repo

#

theres versioned content in there

rancid temple
#

Does the repo have the contents too?

#

Oh, wild

lucid iron
#

oh hm

#

the contents dir hasnt been updated since 1.6.6

#

does that mean there's been 0 content changes in .7 and .8

uncut viper
#

what do you need the regex for
just open all the .tmx files in a text editor and Ctrl F for the names of the tilesheets

lucid iron
#

regex for grep ig

velvet narwhal
#

True, fixed all my custom locations doing that when I swapped over to modid

uncut viper
#

i thought you could just put a normal string into grep

lucid iron
#

yea but wouldnt it be faster to capture the used names

#

so u can compare bolbthinking

brittle pasture
calm nebula
#

ls *.png | grep -vE "summer|winter|fall" | sed 's/\..*$//' | sort | uniq | xargs -I {} grep {} -L *.tmx

#

this is what I'm at so far

uncut viper
#

i think ive used grep all of one time so i just assumed you could write a script to loop over all the .png file names and output how many had 0 occurences

#

so iunno

calm nebula
#

but now I need logic so

lucid iron
brittle pasture
#

ah woops, the reading comprehension devil strikes again

calm nebula
#

GOT IT

#
$ ls *.png | grep -vE "summer|winter|fall" | sed 's/\..*$//' | sort | uniq | xargs -I {} sh -c 'grep "{}" -q *.tmx || echo "{}"'
CarolineGreenhouseTiles_rainy
FarmhouseTiles
FishingDerbyTiles_international
GreenHouseInterior
MenuTiles
MenuTilesUncolored
MovieTheaterJoja_TileSheet
MovieTheaterJoja_TileSheet_international
TownIndoors
WizardHouseTiles
WoodBuildings
cavedarker
desert_festival_tilesheet_text_international
floors_2
spring_BusStop
spring_outdoorsTileSheet_lightergrass
springobjects
wallpapers_2
lucid iron
#

wow what the heck CarolineGreenhouseTiles_rainy isnt used??

calm nebula
#

(it is)

rancid temple
#

Then you just have to compare it to the rest of the content pipeline lol

calm nebula
#

it's in the code

lucid iron
#

bespoke rainy tiles feature LilyDerp

rancid temple
#

Also springobjects being on the list is very funny

calm nebula
#

yeah it's not used in a map?

rancid temple
#

Like obviously not used in any maps, but still funny

ivory plume
#

Feel free to post a beta bug with that list; I'll check each one before removing it. (For example, the _international suffix is a magic one in the code.)

cunning grove
#

Alright so, I've got an NPC that can be danced with at the flower dance. He has sprites for the dance in the correct spots, everything works when it comes to asking him to dance and whatnot, but when the actual cutscene starts, he's completely invisible. Am I missing something?

calm nebula
#

you need to add him to the main event

#

in the same way you did setup-the other one

cunning grove
#

Ah, got it. That must be it. Thank you

latent mauve
#

wallpapers_2 looks like it is used in game, even if it's not necessarily used for the maps itself (except when you apply them to the decoratable walls)

#

Same for floors_2

velvet narwhal
#

congratulations, BETAS is now a core to any cp mod i will ever make

lucid iron
#

is there a stardew font checker thing

lucid iron
#

the font does funny things to certain characters

#

asterisk * becomes 💢 for example

#

so i wonder if there is list of this stuff somewhere, or a text to sdv font converter

odd ginkgo
#

Is anyone willing to explain to me what's so wrong about this content.json? The validator says I have a ton of missing information, but I don't... It says I'm missing FromFile and Action, etc, even though I have them

tender bloom
#

definitely brackets at first glance

rancid temple
#

You've got extra brackets breaking up your entries

tender bloom
#

starting at line 128

odd ginkgo
#

ahhhh

tender bloom
#

you ended an action and then just started in with something else

#

that appears to be raw dialogue and not an action

odd ginkgo
#

Yes, and that's right around when I started writing new dialogue

tender bloom
#

same deal around line 141

velvet narwhal
#

are you specifically going for a lower sdv version? cause npcdispositions doesn't exist anymore

tender bloom
#

you can see from the indents a clue about what's awry

odd ginkgo
#

I'm half-updating and half-recreating an older mod

velvet narwhal
#

ah yeah

#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

  1. Tiakall has a great tutorial on making a custom NPC for 1.6:
    https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC

  2. Custom NPCs received many improvements with 1.6.
    https://stardewvalleywiki.com/Modding:NPC_data

  3. Aviroen has put together a template that will allow you to easily create a romanceable NPC:
    https://stardewmodding.wiki.gg/wiki/Npc_template

  4. Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!

odd ginkgo
#

so there are definitely outdated parts I need to go back and change

rancid temple
#

Oh yeah, if you're doing 1.6.8 then you have to use Data/Characters

odd ginkgo
#

Okay, this is really great info

#

thank you

velvet narwhal
#

wuh

#

man, stardrop really just wants me to stop debugging 1-6-8 huh

pine elbow
#

been struggling to get my picrew replacers working properly with the farmer portrait mod, sometimes they show sometimes they don't. Resizing it to 64x64 is the only way I can get the portraits to show at all, but they're very low rez like this as you can see. Anyone able to help me out with getting the portraits to always show instead of the default farmer portrait and having them look higher quality?

#

I wanted my farmer to match the naver portraits I just got

rancid temple
#

Without a mod for it, 64x64 is max portrait size

pine elbow
#

hm I wonder how the naver portraits look so high rez and large then

rancid temple
#

Never used the farmer portrait mod so I'm not familiar with it

pine elbow
#

the portrait maker that the author uploaded for the mod has a 256 version too, but it doesn't show since it's incompatible with the farmer portrait outfit and emotion mod

#

maybe someone else might have a solution here hopefully

uncut viper
#

i am done messing around with dynamic token reflection stuff after many hours of getting nowhere and now im onto the actual most difficult part of this mod: making a nexus banner for it. maybe i dont need to release this after all—

velvet narwhal
#

wait a different mod?

uncut viper
#

yeah I got super sidetracked this weekend

velvet narwhal
#

do you have a name for it or no

uncut viper
#

decided to make a mod that adds CP tokens that will let you get a different mods config, i18n, or dynamic tokens

#

probably something very boring and practical like "Cross Mod Compatibility Tokens" or something

velvet narwhal
#

SDVpufferthink Button's Crossmod Dynamic Tokens BCDT doesn't roll off the tongue as nicely

uncut viper
#

maybe i wanna maintain a strict 50:50 ratio between mods that start with my name and mods that don't

#

(also that would give the impression that they're just normal dynamic tokens)

velvet narwhal
#

i would've suggested keeping the non-name for your mod-author specific mods, but that's too late considering BETAS

uncut viper
#

that one I wasn't going to but BETAS is nicer to say than ETAS

#

i basically had no choice

velvet narwhal
#

probably just cross mod compatibility tokens tbh

uncut viper
#

really what matters is just the abbreviation being short anyway since that's what you'd need to write when using the tokens over and over

velvet narwhal
#

make it aSDVpufferrise as the icon

#

true

#

that's also why i haven't released my customfield cause my username ain't exactly easy to remember to spell

#

oh just the

#

as the header image SDVkrobusgiggle

uncut viper
#

i will consider it if I can somehow stardewify it

#

either way the pre-publish stuff is a problem for tomorrow me, I've been looking at this mod for way too long and need to never look at it again (for a day or so)

uncut viper
#

that makes it sound so nefarious

velvet narwhal
#

i -- do i post it here?

#

i let the brain worm take over

uncut viper
#

don't get me wrong it's a good image and I love it but I hope you don't take offense if I use something else for the banner-
(i am just rather particular about the look of my mod pages)
i could probably put it as a second image though

#

assuming i had your permission

velvet narwhal
#

no offense taken, go ahead

#

oh lemme give you the not screenshotted one though

royal gazelle
#

Helloo, I am learning to develop mods for Stardew Valley, but I am already facing a problem I can't really find it's answer anywhere. I followed the guide, but I couldn't really find what I have missed.
Here is the log file: https://smapi.io/log/a6def952ccc5491ab7b56e0172df102b

I tried to open Stardew Valley with SMAPI to see if running the mod without directly through Visual Studio Code would make a difference, but no..
Mod files are where they need to be, I suspect the manifest file, but I can't really find the problem..

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Pro, with 2 C# mods and 0 content packs.

velvet narwhal
royal gazelle
uncut viper
#

well, you shouldnt really have two of them, but did you fill out the entrydll field properly in your manifest.json?

#

looking at your log it seems like you have a typo

#

startdew instead of stardew

royal gazelle
uncut viper
#

you should also change your uniqueid

royal gazelle
#

I literally lost hours and hours finding it... omg, thank youuu 🥹 SDVpufferwaaah

uncut viper
#

not just to fix the typo but to have a proper one instead of one that says SMAPI in it

royal gazelle
#

Before that I had another UniqueID instead of "SMAPI", I changed even that and didn't see the typo... SDVpufferwaaah .
The mod works now flawlessly, no problems detected. Thank you SDVpufferheart

royal nimbus
#

i love the portrait i came up with for hat mouse ;o

#

she sells goth hats with my mod :3

tiny zealot
#

(chanting) hat mouse, hat mouse, hat mouse SDVcharhatmouse

royal nimbus
#

im just trying to get it to work in game now. looking at another mod that adds vendor portraits

vernal crest
royal nimbus
vernal crest
#

You'll need to have that mod as a dependency for your mod, because unless you plan to recreate its work in your own mod (with C#) your users will need it too to see your portrait change. EDIT: I was wrong - you can just add a vendor portrait with CP apparently.

#

If you want an example of a mod that changes one of the portraits from Portraits for Vendors, you can have a look at mine: #mod-showcase message

rancid temple
#

Pretty sure most of the portrait changes are CP, looks like only the mariner needs C# for that one?

tiny zealot
#

it should be possible to give hat mouse a portrait with just CP

vernal crest
#

But vanilla doesn't have portraits does it?

rancid temple
#

For shops it does

#

There just isn't one set on most non-NPC shops

tiny zealot
#

there's no portrait specified in vanilla for hat mouse but the shops entries support it

vernal crest
#

Huh

calm nebula
#

Non-non player character

rancid temple
#

Lmao

vernal crest
#

I wonder why Dolphin needed to ask Pathos to do something to make it possible then

#

I guess Sialia technically doesn't need to have TDIT as a dependency then

#

I'll keep it though because TDIT is cool.

tiny zealot
#

i should think sialia would still want to check for it, at least

#

so you'd know whether to edit dolphin's asset location for that portrait or load your own and use that

vernal crest
#

And is the entire reason Sialia even exists as a portraity-person anyway

royal nimbus
vernal crest
royal nimbus
#

k

#

looking at the jsons and thinking about what i should attempt to replicate

rancid temple
#

The only thing for NPC-less vendors is that they don't have an NPC tied to them so they don't work for Portraiture

velvet narwhal
#

i'm going to assume it'll take the regular filepath--you can add npcs right?

#
  {
    "Condition": null,
    "Portrait": "",
    "Dialogues": [],
    "RandomizeDialogueOnOpen": true,
    "ClosedMessage": null,
    "Id": "AnyOrNone",
    "Name": "AnyOrNone"
  }
],```
oh then you'd have to set ichor's hatmouse as a false dependency
rancid temple
#

You can make an NPC be the owner yeah

dusky roost
#

Is Aseprite the go to program? Or is there a better one I should use?

rancid temple
#

Not sure what you mean by regular filepath

#

I like Aseprite, but that's kind of a personal preference thing

velvet narwhal
#

the portrait: "" bit, i'm going to assume it can just be Portraits/NPC or wherever the target loaded to

rancid temple
#

People are more used to other programs, so long as it can do pixel art it's fine

vernal crest
velvet narwhal
#

you can be chaotic evil and use mspaint as long as it saves transparency

rancid temple
#

Oh, yeah whatever your Target for the portrait load is

royal nimbus
#

i do all my art in mspaint awesome

#

my stuff's decent tho. i can animate too which i use animation shop 3 for

vernal crest
#

How do you get transparency in mspaint?

royal nimbus
#

i do all my drawing and coloring in mspaint. well most of it

#

ive been doing a little drawing and coloring in paint.net lately

#

made that an emote

vernal crest
#

So...how do you get transparency in mspaint?

royal nimbus
vernal crest
#

RIght so you can't only use mspaint

royal nimbus
#

yeah

#

but i do most of the work with it

vernal crest
#

Why not just use paint.net from the start? Just out of curiosity

tiny zealot
royal nimbus
#

because im more familar with mspaint. and i use an old version, not the modern one. its cuz its how my brain works. im heavily autistic with adhd. i tend to stick with what i know. and honestly, there's never been an issue with it so i stick with it\

vernal crest
#

Fair enough

royal nimbus
#

only thing is, id like to have smooth lines but i cant afford other programs

velvet narwhal
rancid temple
#

I've definitely seen some people who do

royal nimbus
#

i also do my art with mouse. i tried tablet before and didnt like it

#

art on the phone is pretty crazy

rancid temple
#

Only problem is that they usually have trouble transferring from their phone to computer for actually making the mod

vernal crest
#

I have developed very specific requirements for my pixel art that so far nothing has perfectly met.

royal nimbus
#

ive been doing a little more drawing on paint.net because i rly like how u can just keep zooming in.

velvet narwhal
#

i'm still hunting for that perfect auto-dithering brush on csp

vernal crest
#

I have hopes for Aseprite but haven't had the chance to use it much yet because I can't get all my existing files into it.

#

I don't use auto-anything, so at least that's not a requirement for me ^_^

#

Oh that's a lie I do use the paint bucket sometimes.

rancid temple
#

Dithering is kind of an involved process isn't it? Unless you're just wanting some super basic/generic holepunch-esque dithering

tiny zealot
#

it can be quite laborious

velvet narwhal
#

yeah it's an annoyingly involved process, i might just crank down the stabilization on csp (or crank it up?) so that it makes my lines crisp rather than chunky

tiny zealot
#

if you're doing a big, regularly-shaped region it's handy to have a brush for it (or make liberal use of copy-paste)

rancid temple
#

I tried to match the SDV style a few times but can't really get a feel for it, just gonna stick with everything being way too solid

tiny zealot
#

!pixelartinfo i made an infographic about it for the contest!

ocean sailBOT
velvet narwhal
#

ooooooooooooo MARKDOWN

#

did they approve me

rancid temple
#

Well, this was probably made by a Junimod

vernal crest
#

They're still discussing it

rancid temple
#

Yeah last I saw they were talking about it internally

velvet narwhal
#

yeah i need something that does the specific stardew dithering, which, tbh i might just make my own damn brush at this point

rancid temple
#

Oh is this where the Anyone Can Cook castle comes from?

tiny zealot
#

yeah! (it's me, i'm the castle)

calm nebula
#

... you are a castle

#

Ngl I still see you as a mouse

tiny zealot
#

maybe i can be a mouse sometimes, too, as a treat

inner storm
#

God okay here i come trying to have my cake and eat it too again

#

Using the Hazelwoods Glade map, they have an "additional Farm cave".

I'd like to replace THAT cave with a cave from Hippo's FarmCave Variety but i find myself lost in how to like.. point to it?

#

I went into the content thing and i have the map in the assets folder and i have the whole like "Target: assets/mining_FarmCave.tmx" but it keeps saying that it's having trouble finding the original farm cave?

vernal crest
#

Can you share your log with the specific error message? And also your json?

#

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

vernal crest
#

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

inner storm
#

Lemme check it, i've got so many tabs open rn

vernal crest
#

But also I do not see a "mining_FarmCave" file in vanilla so you might be trying to Target the wrong thing.

royal nimbus
#

does this look right to add a portrait? copying it from another mod

velvet narwhal
#

that's probably the hippo farmcave?

#

i think... you can probably just change the warp on the farm map to that mining_FarmCave SDVthinking ?

royal nimbus
tiny zealot
#

lmao "goth hats" i love it

velvet narwhal
#

unless they're both named mining_FarmCave, then, well, you can probably just dump the hippo tmx one into the hazelwood folder (considering this is probably a personal mod)

royal nimbus
#

i just need to design the hats lol.

#

gonna work on player accessories soon. but for now i want the portrait for the mouse to work. the above code didnt do it

inner storm
vernal crest
#

Yeah the easiest way would just to be to rename the Hippo cave to the farm map mod's cave name and then plop it into the folder

velvet narwhal
inner storm
#

I'm /vaguelly/ familiar with Modding but stardew is a new beast i've yet to learn

#

Will give it a shot and see what happens

#

The error log doesn't give much info aside from saying the location couldn't be found

ocean sailBOT
rancid temple
#

Stardew is definitely very forgiving with CP

inner storm
#

oh wow there it goes

rancid temple
#

Thanks gov

inner storm
#

Look at the governer

inner storm
velvet narwhal
#

oh it's named AdditionalFarmCave

#

take the mining_FarmCave, rename it, plop it into the hazelwood [CP] Additional Farm Cave/Assets folder

#

(this is under the assumption that they don't have any custom tilesheets)

vernal crest
#

Looks like you may have accidentally broken the content.json for the farm cave though (unless you didn't cause this error, in which case the original mod author broke it).

inner storm
#

😵‍💫 boy oh boy fingers crossed the rename method works

#

JSON will always be a weak point for me

#

<- Previously had to learn it for the sake of Minecraft mods

velvet narwhal
royal nimbus
#

nw and ty. i will try it

velvet narwhal
#

SDVpufferthinkblob i'd say content patcher json is one of the most forgiving and understandable

vernal crest
#

I've never used JSON in any other context but I find it quite pleasant.

lucid iron
#

use an editor w/ json support

calm nebula
#

Json, pleasant?

vernal crest
#

Haha yes atra

calm nebula
#

prefers toml

#

Oh god

#

hides from Ameise

velvet narwhal
#

just don't say the acronymthat starts with Y, he can smell it

brittle pasture
velvet narwhal
#

that's how i do my nests but i could also be wrong, it do be 7am and i am tired

rancid temple
#

Fields works with models, but you shouldn't use it on lists

#

It eats the whole list

#

Which is probably fine there since it is a list with a single entry

royal nimbus
#

this is a confused mess lol. not sure if i need the other portion still

inner storm
#

cries i got the same message

vernal crest
#

Yeah, you will do because your content.json is broken like I said

royal nimbus
vernal crest
#

It's not currently capable of actually loading the location

#

Were you attempting to change the JSON earlier?

inner storm
#

I restored the original content.json that was in the mod and renamed the map :v

rancid temple
#

And the original was working before?

vernal crest
#

The one in the [CP] Additional Farm Cave folder?

velvet narwhal
royal nimbus
#

the original didnt work tho

velvet narwhal
#

o-oh

rancid temple
#

Did you get an error?

brittle pasture
#

Did you load your asset

brittle pasture
#

The code is correct, except for the Portrait line

inner storm
#

like it's not a super complex contant thing in the original it just points to the map

royal nimbus
royal nimbus
brittle pasture
#

You need to load your png into a game asset first

royal nimbus
#

right

inner storm
royal nimbus
#

like this?

velvet narwhal
#

no load your portrait separately

royal nimbus
#

oh

velvet narwhal
#

change that back to editdata

royal nimbus
#

k

#

xD

#

how to load then?

vernal crest
royal nimbus
#

lol that just sounded amusing to me. like 'no! smacks out of hand u put that back xD

inner storm
velvet narwhal
#

much like how you added in your goth shane portrait (right? or am i misremebering names now)

vernal crest
#

Yes Ralo does load a whole lot of assets in her json already

royal nimbus
#

mkay

brittle pasture
#

(as mentioned you may be already doing this a bunch already, I don't have context lol)

royal nimbus
#

k, gonna see if it works

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 107 C# mods and 361 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

inner storm
#

i thiiiink i shared the log proper but i might have done it wrong shfvbdhb

royal nimbus
#

did this and it didnt work still

brittle pasture
#

You didnt change the Portrait line

royal nimbus
#

-o-;;; my bad

#

bare with me. im slow sometimes

velvet narwhal
#

you only need one "Format" and "Changes" per content.json, so if that isn't at the top, i would move those to the top so you don't duplicate it

royal nimbus
#

i guess im doing this line wrong. also it breaks when i remove format and changes lol. so i dont mind keeping it there

vernal crest
inner storm
#

I'll try to uh see if it still does it with the like untouched file

royal nimbus
#

its got a fuck load on there lol. hat mouse is near the top tho

vernal crest
# inner storm Only to open it in Tiled

The invalid tile gid error implies to me that you opened it in Tiled, you had a bunch of "missing tilesheet" errors, and you (maybe accidentally) saved it like that - which breaks maps unfortunately.

velvet narwhal
#

i don't know about the hippo map, if it has a custom tilesheet or not

ocean sailBOT
#

@velvet narwhal You leveled up to Rancher. That's level 250. Woot!

velvet narwhal
#

HUH
ig that means i need to shut up

inner storm
#

and my silly little not mod dev brain was like "okay!"

velvet narwhal
#

tbf while stardew modding is easy once you get the hang of it, we've kinda just dealt with it's nuances

#

!springobjects

ocean sailBOT
#

Most vanilla object sprites are in the Maps/springobjects asset. See a table of springobject sprites by index.

Some newer object sprites are in TileSheets\Objects_2. You can check the entry in Data/Objects to see where its sprite is stored; SpriteIndex is the position, and Texture is the asset name (defaulting to Maps/springobjects).

vernal crest
#

Editing maps in Tiled isn't wrong. It's just persnickety.

velvet narwhal
#

for example

royal nimbus
#

i need to get on map editing soon too. bleh

brittle pasture
#

you're already adding to Changes (see the first few lines of your file)

inner storm
#

I appreciate the patience! I've been honestly thinking of making an NPC myself lately hehe

#

Now is it safe to assume that i could just... plop the warps into the content.json?

brittle pasture
#

And also delete the extraneous {} block surround that

late laurel
#

Hi, stupid question (and sorry if I'm interrupting)! Is there any ability to put modded items into vanilla casks? I've looked around and haven't found anything, but I'm practically illiterate when it comes to coding so I might've missed it.

velvet narwhal
#

though, modded objects with a specific item category should automatically have a juice and pickle variation

vernal crest
brittle pasture
#

to add a new item to Cask you should just need to copy one of the vanilla rules and change your input item trigger + the AgingMultiplier field

late laurel
#

Alrighty! I'm trying to add the ability to age my modded cheeses but having done next to no coding before, it's definitely challenging

brittle pasture
#

Look into the unpacked Data/Machines.json to see what the whole thing looks like. And yeah it is a bit advanced lol

royal nimbus
tiny zealot
#

hey friends, i'm missing something silly i think.
i'm trying to edit a string->string dict asset via SMAPI's content API like so:

e.Edit(data => {
    var dict = data.AsDictionary<string, string>();
    foreach (var entry in dict) {
        etc.```
and the foreach is barfing:
`error CS1579: foreach statement cannot operate on variables of type 'IAssetDataForDictionary<string, string>' because 'IAssetDataForDictionary<string, string>' does not contain a public instance or extension definition for 'GetEnumerator'`
what did i forget to do?
brittle pasture
#

what does the new code look like? Any errors in console?

royal nimbus
proud wyvern
proud wyvern
#

i remember there being something

tiny zealot
#

ah ok, thanks! i knew it was something like that

late laurel
brittle pasture
# royal nimbus nope

That looks fine to me. Can you post the whole file again so I can check for missing brackets just in case?

brittle pasture
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!

tiny zealot
#

i have other mods where i do (for example)

var dict = asset.AsDictionary<string, ObjectData>();
foreach (var entry in modAsset) {```
~~which is fine (or was the last time i compiled it), so i didn't know i needed the `.Data` on the foreach~~ nevermind i'm a goober
tiny zealot
#

ah, scrub that, i can't read

velvet narwhal
#

it's okay, blame the coffee maker

tiny zealot
#

fair play, actually. i'm the coffee maker and it's definitely that guy's fault

royal nimbus
brittle pasture
vernal crest
velvet narwhal
#

(vs22 isn't giving any errors so it looks fine from here)

velvet narwhal
#

minus that target line that smapi has already nagged on

royal nimbus
#

i fixed that so lets see now

#

EEEEEEEEEEEEEEEEEEEEEE

#

;o; it's so precious.. ty guys so much

inner storm
#

that's so cute oh my godddd

royal nimbus
#

ToT i love it

#

now i just need to make goth hats for her to sell

brittle pasture
#

cute!

royal nimbus
#

ive been debating if im going to change names of things im modyfing. like hats, clothese etc

#

im not for everything tho cuz its way too much work. like i modified all the furniture from the catalog and such but not gonna change the names to match

#

this is so good. now i can make portraits for the other vendors but im not sure if i will because idk if i rly care to do anything with them tbh

velvet narwhal
#

i think it's only... the dwarf and the island trader, right?

royal nimbus
#

i will def add in suki's tho in case someone is playing without sve

velvet narwhal
#

oh right the travelling merchant

hallow prism
#

(note that VMV has a portrait for the travelling merchant (and a name too))

royal nimbus
#

vmv? what do they call her?

#

i named mine suki cuz thats what shes called on sve

hallow prism
#

lotti

royal nimbus
#

cute

tiny zealot
royal nimbus
#

yeah i made her portrait but its so far only set to over write sve's

#

also did sandy's last night

#

i made sandy whimsi goth

hallow prism
#

once again, i am considering if something should be a cooking recipe or a machine recipe...

#

or both

tiny zealot
# royal nimbus

if you use that one, make sure you credit the portrait maker

velvet narwhal
#

SDVpufferpain me, trying to figure out how to make the green squigglies go away
oh right exclaimation

hallow prism
#

(and even in discussion here, when someone says "made", it's good to mention "with the portrait maker" when it's used)

vernal crest
# royal nimbus

Any time you post artwork based on Poltergeister and Jazzybee's portrait maker, please mention it

vernal crest
#

(Likewise if you're at any point editing resources that aren't yours but which you have permission to edit - credit)

royal nimbus
velvet narwhal
# calm nebula No

long spouseID = Game1.player.team.GetSpouse(Game1.player.UniqueMultiplayerID)!.Value; no? SDVpufferwaaah

lucid iron
#

sometimes you want to actually check for null

brittle pasture
#

holy hell that is the only function marked nullable that I've seen in SDV code

royal nimbus
#

yeah ive used that program for bases mostly and then drew some of my own assets in some cases. but yeah i can def include that information. im glad u mentioned it

hallow prism
#

yeah the mouse is obviously not made with it 😄

royal nimbus
#

lol yeah thats 100% my own. i upload my own art to my DA acc

calm nebula
#

But in this case, value type nullable works entirely differently from reference type nullable

rancid temple
#

You can use an exclamation mark to make the green go way, but be prepared to get a null reference exception lmao

velvet narwhal
#

back to google i go

lucid iron
#

you can just check for null here

calm nebula
#

Then start the next line with if (spouseID is not null..

lucid iron
#

can u use is long spouseID here bolbthinking

#

im hoping long? null doesnt just cast to long=0 or smth

calm nebula
#

No it doesnt

#

Nullable on a value type is entirely different than nullable on a reference type

#

On a reference type is just nullptr

velvet narwhal
#

why is this chain of problems just going--

calm nebula
#

On a value type is Nullable<TheType> small struct

inner storm
#

boy oh boy i got it to work but now... the warps are screwy

velvet narwhal
#
if (spouseID != null)
{
    Game1.otherFarmers.TryGetValue((long)spouseID, out var farmerSpouse);```
vernal crest
inner storm
#

Sooooo.... ehe the cave itself has multiple warp points

#

ofc I have the warp list thing but it's a little difficult to put it into the Content.json without it throwing a fit

vernal crest
#

Warp list thing?

inner storm
#

like aaa since i'm essentially combining two mods I have the warps from the one mod and all the info but I can't, unfortunately, just copy+paste from one content.json to another

#

i am once again barking at .JSON until it works

vernal crest
#

I imagine that the cave warps are set inside the map itself rather than in json

inner storm
#

oh nono i have it! i think

rancid temple
#

I would do them in the json if they had my mod Id in them lmao

#

I'm not about to copy paste that garbage in Tiled

inner storm
#
            "Action": "EditMap",
            "Target": "Maps/FarmCave",
            "AddWarps": [
                //^Spa Area
                "6 0 FarmCave 40 25",
                "40 24 FarmCave 6 1",

                //^Craftable Area
                "26 -1 FarmCave 24 59",
                "27 -1 FarmCave 25 59",
                "24 60 FarmCave 26 0",
                "25 60 FarmCave 27 0"
            ],
            "When": {
                "CaveType": "mining"
            }```
#

obvi i have to change the FarmCave thing but like those are the little warps in the content

rancid temple
#

Would you change that Target? Didn't you just rename the tmx and replace it?

inner storm
#

Ah because it's not the FarmCave it's AdditionalFarmCave!

vernal crest
#

Hmm yeah you should just be able to copy and paste that from the hippo cave mod to the farm map mod (it's really hard to picture this when I haven't downloaded both to see how they are set up lol)

rancid temple
#

Your Target for the EditMap would be whatever they loaded in the first place

inner storm
rancid temple
#

Probably pasted it into the wrong spot

royal nimbus
#

well now that hat mouse is working im just kinda blank not knowing what to attempt next -o-

inner storm
rancid temple
#

Or forgot to add a comma

royal nimbus
#

its either do the player assets or work on maps .-.

#

thats rly all i have left to do for my mod ;o

rancid temple
#

Well, there's no guide on how to stitch together two mods by moving stuff from one to the other, but generally you should learn how json works and how CP works

#

I don't remember if there's a command for learning how json works

velvet narwhal
#

SDVpufferthinkblob iirc someone had the actual website for it but then button said real json syntax is not the same as cp syntax

vernal crest
#

Is there a guide for it? I learned by looking at other mods and asking in here

inner storm
royal nimbus
#

what is the string name for the trader? is it travelingmerchant?

inner storm
#

Trying to go back and forth with two people with different amounts of information is largely overwhelming for me.

rancid temple
#

In Data/Shops there's a few different entires for TravelingMerchant, some are for festivals

#

Oh right, the festival one is TravelingMerchant and the regular one is Traveler

finite ginkgo
rancid temple
#

Festival_FestivalOfIce_TravelingMerchant
Traveler
are the two I could find

royal nimbus
#

ty ty ;o

#

so i need to make several entries

#

so that should look like this right?

#

oops. had an extra 'festivle' fixed

vernal crest
rancid temple
#

Traveler might be more complicated if you have different portraits depending on which festival she's at

inner storm
royal nimbus
#

one for 'winter' and regular

rancid temple
#

She has two owner entries, so you'll need two blocks for her

#

Since you can't branch out with TargetField once you've drilled down

velvet narwhal
#

(i cannot for the life of me find the syntaxing for newtonsoft so i guess i'll go back to solving this nullref param)
just kidding i forgot pathos fixed it in 1.6.9

royal nimbus
#

she also has night market too

rancid temple
#

God, I've been intending to change an entry in a CP mod and patch reload for like an hour now lmao

vernal crest
# inner storm I would say you, you were the first to answer and have been talking with me long...

Okay good to know. We don't normally work that way just FYI so in future if you're asking questions in here you will probably encounter multiple people trying to help you as well. If you want to avoid that and stick with one person it might be worth asking that one person right at the start if they can start a thread for you both so you can discuss what you're doing with fewer other eyes and voices present. (Just letting you know because you might run into the issue of getting overwhelmed a lot otherwise.)

royal nimbus
#

thats me rn. trying to organize this code and im kinda like "o_____o" while doing a little here and there

rancid temple
#

I normally don't have too much trouble focusing, if I'm not sleep deprived, but I've been chatting with a few people at once and trying to follow chat, feeling scattered lol

velvet narwhal
#

my brain really works best when i'm sleep deprived ig

#

I'M FREE

rancid temple
#

For now SDVkrobusnaughty

velvet narwhal
#

i need to google the _ = bool.TryParse(customString, result: out bool stringActivated); disposal thing though cause, uh, i'm confusion

royal nimbus
rancid temple
#

Ugh, this is what I get for suppressing a null warning

vernal crest
inner storm
#

I would appreciate it greatly ;x;

lucid iron
velvet narwhal
#

i just can't tell if _ is meant to be a 'disposal' operator or not

calm nebula
#

(Discard)

lucid iron
#

oh so the pattern for T.TryParsed(string oldthing, out T newthing) is like

if (bool.TryParse(customString, result: out bool stringActivated)){
    // we got stringActivated 
} else {
    // didn't get stringActivated
}
calm nebula
#

One of the weird things about technical fields is that words take on new meanings

#

For example, discard and dispose

#

Two very, very separate things in c# land

lucid iron
#

oh i thought irl dispose means destroy

calm nebula
#

Dispose is highly specialized and I don't recommend touching it but it is about unmanaged resources

#

Discard is "I don't want this variable"

#

_ = bool.TryParse(customString, out bool stringActivated);

#

All this means is that the programmer didn't care about the return value of that function

vernal crest
#

Lost Lamb Map Help

velvet narwhal
#

SDVpufferthink this felt very wrong but
bool stringy = bool.TryParse(customString, result: out bool stringActivated);
if (stringActivated == true) { blah blah code }
else { _ = stringy; }

gaunt orbit
#

If it's a return value then can't you just not assign it?

#

I thought you only needed discard for ref/out/decomposition

ivory plume
#

The usual pattern would be:

if (bool.TryParse(customString, out bool stringActivated) && stringActivated)
   ...
lucid iron
#

oh avi u should read about short circuiting DokkanStare

gaunt orbit
#

I... completely forgot that wasn't common knowledge

velvet narwhal
#

i'm really trying to unlearn my circular logic from c++

lucid iron
#

yea we r too deep in sauce

calm nebula
gaunt orbit
#

The short description of short circuiting is that the minimal number of conditions will be evaluated from left to right

For example, if you have thingA() && thingB(), and thingA() returns false, thingB() will never even run.

Similarly, if you have thingA() || thingB() and thingA() returns true, thingB() will never run

#

This does also mean that in situations with multiple conditions where order doesn't matter, you want to put the least expensive checks first, so more expensive checks can be skipped if not needed

lucid iron
#

Does roslyn do any optimization like that

gaunt orbit
#

Roslyn puts them in in the order you do

calm nebula
#

Roslyn doesn't know about side effects

#

She can't reorder things for you

#

Maybe I have ThingA() do something

lucid iron
#

Yeah fair Bolb

gaunt orbit
#

I mean all the Try methods with out params technically have side effects, in that they're doing assignments

calm nebula
#

(You may have noticed the [Pure] annotation. It does nothing. It is not enforced. It's just to make your life as a programmer easier)

royal nimbus
gaunt orbit
#

C# is not Functional enough to make that work

rancid temple
#

Data/Shops

royal nimbus
#

k

calm nebula
#

Eh, I think out params are kinda like returns in feel lol

gaunt orbit
#

They are, but they're still technically side effects

#

I definitely prefer them to tuples

calm nebula
#

(Prefers tuples)

gaunt orbit
#

I like tuples but they tempt me to do terrible things

calm nebula
#

Wren

velvet narwhal
calm nebula
#

At work I have functions with return values of tuple[bool, dict[tuple[str,str], tuple[float,....]]

#

And on and on

lucid iron
#

Named tuples...

gaunt orbit
#

Yeah that's exactly what I'm afraid of lol

calm nebula
lucid iron
#

I have dum question, can I inherit Tuple<string, string>

gaunt orbit
#

I don't think it's sealed, so probably, but why would you

lucid iron
#

Bc I wanted a namedtuple in C# LilyDerp

gaunt orbit
#

Named tuples are a thing

calm nebula
#

You can name your tuples or you can use a readonly record struct why

lucid iron
#

It was a 4-uple at first so I just did a using to give it an alias

calm nebula
lucid iron
#

But some refactors later it's a string, string now

gaunt orbit
#

Yeah that's when you're better off using record structs

lucid iron
#

I do need to use it as a key to a dictionary

calm nebula
#

I swear I have named tuples

lucid iron
#

Can I impl hashable in records

gaunt orbit
#

Structs can be dict keys as long as you implement the hashcode method, which I think record does for you

calm nebula
lucid iron
#

Kk record sound good

gaunt orbit
#

public record struct MyRecord(string a, string b);
If you want a oneliner

lucid iron
#

Do I need to do anything to make record serialize

gaunt orbit
#

Serialize how?

#

In savegames or just json?

lucid iron
#

I am serializing the dict with this tuple key into the save data

gaunt orbit
#

Then you need to use spacecore to register it

lucid iron
#

No it's not save type

gaunt orbit
#

Oh

lucid iron
#

Just the smapi arbitrary save data thing

gaunt orbit
#

So just json then?

calm nebula
#

Should be fine

gaunt orbit
#

Oh yeah then you don't need to do anything special