#making-mods-general

1 messages · Page 249 of 1

lucid iron
#

Indeed

uncut viper
#

which at that point is no real different than RTF

reef kiln
#

If that map was generated already, trees, bushes and such don't disappear when you add a patch.

lucid iron
#

DokkanStare i look forward to button-rtf

uncut viper
#

which has much more community knowledge on how to use

hot gale
#

Ah, yeah that is what I did

uncut viper
#

BETAS can delete your chests and furnaces if you use it wrong

lucid iron
#

But for you king kai it is probably a good idea to do the BETAS trigger in your mod

uncut viper
#

and fruit trees

lucid iron
#

So that people who install your mod don't need to rtf manually

#

ClearTerrainFeatures is the name

uncut viper
#

ClearObjects too, if you want, for weeds and such

reef kiln
#

If you start a brand new game. It should not be there. Otherwise use the terrian reset tool as other suggested. If it does show up on a new save, that's is a completely different problem. But is should not.

lucid iron
#

Was there a regenerate action too

hot gale
#

I imagine most people arent going to be making new saves just for my mod

uncut viper
#

not yet*

lucid iron
#

To setup bushes again

reef kiln
uncut viper
#

i will likely make the RTF alternative first, then transplant some of that code into BETAS

dusk mulch
#

well i will work on my mod later, i have to get xrayed

reef kiln
#

There is even a mod for the specific issue.

uncut viper
#

i wonder if theres a good generic way to just auto detect collisions like that and remove them as necessary without user or mod input

#

like checking if theres a terrain feature on a tile with a Building layer tile or smth

#

though i guess theres nothing stopping yuou from purposely wanting that

hot gale
#

Is there an example somewhere for how to structure a BETAS trigger im a json newb

uncut viper
#

forgot they were two different Tiled layers for a moment

lucid iron
#

You can do that pretty easily it's just "will this scale well" and "ok but i want dis bush on dis building tile"

uncut viper
lucid iron
#

I wonder if u could like

#

Hash a map and detect changes...

uncut viper
#

how would that work for detecting new mods added mid save

#

theres no changes to detect when the collission is there from the time the game is launched/save is loaded

reef kiln
uncut viper
#

that is not BETAS

reef kiln
#

If so that's great.

uncut viper
#

yeah thats what chu and i were talking about andf linking to

#

and what the message you replied to was asking about

reef kiln
#

Really cool. I will switch then.

uncut viper
#

BETAS has a trigger action that will clear terrain features in a location, optionally by type, and optionally by specific area

lucid iron
#

There's no switching

#

BETAS is for mod author usage in this case

uncut viper
#

RTF is for players to use to fix collisions themselves

#

BETAS for mod authors yaya

lucid iron
#

You can debug action blah blah if you want ofc

hot gale
#

Excuse my ignorance where exactly do I put the trigger 😭

reef kiln
#

Oh, i was giving it so he could add it for his users if they wanted it. Better if the mod does it itself though.

lucid iron
uncut viper
#

ok. but what if they add button-RTF mid save

lucid iron
#

I think the main problem with this is intentional map changes for function

uncut viper
#

like if they added it to fix a collision

lucid iron
#

And yeah doesn't do shit if button rtf didn't know about previous state

rancid musk
#

Oh, Button. Someone actually did DM me thanks for helping with SPU, lol

uncut viper
#

and if the answer is "install it from the start of the save" then, well...

lucid iron
#

Unless idk, you ship it with vanilla hashes lol

uncut viper
rancid musk
#

The performance.

uncut viper
#

oh wait

#

i forgot i told people to

rancid musk
#

Yeah, you did, lol

uncut viper
#

I stand by it

#

i think its very cute that someone actually did

lucid iron
#

The other dum idea i have is

#

Break into content patcher's house and steal the EditMap plans

uncut viper
#

also chu the other problem is that doesnt fix the "what if i WANT a tree path tile on the same place as my building tile"

lucid iron
uncut viper
#

im not at all sure how noticing a difference then matters if i dont know whether the difference is intentional

lucid iron
#

It is just going "hm tiles may have changed let's check everything"

#

But yeah I do feel like the hash approach is very sketchy kyuuchan_run

uncut viper
#

like, if i detect that there is now a building tile where there once was a bush. what if the mod author added an Action there purposely on the bush?

reef kiln
lucid iron
#

It's not about rare or common

uncut viper
#

it will still break the mod if i remove it

lucid iron
#

I did neglect to think about how u do actually need knowledge of previous state though yggy

uncut viper
#

for a mod like this i would consider anything with the chance to break mods in edge cases to be a failed implementation

reef kiln
#

I have never seen a mod that wants a bush in the doorway. But I guess it would break the mods that do.

lucid iron
#

A simpler way to detect "maybe changed" would just be hash of the mod list anyways

tawny ore
#

I for one think bushes should be everywhere to the point where they overrun your entire farm

lucid iron
#

ModId+version

uncut viper
#

how can i know what mod made a change

rancid musk
#

define "a change"

lucid iron
#

You can only know if

  • you are installed already
  • the other mod up'd version number
uncut viper
#

im not sure what the point would be. lets say i do hash the mod list and version numbers together. and next timer the game is loaded its different. what do i do?

lucid iron
#

Somehow find out about new editmaps

#

By breaking into content patcher's house

#

I dunno it all seems very fragile

#

The thing i envisioned when i mentioned what if new rtf is pretty much "rtf but you can optionally select an area"

uncut viper
#

that was one of the key things i was gonna do with mine yeah

lucid iron
#

Would be marked improvement already ukimasu

#

The other edge case thing is

uncut viper
#

optionally select an area, filter by type, preview whats gonna be deleted, easily change what map you're doing it on, regeneration (with the same stuff as mentioned for removing), and manually placing individual features

lucid iron
#

Barn/Coop incubators

rancid musk
#

Hmm. How does Landscaper sound for the name of a mod to let buildings apply map overrides?

lucid iron
#

I thought they already can think

uncut viper
#

usually i think of Landscaper as a person doing something

gentle rose
#

I was just thinking earlier today about a mod setting a “last save hash” in the farmer’s mod data so that you could check if it was installed the last time the game was played SDVpuffersquee

lucid iron
#

Or do u mean actually change map tiles

rancid musk
#

Well, it could also be Landscaping

uncut viper
rancid musk
#

I mean actually change map tiles.

#

Like, you could "build" a pond

lucid iron
#

Revenge of tmx buildables i see

gentle rose
lucid iron
#

Is letting people paint the pond shape in scope

uncut viper
#

same way you'd remove the mod data, i imagine

gentle rose
#

this way, you specifically know if it was installed during the last save

#

since it’s a hash, you don’t need to remove it, you check it against the save

uncut viper
#

for what purpose?

gentle rose
#

and if they don’t match, it wasn’t for that save

#

oh, no clue

uncut viper
#

fair

rancid musk
#

I thought tmx stuff was dead? 🤔 I suppose if it's not I should work on my other dumb mod idea instead

lucid iron
#

It is dead

gentle rose
#

but you guys were talking about checking if mods were uninstalled and I figured I’d chip in my two very useless cents SDVpuffersquee

lucid iron
#

But tmx buildables was a feature

uncut viper
#

chu was talking about checking if things were different, whether by install or uninstall. i was talking about how it doesnt matter SDVpuffersquee

lucid iron
#

I think land scaper is perhaps a bit limited

#

What if my tiles is a tree

uncut viper
#

is trees not landscaping

hot gale
#

Trying to decide what the condition should be for clearing terrain SDVpufferthink

uncut viper
#

a trigger action only ever runs once by default, you can set no condition

gentle rose
#

my tentative use case was for an npc to make passive-aggressive comments about not having been there for <however long> SDVpuffersquee “nice to see you again, sorry I had to disappear for a while. Somebody needed my attention elsewhere I guess.”

hot gale
#

oh

uncut viper
#

just remove it the first time they load your save with the mod installed

#

remove the terrain features*

hot gale
#

sweet, thanks I figured condition ws required

uncut viper
gentle rose
uncut viper
#

itd be easier to just save the users current computer date and time

#

i dont think youd need a hash for that i think you can just do this by just saving regular stuff

hot gale
#

Does this look right?

gentle rose
lucid iron
#

Just shove it into mod save data

uncut viper
#

save the computer time with the saves daysplayed

lucid iron
#

Or mod json if u wanna do it asap regardless of sleep

#

Wouldn't be any different than saving a config

gentle rose
uncut viper
#

how long ago you played, so they can comment that youve been gone for a long time

#

like animal crossing

gentle rose
#

oh, I get you now SDVpuffersquee

hot gale
#

Cool, looks like it cleared the bushes

ocean sailBOT
#

@hot gale You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!

hot gale
#

Ayyyy

#

Where do I request mod author role again 😅

#

Ah nvm

lucid iron
#

You dm bouncer yea

#

Add self to wiki

hot gale
#

Lol hmm

#

Why not open SDVpufferthinkblob

gentle rose
hot gale
#

I have a few

brittle pasture
#

Furniture Machine 1.1.0 is out, with the ability to specify custom furniture descriptions and category, two features that are not related to machines at all but is useful for furnitures in general I suppose: https://www.nexusmods.com/stardewvalley/mods/31678

Nexus Mods :: Stardew Valley

This framework mod allows furniture items to utilize machine rules.

hot gale
#

hawt

uncut viper
#

"not really related but useful i suppose" is my favourite kind of feature

lucid iron
#

the real furniture is the machines we made along the way

brittle pasture
#

well it is tangentially related to machines in that I read from CustomFields in Data/Machines

latent mauve
#

Well, looks like I need to make an update to my Laundry Machines now to have descriptions 😛

barren blaze
#

hey all!! a streamer I watch (brad_is_brad_ok on twitch) is working on a Stardew Valley mod live right now if anyone wanted to come check him out! He's all about learning how code works and doing things no one's seen before (and usually has some really fun nonsense going 😁 )

lucid iron
#

i still gotta fix weedses from laundry blobcatgooglyblep

reef kiln
brave fable
rancid musk
#

Surely it wouldn't be confusing if I had two BGM mods (and neither is BackgroundMusic)

#

lol

brave fable
reef kiln
#

😇

gentle rose
lucid iron
#

you are over complicating this

uncut viper
#

cant you just do it on daystart

#

write to a file

#

or check for a file if it exists

lucid iron
#

just use this so it's decoupled from save

gentle rose
gentle rose
uncut viper
#

but DayStarted is going to be the last thing that happens after a user saves, bc the next day will start

reef kiln
#

Are you going to have Lewis cuss out the player for traveling backward in time like animal crossing?

gentle rose
#

exactly, it needs to be done before the save

uncut viper
#

why?

gentle rose
#

oh, I see what you mean, you’re saying save it in a separate file entirely

uncut viper
#

correct

gentle rose
#

sorry if I’m being extra slow today, my brain is fried lmao

gentle rose
# uncut viper correct

but does ondaystart trigger if you close the game from the shipping screen right after it saves? SDVpufferthinkblob

uncut viper
#

it doesnt save on the shipping screen

brittle pasture
#

isnt that before

uncut viper
#

it saves after the shipping screen

#

in the black screen

gentle rose
#

or in general, if you close the game right after it says it saved

uncut viper
#

i mean, maybe if you alt f4 in the first tick after it happens

#

i would call that "user error"

gentle rose
#

and what if a different ondaystart hook that happens before our one changes the game state SDVpufferthinkblob you’d have to make sure either ours runs first or that we use the save file for the hash rather than the loaded save state

uncut viper
#

why? if its different next time, then you know stuff has changed anyway

#

i thought you were only saving info about yourself anyway

gentle rose
#

I’m confused now

#

I’m saving a hash of the save and comparing it to the actual save

uncut viper
#

my confusion stems from not knowing why you need the save data at all

gentle rose
#

you don’t, you’re just hashing it to see if it changed or not

#

you can’t actually get the data back from the hash anyway

lucid iron
#

Can u not just read it from the title menu

uncut viper
#

but why do you need to detect if the save data changed

lucid iron
#

Os stat last modified time

uncut viper
#

i kind of lost the plot like an hour ago ill admit

#

ive been zoning out looking at my custom museum code

lucid iron
#

Im sorry for bringing up hashes ever

uncut viper
#

i forgive you

gentle rose
gentle rose
reef kiln
#

This seems like an example of the "what specifically are you trying to do" problem that happens all the time on this channel. Why, do you want to know this info would probably help figure out how to do it. Right?

uncut viper
#

i think everything was just theorycrafting for fun

reef kiln
#

Oh, then enjoy

gentle rose
#

I’m not asking a question nor am I trying to solve an actual problem

uncut viper
#

C# nerds being C# nerdsniped

#

not me though. im not a nerd. im cool

patent lanceBOT
uncut viper
#

for posterity

lucid iron
#

Cool nerd

gentle rose
#

I’m not a regular nerd, I’m a cool nerd

lucid iron
#

God tas has so many knobs

#

Too many really

#

But soon i shall have the power to describe wizard smoke

vernal crest
#

Every time I play this game I am thankful that I am a mod maker so I can fix issues with my game myself. Specifically fixing broken stuff in other people's mods so I can actually experience them lol

gentle rose
#

I have either taken my meds zero times, one time or two times. how can we tell

brittle pasture
#

until it's a closed source C# mod, then I cri eritim

#

also partly why I no longer install mods from people who I don't recognize in here

gentle rose
brittle pasture
#

(finger shrivels in fear seeing optimized switch branches)

reef kiln
#

I am jealous, if I could fix/update c# mods my mod list would jump exponentially.

vernal crest
#

Hmm, broken event is from mod that is not installed...

gentle rose
#

the optimised string switches are my favourites

lucid iron
#

have there been C# mods that are 1. borked 2. you really wanted it

#

i feel like when both are true i just

#

make it...

teal bridge
brittle pasture
#

do you use 80% of all mods SDVpufferwoke

gentle rose
#
if (str.Length == 5) {
    if (str[0] == “w”) {
        if (str[1] == “a”) {
            ….
        }
        else if (str[1] == “h”) {
            …
        }
    …
…

like that’s just so fun

teal bridge
#

No, but it's not the same 20%

vernal crest
#

Oh no, event is also broken in mod that is installed (in the same way o.O)

brittle pasture
#

the statement was slightly overblown, of course, but I nowadays usually stay away from C# mods that are closed source or from authors I don't recognize

gentle rose
#

I don’t tend to stress too much about missing out on mods because I didn’t consider them tbh SDVpufferthinkblob

vernal crest
#

And voila, fixed

teal bridge
#

Ah, well closed source I can sort of understand.

#

Though I don't think I'd pass on installing it, personally, I'll just ignore any compatibility questions.

astral oyster
#

What use are the blank.Json files and could the fact I lack them be leading to events not using sprites despite the sprites normally loading? using format 2.5.0

lucid iron
#

blank json is just to let you use EditData

#

are you doing a Load from a non blank json?

#

for your events

gentle rose
#

what do you mean you lack them? is this a mod you’re making from scratch, or are you editing an existing one which had them?

teal bridge
lucid iron
#

there is one mod that would have been beyond my ability tho

uncut viper
#

which one

vernal crest
#

We load blank json files and then use EditData to add our actual content because CP tokens don't work in Loaded files.

lucid iron
#

i dont think i can do the nonsense required to compile a mgfx shader on linux

tidal stone
#

should i do multiple colours of Nepeta.... (catmint)

#

not with C# iill just make em different variety sopecies lmao

lucid iron
#

u need like a older version of it think

reef kiln
brittle pasture
astral oyster
#

So they are very important from what I am learning here, and I wouldn't call it from sratch but working from a mish mash of information on how to make custom npc in the new format

tidal stone
#

omg it issss

ornate locust
#

I did it, I made him animate during the fair

vernal crest
ocean sailBOT
#
Creating a Custom NPC

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

tidal stone
#

this changes so many things

ornate locust
#

not that you can see the animation in that image

#

but it animates so yaaaay

tidal stone
#

!flowers

#

fine ill go tot he wiki

#

😔

ornate locust
#

also I swear to god I didn't intend to recolor that tourist to look like Duke Nukem, I just wanted him to look different from how he looks now

gentle rose
ornate locust
#

and Duke Nukem came out

lucid iron
brittle pasture
astral oyster
#

yes I've been using that, but some of the information seems incomplete

reef kiln
lucid iron
#

it sure does sound like a large amount of nonsense tho

brittle pasture
#

see TintColors

quiet sandal
#

Hey sorry to cut in on your conversation but could someone please explain to me how to make indoor specific npc sprites.
I have no coding/modmaking experience so I do not understand anything about it

brittle pasture
#

and cross reference with vanilla crops/tilesheets

ornate locust
vernal crest
tidal stone
#

are the tint colors themselves hardcocded or can i make custom tint colors

astral oyster
#

no not existing before

brittle pasture
#

you can make custom yes
the game will dynamically color a grayscale overlay and put it on top of the base sprite

uncut viper
#

DonationCritera -> DonationCriteria
this one typo has cost me 20 minutes

tidal stone
#

oh amazing

#

this means some of my flowers can be multicolored woohoo

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.

reef kiln
#

It is the TintColors that you use right?

tidal stone
#

uwu_nod gonna use it for foxgloves and the Nepeta mint

vernal crest
#

I realised I could find the wiki page in my Steam browser SBVMischief

quiet sandal
#

i read a guide on the wiki and got a good ways on the code but i just dont understand how to make it actually work

vernal crest
#

Ohhhhh how I wish I was good enough at C# to be able to print myself a list of all the events I haven't seen yet

astral oyster
#

do you want the json file for the events or content?

vernal crest
latent mauve
#

If you do not set a Precedence field, then the order of your Appearances becomes important. The one you want checked first will need to be first in the list unless you give it a higher precedence instead

vernal crest
tidal stone
#

where would one find the flowers so i can reference how their tinted heads are done so i can copy

#

i dont se em under crops

tidal stone
#

oh is it the things in spring object

tidal stone
quiet sandal
#

honestly i could've done all this wrong somehow but idk

lucid iron
brittle pasture
# tidal stone

yep! also importantly, in your Data/Objects entry you need to set "ColorOverlayFromNextIndex": true so the game uses that overlay instead of tinting the entire sprite

tidal stone
#

ty tyyyy

#

this is gonna be so cool to see in game

latent mauve
vernal crest
lucid iron
#

well i wasn't gonna give more than high level kyuuchan_run

brave fable
#

really the main issue is collating all the event IDs, which are loaded per-location

#

so you'd have to load up every single data/events/location file

lucid iron
#

there's 2 Utility methods that check if event seen

HasAnyPlayerSeenEvent
HaveAllPlayersSeenEvent

To know about Event id you need to use Utility.ForEachLocation to find out about location names
And then location.TryGetLocationEvents

tidal stone
#

ok question, if i have a gradient in my colors ie i have my foxglove like this will i need to make 2 seperate masks for the coloring for it to stay a gradient or would that auto color the way i want it to being two diffeent shades on the top and bottom?

astral oyster
wet granite
#

Is there a channel for talking about mods that isn't "support" or "this channel which is for talking about making mods"?

vernal crest
#

I'm almost at the point of considering doing a patch export for every location in the game and then collating all of it into a spreadsheet just so I can get something to tick off without having to open the social menu and navigate to the NPC again every time I want to check the next event

wet granite
quiet sandal
#

i dont exactly understand how to make a new block but ik that is not how

brittle pasture
latent mauve
#

And you still might need to set Precedence to be higher than 0, Eli.

lucid iron
#

year 2 of wishing C# had C style macros...

tidal stone
#

ok and i can have a diffent opacity on the same mask in different areas or would i need to split it up?

brittle pasture
#

on the same mask, yes

tidal stone
#

cool!

#

ty ty selph

vernal crest
latent mauve
#

For reference, Winter outfits have a precedence of -100

#

I just checked

quiet sandal
astral oyster
#

I think their internal name is {{ModID}}_Beta while the display name is Beta; I tried switching in {{ModID}}_Beta in place of their display name thinking it would fix the issue; but it did not. So I reverted it back to the before change

latent mauve
quiet sandal
#

ah i see now

latent mauve
#

If you want to override winter, you need -101

quiet sandal
#

Ok yeah got that now

vernal crest
quiet sandal
#

One more question with how I have the png linked where does it take that file from. The asset folder in the mod folder or the actual stardew valley files?

vernal crest
latent mauve
#

So you would use that target for your Texture

quiet sandal
#

Ok thanks

astral oyster
#

Maybe I made a mistake when I had them in the other format I missed and changed it back to soon, I will do the above and see the results

uncut viper
#

question for the C# folks re: spritebatch drawing. is there like... a better way to figure out layerDepth or do i just have to accept that im supposed just.. tweak the numbers until it works. because this:
(v.Key.Y) * 64f / 10000f Doesnt work
(v.Key.Y + 1) * 64f / 10000f Doesn't work
(v.Key.Y + 2) * 64f / 10000f Works
(v.Key.Y + 3) * 64f / 10000f Doesn't work
seems like the wrong way to go about it lol. but iunno how else

brave fable
#

please understand that most of the layerdepth values in the decompile are given in scientific notation, not because there's a science to it, but because it's a fuckin mess

#

what're you drawing and in what context?

brittle pasture
#

usually it's y divided 10000 plus x divided 100000 plus tweaks which can go any which way

uncut viper
#

the first line is the formula the museum uses for drawing the objects on the pedestals, which is what im also trying to do, except i want to allow drawing things that are not just Objects

#

(O) objects that is

#

this is the problem i was fixing

#

where v.Key is a Vector2 position of the tile

#

(not the red highlighted one)

brittle pasture
#

hmm + 3 should work, it's higher than +2

lucid iron
#

i dont know if there is any good way to go about this yggy

uncut viper
#
  • 3 puts me beneath it like this
lucid iron
#

i also just add 2E-06f until it feels about right

brittle pasture
#

then you want to subdivide it

dreamy cedar
#

For my stuff, I felt like tweaking was the only way to go because the game code just pulls numbers out of thin air (as far as I can tell). So each situation is it's own adventure.

uncut viper
#
  • 1 leads to weird z fighting where sometimes it works, sometimes it doesnt, and its not consistent even with the same player positioning
brittle pasture
#

I usually add 1/100000f at a time

uncut viper
#
  • 1 also makes my tool animations go behind the top half of the beehouse
#

but +2 makes it all work perfectly

brave fable
#

dare i say +0.5f

uncut viper
#

+2.5f also doesnt work

#

+2.25f does though

brave fable
#

+2.25f it is. congratulations! you are now a layerdepth scientist

uncut viper
#

my takeaway from this is that no there is no better way and i was doing it right by just tweaking it

#

is there any issue with just leaving it at +2

brittle pasture
#

what layer does the game use for Objects

brave fable
#

i mean the issue is that the layering was wrong. if the layering is right, there's no issue

lucid iron
#

i mean are u gonna let people donate furniture?

#

how does game do 3 tile lamps bolbthinking

#

u r basically hoping to draw that aren't u

#

the "table" being 1 tile

astral oyster
#

You know, I had the internal names listed in the event at one point and did not work; it's working now after all of this. I have no idea why it didn't outside of maybe a spacing problem. Though exporting the files mentioned before wouldn't work for some reason. Probaly another user error on my part

uncut viper
#

lamps seem to work fine with +2

lucid iron
#

congrations you are now LayerDepth certified

uncut viper
#

(i did add extra stuff to account for the extra height of the source rects, vanilla museum would NOT handle this right)

tiny zealot
brittle pasture
#

try a 2 tile high donation table

lucid iron
#

i present you with this:SXFstar

brittle pasture
#

actually nvm that still works

uncut viper
#

are there 2 tile high tables?

#

oh

#

okay well wider things are a Kinda Works

brittle pasture
#

anyway generally I try to compare against what the game is doing, and whether I need to bump it up by one Y layer or down. then I add tiny tweaks (usually in steps of 1/100000f) until it looks right

lucid iron
#

table museum DokkanStare

brave fable
#

furniture showroom...

uncut viper
#

the problem with this is that you can put another item in any of the other 3 table tiles if theyre valid spaces...h m

brave fable
#

if it helps at all, Object.draw(b, x, y, alpha) heldItem uses base_sort + 1E-05f for the layerdepth

lucid iron
#

i guess u need furniture collision bounds

uncut viper
vernal crest
tidal stone
#

Do you think 20 or 30 is a good number for a small garden mod like herbs and flowers? at least to start with

brave fable
#

30 is small?

brittle pasture
#

isn't base_sort just the y level

brave fable
#

there's like 10 flowers in the base game haha

tidal stone
#

fair

#

I just dont wanna make it feel like "well why would i download this"

brave fable
#

float base_sort = (float)((y + 1) * 64) / 10000f + tileLocation.X / 50000f;

lucid iron
#

you could maybe take a break and do all the not art stuff?

quiet sandal
lucid iron
#

make ur flower actually grow in game and stuff

tidal stone
#

true

brave fable
#

i wouldn't download a mod with like 50 new plants to be honest

lucid iron
#

then u can draw more later

tidal stone
#

ok I might start doing that

brave fable
#

i'd download one with maybe 5

lucid iron
#

what if it's 20 different blueberry cultivars

brave fable
#

definitely not downloading it lol

uncut viper
#

ive decided i will allow furniture but im going to deal with the furniture collision stuff Later™ (which may possibly be after release)

tidal stone
#

yea im starting to get like burnt out on doing the pixel art because the shapes are getting hard not to be just repeatable lol

brittle pasture
#

there's that carrots variety mod

#

we need one for all the bananas

lucid iron
#

ngl these all look identical to me

brittle pasture
#

Gros Michel banana fruit tree - produces up until year 3, after which a fungal blight wipes them all out

lucid iron
uncut viper
#

i would absolutely fuck up a bowl of Clockwork Blueberries right now

brave fable
#

that's me. i am the Duke

tidal stone
reef kiln
lucid iron
tidal stone
#

oohg ok uwu_nod

#

then i might have enough herbs and add one or two more flowers and stop

#

because i dont want to create a big huge mod

brittle pasture
tidal stone
#

i want it cozy

astral oyster
#

I misunderstood what I was being told, yeah; the portaits were exported. They exist

vernal crest
# quiet sandal honestly i dont even know what im doing So "Target": "Data/Characters" links to...

It doesn't actually edit the xnb file itself, but it edits the asset Data/Characters after it has been read from the xnb (that's why CP is much safer than xnb modding!). But for loading your images, you're not editing Data/Characters. You're adding a new asset called Portraits/NPCName_Outfit1 that contains the image data and then in your Data/Characters edit, you're telling it "use that Portraits/NPCName_Outfit1 asset for the NPC's portrait in these conditions, please".

tidal stone
#

should i draw my flowers and herbs as item drops first or just start makin em grow in game

brave fable
#

whichever gives you more inspiration to work on the other imo

tidal stone
#

idk if theyat would break stuff not having them as item drops too fgirst

uncut viper
#

hey selph you've looked at the furniture draw code right

vernal crest
brave fable
#

if you want it functional upfront, just make a dummy sprite with 'HERB 1' on it or somesuch

reef kiln
#

You could then make a mod that makes players go through major screening before they enter the valley to make sure the fungus does not spread to ginger island. Like some banana producing countries do to save the banana crops.

astral oyster
#

this experience has taught me much for future use, I thank you for your help

tidal stone
#

which mod makes stuff stay year round again

#

was it custom bush?

brave fable
brittle pasture
reef kiln
brave fable
#

another fine patho's child mod 🤝

tidal stone
#

Yes! i need to use that for my passionfruit i think uwu_nod

uncut viper
brave fable
#

i'm pretty sure all furniture shadows are baked into the sprite

#

alternatively there's a wide shadow sprite

uncut viper
#

the table i donated only has one shadow in the corner for an object

quiet sandal
reef kiln
uncut viper
#

oh wait no

#

you're right it does have its shadow

brittle pasture
#

yeah the shadow is baked in, you can see it on the screenshot above

uncut viper
#

oh thats easy then. thank you selph

tidal stone
uncut viper
#

(/j thank you blueberry)

brave fable
brittle pasture
#

well to be (not) fair that was what I was about to say as well

uncut viper
#

the thanks does go to both of you

#

i asked selph bc i figured you mighta seen it when working on Furniture Machines

brittle pasture
#

the circular shadow underneath Objects is Game1.shadowTexture

uncut viper
#

yeah thats easy enough to just comment out for furniture

reef kiln
#

If you need help with the programing and the readme is not clear. the mod page says you can ping Matt.

uncut viper
#

or non-objects in general ig

reef kiln
tidal stone
#

ty tyyy

uncut viper
#

does look kinda strange with uneven shadows ill admit but. not much i can really do about that methinks

reef kiln
# tidal stone ty tyyy

I have always found Matt really helpful with his mods. He is one of the big mod authors so he keeps his stuff updated too.

brave fable
#

i'd say the book getting flattened under the table is strange myself

uncut viper
#

one of the legs is shorter than the other

vernal crest
# quiet sandal ok so what im confused about is where i need to put my sprite image to get it to...

Characters/{{ModID}}_Haley_Indoors - though it doesn't actually have to be called Haley_Indoors it can be called whatever you want. I do recommend using the {{ModID}}_ prefix though as that ensures that the asset name is unique and therefore won't clash with any other mods that want to add an indoor outfit for Haley that just happen to also call it Haley_Indoors.

I wonder if maybe you are getting Data/Characters and Characters/ mixed up? Characters is the folder in the game contents that contains the sprites for the NPCs. It is a bit confusing I think.

So what you need to do is copy that code block with the target "Portraits/NPCName_Outfit1", and then change the Target to Characters/{{ModID}}_Haley_Indoors. Then change the portrait one to "Portraits/{{ModID}}_Haley_Indoors", and fix the FromFile so it's pointing at your portrait for her indoor outfit rather than her sprite image.

lucid iron
#

whats the thing under the table

uncut viper
#

im just gonna chalk the shadow thing up to the mod authors needing to decide how much they really want a furniture/BC museum

uncut viper
lucid iron
#

wow

quiet sandal
#

thanks

reef kiln
lucid iron
uncut viper
#

oh yeah so it is. ive not been paying attnetion to the other convos whoops

latent mauve
#

Thanks for picking up that thread while I stepped away, aba ❤️

uncut viper
#

ready to ship

lucid iron
#

i like the 2d scythe

uncut viper
#

i dont know why the shirt is so tiny

lucid iron
#

it is tiny

#

8x8

uncut viper
#

that tracks

tidal stone
#

i jsut realized before i do my plants i think i will make their seed packages

#

lmao

#

cant plant them without seeds

lucid iron
#

you can just draw seeds without package if u want

brittle pasture
tidal stone
#

nah i got dis i think im finalizing my herbs and flowers at 15 because i want this to be a small project not huge XD

lucid iron
strange dew
#

can someone explain how duration works to me? on the wiki it says to use milliseconds but that really does not sound right LOL. for example, seafoam pudding has a buff duration time of 3 mins and 30 secs, in the unpacked files the duration is listed as 300. i cant find anymore documentation on it on the wiki but maybe im not looking in the right spot

reef kiln
# lucid iron

I know it is not the point, but what mod adds a sign that says fishpond to the fishpond?

lucid iron
#

nano's buildings

reef kiln
#

Thanks 🙂

vernal crest
lucid iron
#

i feel amused by this even though i have no idea what i'd need it for

brittle pasture
#

touhou valley

uncut viper
#

touhou valley obviously

lucid iron
#

i wonder if game cleans up off screen TAS

#

eventually

rancid musk
#

Probably not till you change game locations?

uncut viper
#
if (this.alpha <= 0f || (this.position.X < -2000f && !this.overrideLocationDestroy) || this.scale <= 0f)
    {
        this.unload();
        return this.destroyable;
    }
lucid iron
#

the bus stop is a magical place

rancid musk
#

That seems somehow less than ideal.

uncut viper
#

no budget for the others

lucid iron
#

the stardrops are free roaming

rancid musk
#

I wonder if that's to do with things getting blown to the left by wind?

lucid iron
#

oh that would make sense (but why not just do it all 4 directions)...

brittle pasture
#

thanks to its unique geography wind in the valley only ever blows one way

#

which is a problem when an invading naval force 800k strong is sailing down the wind, and you want to defeat them with a fire attack

uncut viper
#

eventually, the fire will wrap around

tall wind
#

Hello!
Is it possible to edit the event scene of the Summit?
I looked for it in Data/Events but could not find it.

brave fable
#

sorry, it's a little (extremely, unbelievably, completely) hardcoded:

uncut viper
#

dumb idea: can you replace SummitEvent_Intro_Spouse with your own event string

brave fable
#

if you're experienced in C# and harmony, you can look into Summit.cs:getSummitEvent(), showQiCheatingEvent(), GetSummitDialogue(), getEndSlideshow(), and so on

lucid iron
brittle pasture
#

leaking uranium waste

brave fable
#

is <spouse i dislike> buried there

lucid iron
#

it is completely exposed to data

#

based on the wizard house's smoke

uncut viper
#

i was about to say, free cauldron bubbles

brave fable
#

i notice you don't support AlphaFadeFade and RotationChangeChange

uncut viper
#

whats the point if i dont have my rotation acceleration

lucid iron
#

i suppose i could

#

just keep nesting them

#

Change->Change->Change

#

RandMin/RandMax doesn't support all fields tho

brave fable
#

u dont even use ScaleChangeChange...

#

all my favourite temporaryanimatedsprite properties

lucid iron
#

there are so many knobs i havent done yet

#

subscribe for full features obviously

brittle pasture
#

what if I want the scale to change according to sine wave

uncut viper
#

i would like to fire a trigger action at a certain scale and rotation too please

brave fable
#

surprisingly there isn't a periodic value for scale

lucid iron
#

being able to eval simple maths is something i wanted for trinkets (so ppl can implement funny motions if they want)

lucid iron
#

ⱯqqWɑᴉɼ?

uncut viper
#

if rot = 0.748f i would like to do a trigger action

#

but only when the TAS rotates into that value

lucid iron
#

terror

uncut viper
#

also id like it to only happen when its exactly 0.748 thank you SDVpuffersmile

brave fable
#

another victim of floating point inaccuracy

tall wind
lucid iron
#

more things in the game should rotate

dreamy cedar
#

I'm told I should have my ears rotated...

#

You know, to balance the wear.

brave fable
uncut viper
#

thats true, actually

dreamy cedar
#

@rancid musk - have you ever given a thought to the idea of having BetterCrafting show some kind of indicator over the recipes that haven't been crafted yet (for Perfection)?

lucid iron
#

i thought thats a feature

#

the new thing

rancid musk
#

Literally a feature, yes.

#

You can also create a dynamic category with a rule to only include uncrafted recipes.

dreamy cedar
#

Sorry, I don't see the indicator - (E.g. in this playthrough, the soda machine (2nd row, 4th item) has not been crafted yet.

#

Ah, I see how how to create a dynamic category. Yep. That works.

arctic oxide
#

so im looking through mods and this is from a crafting recipe addition, what do the 709/30 mean?

shut mountain
#

Item IDs I think

#

What's the rest of the line?

hard fern
#

30 of item id 709

brave fable
hard fern
#

I guess

shut mountain
arctic oxide
brave fable
#

in this case, 709 is Hardwood (which you can find in the Data/Objects file when unpacked)

arctic oxide
#

oh so its 30 hardwood to craft it

hard fern
#

Yes

arctic oxide
#

awesome ty all

shut mountain
#

I need a jar sprite for a mod I'm going to start working on once I get the piece of absolute garbage that is my laptop back, but pixel art has never been my forte, and I don't wanna just yoink someone else's sprite. SDVpuffersob

brave fable
shut mountain
#

I'd join you, but I'm not a blueberry

brave fable
#

through a great deal of focus, study, and (most important of all) lasagna, you too can become small and very round

hard fern
#

Now the blue part

shut mountain
#

I'm good, thanks 🐟

shut mountain
fierce vault
#

Hi, quick question. Is the area to the left of the bustop right before the tunnel inaccessible to npcs? Because it seems to have the label the back woods.

brave fable
#

yep, it's not supported for pathfinding. both areas are in the same map

#

BusStop is fine, Backwoods is not

fierce vault
#

ok, thanks

faint ingot
#

you ever make a few changes, boot up the game to test stuff quickly and it's like "OK, everything seems to be working just fine"... close the game and the last thing you see is your SMAPI window about to close and filled with nothing but red error messages

hot gale
#

rofl

ornate locust
#

yes

shut mountain
#

Does anyone knows where the vinegar is in the game's files?

hot gale
#

the data or sprite

shut mountain
#

Sprite

hot gale
#

springobjects.png prolly

lucid iron
shut mountain
#

Is that literally everything?

lucid iron
unique sigil
#

is that a springobjects emote

shut mountain
#

Nope it's an emoji 😑 I've been bamboozled

lucid iron
#

yea

shut mountain
#

Thank you

lucid iron
#

i woulda put cursors as emoji too but it's too big

shut mountain
#

Where is SpringObjects? >_>

unique sigil
#

!unpack

ocean sailBOT
#

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

lucid iron
#

Maps/springobjects

#

although isnt there that item id site

unique sigil
#

chaos needs the sprites

#

can just yoink it from game files

shut mountain
#

Was planning on it :)

#

My poor pixel art editor is going to crash the second I open the PNG 🤣 (Or not)

marble verge
#

Good morning. Does anybody know if Spiderbuttons frequents this Discord?

shut mountain
#

Idek who that is, I'm sorry

unique sigil
marble verge
#

I'm not too familiar with Discord, is there some way I can ping them? I ran into an issue with CMCT.

shut mountain
#

@PersonYouWantToPing
They might not like that tho, so fair warning

rancid musk
#

Buttons is here a lot, yeah.

marble verge
rancid musk
#

This is also not where you ask for support. This is for making mods.

unique sigil
#

if it's a bug report, best post it on nexus

if it's a question about the mod, you can ping the mod author, usually

marble verge
rancid musk
#

Granted, if you're encountering an issue while making a mod using CMCT, then this channel works,. yeah.

shut mountain
#

Same :D

rigid musk
#

vibincat yippie making mods

vernal crest
#

Is your issue something to do with understanding CMCT or is it definitely a bug?

marble verge
#

Slash ", I mean.

vernal crest
#

Knowing Button's love of single quotes, I recommend trying "'Config with spaces'"

rancid musk
#

It's possible the issue is in Content Patcher, if that's the case, and not CMCT.

marble verge
#

How do I turn text into a code block?

#

In Discord, I mean.

shut mountain
#

Um. text

vernal crest
#

!codeblock

ocean sailBOT
#

You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```

For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.

rancid musk
#

```like this```
like this

marble verge
#
      "Name": "CMC.EnableExtendedCropsPack",
      "Value": "{{Spiderbuttons.CMCT/Config: Cornucopia.MoreCrops, Enable Extended Crops Pack}}"
}```
shut mountain
#

Oh I just used one on each side

rancid musk
#

That looks like a label and not a key, for the setting name.

marble verge
#

It's a Dynamic Token; I've done it this way for other mods, and those imported just fine.

rancid musk
#

Hmm. Yeah, so it is.

lucid iron
#

does cmct support dynamic tokens think

marble verge
#

This works just fine:

#
      "Name": "Valuable.Red",
      "Value": "{{Spiderbuttons.CMCT/Config: LG.ICO.CC, Valuable_Red}}"
}```
vernal crest
#

If it's a dynamic token, shouldn't you be using Spiderbuttons.CMCT/Dynamic instead?

marble verge
#

No, it's a config setting imported into a Dynamic Token for use elsewhere.

lucid iron
#

do you have to quote the spaces yggy

marble verge
#

I use {{Valuable.Red}} elsewhere without issues.

marble verge
vernal crest
#

So when you said it's a dynamic token, you meant you're using it as a dynamic token but it's a config setting in Cornucopia?

lucid iron
#

yea i checked it is indeed called Enable Extended Crops Pack

#

!log do a patch summary

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.

marble verge
lucid iron
#

tbh i dont think i can help you much, but it will help button debug when later Dokkan

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 195 C# mods and 286 content packs.

uncut viper
#

quotes are not required and spaces are handled just fine, and patch parse is able to correctly identify it.

#

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

uncut viper
#

send your content.json here

marble verge
#

The first example of using the Dynamic Token I'm trying to create is line #276.

uncut viper
#

i need to see where you are defining the dynamic token

marble verge
uncut viper
#

though, your problem is actually likely that you are doing Whens wrong. you need to remove the outer braces

marble verge
uncut viper
#

sorry, remove the outer set of double braces

#

so no braces at all for the outermost token

#

you do it right with HasMod for example, you just have "HasMod" it works the same for all tokens, even dynamic ones

#

and i imagine you want to remove the single quotes from around the config names again

#

dont think Content Patcher would treat those as a string inside the quotes, i think it'd just take the quotes as part of the input, but im not sure

rancid musk
#

(See, this is more evidence that I am bad at content patcher.)

uncut viper
#
{
      "Name": "CMC.EnableExtendedCropsPack",
      "Value": "{{Spiderbuttons.CMCT/Config: Cornucopia.MoreCrops, Enable Extended Crops Pack}}"
},

...
"When": {
  "CMC.EnableExtendedCropsPack": true
}
marble verge
uncut viper
#

not "can." you must do it for the outermost token

#

and only the outermost token

#

if you have tokens inside the token, they keep their braces

#

the reason you must is because if you dont, Content Patcher replaces it, bc it sees that its a token

#

so what you have before this fix is essentially this:

"When": {
  "true": true
}
#

i assume

#

though based on the error spam in your log, it might just fuck up the parsing entirely

marble verge
#

Okay, dropping the curly braces fixed the problem!

uncut viper
#

good luck with the rest of your terrifying (complimentary) json

marble verge
strong beacon
#

Heya, I'm a new Modder and i was wondering if there are any good videos to recommend for me to follow (I'm redesigning the cinema)

uncut viper
#

videos are quickly out of date. case in point: i dont know of any that survived after 1.6

hard fern
#

Your best bet is to just look on the wiki or ask people here

strong beacon
vernal crest
ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

inner harbor
#

Are pigs limited to what tiles they can dig on? They dont dig in my east scarp supplenentary farm, apparently. It has tiles classified as dirt tiles but they are visually grass tiles.

uncut viper
#

is it classified as Outdoors?

inner harbor
#

Pretty sure since it rains and you can grow stuff on it.

brave fable
#

conditions in behaviors() are:```cs
if (location.IsOutdoors && !location.IsRainingHere() && !location.IsWinterHere() && currentProduce.Value != null && isAdult() && GetHarvestType().GetValueOrDefault() == FarmAnimalHarvestType.DigUp && Game1.random.NextDouble() < 0.0002)
{
...
}

but also in `DigUpProduce()`:```cs
if (!r.NextBool((double)friendshipTowardFarmer.Value / 1500.0))
{
    currentProduce.Value = null;
}
#

do your pigs happen to be sad and hungry

dusk mulch
old edge
#

On day 3 of trying to figure out C# code for adding an emoji portrait icon for the special order board tried doing harmony patch but it really is a hassle and messing up my code so many times.

shut mountain
#

Can multiple recipes create the same item? I'm using Json Assets if that changes anything.

drowsy pewter
#

Yes

#

Wait

shut mountain
#

Wait?

drowsy pewter
#

Actually I don't know what will happen given the interaction with JA

#

Try it out

shut mountain
#

Alr. Lemme see if I can figure this out

drowsy pewter
#

Json Assets functionality was replaced by CP in 1.6, so people here generally are not supar familiar with it. It's been a few years for myself, and I cant remember if it only allows you to set one recipe per item. If that's the case, then you wont be able to add another recipe for the same item

latent mauve
#

Using just Content Patcher

shut mountain
#

Yay!

#

Oh

#

I really only speak Json Assets 😅

drowsy pewter
#

You might be out of luck then. I'm also not 100% sure that doing it in CP will work or if it'll just return the torch recipe if it doesnt match the item name

#

Personally i recommend learning CP regardless

gray bear
#

unsure if JA or CP allows for that tbh thonk

shut mountain
#

Yeah, I should really relearn everything, shouldn't I?

latent mauve
#

Depending on what you are intending with the dupe recipes, you might also be able to get away with using a category as an ingredient to still have just one recipe

gray bear
#

yeah. use CP anyway.

drowsy pewter
#

You can use item category or spacecore recipes (with CP) to accept multiple different ingredients in a recipe

shut mountain
#

I wanted to make dyes with all the items of the respective dye color

drowsy pewter
#

That should definitely be done with spacecore recipes then

latent mauve
#

Yeah

drowsy pewter
#

Otherwise you'd have like 100 recipes for the color red

gray bear
#

so it makes different color dyes depending on the item?

drowsy pewter
#

You can also make it a machine rule with CP only

latent mauve
#

You could also just create a machine that takes anything with a color context tag

drowsy pewter
#

Machine rule would be easier for you to learn i think

shut mountain
#

:O

#

Probably

gray bear
#

is there a mod page for machine rules?

shut mountain
#

Even 15yo Chaos wouldn't've come up with that

drowsy pewter
#

[[Modding:Machine_data]]

#

is that how it works?

#

Lol nvm

latent mauve
#

[[Modding:Machines]]

drowsy pewter
#

Sigh

latent mauve
#

Gotta be the right page name

gray bear
#

you gotta know them all by heart I guess

shut mountain
#

That's more sprites I have to make, but I'll manage ;-;

unreal spoke
#

Wasn’t there a machine data page at some point? SDVpufferthinkblob

latent mauve
#

Could always experiment with an existing object for now

shut mountain
#

I'll definitely do that

gray bear
#

maybe the geode crusher make dyes

#

don't think about it too hard 😆

latent mauve
#

Nothing stopping you from making say, a table or a brazier for making dyes either

gray bear
#

table dye would be quite funny

shut mountain
#

True 🤣

gray bear
#

there is a mod to make furniture produce items by Selph

latent mauve
#

Bonus sprite idea: table with mortar and pestle on it

gray bear
#

but like figure out the dyes first maybe

shut mountain
#

Yes definitely

gray bear
#

then you can figure out the machine. one step at a time

drowsy pewter
#

Yes, you have to rewrite everything for CP to do this

shut mountain
#

Thank you, but I like table dye

gray bear
#

if you run the JA mods and do a patch export it helps a lot when converting to CP

drowsy pewter
#

also ignore what I said about the recipes, that's more just info for other people. You definitely dont want to end up with 400 handwritten recipes

gray bear
#

that sounds like hell

shut mountain
#

Yeah, and I don't have that much patience

gray bear
#

do we have a command for how patch export works I keep forgetting

latent mauve
#

Yeah, RequiredTags with a color context tag is the way to go here

#

Anything useable in a dye pot already has a color context tag so most of the work is already done defining the colors

gray bear
#

put the apple on the table and bam red dye

shut mountain
#

Yes

#

That's how it's going to work

gray bear
#

how does the JA mod handle the dyes? crafting recipe?

shut mountain
#

Um. Brain is not braining ;-; It's 3 AM here

gray bear
#

perhaps some sleep?

shut mountain
#

No!

gray bear
#

good for brain!

shut mountain
#

I'm nocturnal

latent mauve
#

I have two machine mods that you can open up if you need examples. One using Furniture Machine and Extra Machine Config features, and one just using vanilla machines to add recipes via context tag.

drowsy pewter
gray bear
#

oh yeah that is how JA works, god I remember when that was the mod to add anything

shut mountain
#

Same SDVpufferpensive

latent mauve
#
Nexus Mods :: Stardew Valley

A tiny mod Content Patcher mod that makes it possible to dehydrate Red Mushrooms into Dried Red Mushrooms and Truffles into Dried Truffles by changing the Dehydrator rules and adding a new 'inedible_m

Nexus Mods :: Stardew Valley

Adds three different Laundry Machine models to Robin's shop that produce either one piece of clothing or one piece of cloth per day. Also adds the ability to recycle unwanted hats or clothing back int

gray bear
#

ooh those are cool fire

latent mauve
#

Feel free to look at the code, both of those are for Content Patcher

drowsy pewter
#

I'm lazy and would have totally just added edible_mushroom to both items

latent mauve
#

6840, I just added inedible_mushroom to the machine xD

#

Which covered both truffles and red mushrooms in one go

#

It was still pretty lazy

gray bear
#

wait how does that work? does it work for the dehydrator because it has the mushroom tag?

#

oh wait u probably added inedible_mushroom to the machine itself I'm silly

shut mountain
#

Thanks for the help, I'm gonna go color now 👋

latent mauve
#

I added a new rule for the DriedMushroom output that takes inedible_mushroom as a RequiredTag, yeah

gray bear
#

y'know truffle should be edible I don't know why it isn't

latent mauve
#

Adding that tag as a rule has the added benefit of forage mods just adding inedible_mushroom to their object tags to make them work in the machine.

gray bear
#

we can dehydrate all the mushrooms aSDVpufferrise

latent mauve
#

You can even eat them after if you want to immediately pass out, LOL

#

(negative energy from poisonous mushrooms still gets amplified)

gray bear
#

yeah I'd imagine if you take out the water only the poison remains

#

I was gonna ask if dried mushroom are even edible in general in Stardew

latent mauve
#

They are

calm nebula
#

Dried mushrooms are great

gray bear
#

irl or?

calm nebula
#

Irl

vernal crest
drowsy pewter
#

Thank you so much for confirming!

inner harbor
real aurora
#

hey guys, can anybody help with an issue i'm having? i'm trying to edit a custom map made by another person for personal use. i made the manifest just as usual and its dependencies (the mod i'm editing), and the map loads correctly, but the map custom properties don't. everything else works.

lucid iron
#

!json

ocean sailBOT
#

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

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

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

real aurora
#

just to be clear, the map properties i'm editing is the "stumps" properties

lucid iron
#

For map properties did you put them on your tmx

#

Oh those need terrain reset right

#

Are you testing on new save

vernal crest
#

Not if it's the map property, no, I don't think so. Only if it's paths.

real aurora
#

yes! the map properties i put them on my tmx, and yes, i'm testing on a new save...

vernal crest
#

Map properties don't transfer from a source map when you use EditMap. You have to set them using Content Patcher's MapProperties field.

real aurora
vernal crest
#

What do you mean by "the paths work perfectly"?

real aurora
#

the paths layer in the tmx

#

i haven't noticed there's a map properties field in content patcher. i have to set it in content.json?

real aurora
vernal crest
real aurora
#

thank you so much!!

tidal stone
#

ok ive got the art done for the seeds, the plants themselves, and the item drops of the plants

#

now imma try to get them to actually grow and be harvestable in game

#

then ill work on art for my recipes and implementing my machine and the recipes

#

excited!!

tidal stone
#

what mod category do tilesheets for maps typically go under? just maps?

flat sluice
# tidal stone what mod category do tilesheets for maps typically go under? just maps?

DaisyNiko's Tilesheets are under Modding Tools category (https://www.nexusmods.com/stardewvalley/mods/4736).
Lumisteria Tilesheets are in Visual and Graphics. (https://www.nexusmods.com/stardewvalley/mods/9599 and https://www.nexusmods.com/stardewvalley/mods/10448)

Nexus Mods :: Stardew Valley

This mod is a resource mod for map modder adding a new tilesheet containing various furnitures to use in their map. Pls read the instructions to know how the mod works !

hard fern
#

i guess it depends on the mod author

flat sluice
#

Honestly, I'd give them to Modding Tools category, but it's totally up to you.

tidal stone
#

ok ill put it under modding tools ty ty

#

tilesheet published

#

now i just gotta finish my other 2 mods

#

XD

#

the furniture one and the herbs and flowers one

hard fern
#

SDVpufferwaaah i should be working on my map but i have to make so many buildings

tidal stone
#

and my third big one but thats a long ways away

#

oh thats real

hard fern
#

yeah i have like 50 wips

#

i could finish one and publish it within like an hour or two

#

but

#

who careees

#

it would mean i have to actually figure things out

tidal stone
tidal stone
#

does sprite index mean what square on the sheet the sprites on

unreal spoke
#

Yup. Starts with 0 in the top left corner and increases by 1 for every square you move to the right iirc.

tidal stone
#

ty ty

#

ok im confused immediately do i need C# to do crops in the end because this says to make a custom object which it says requires C# 😦

ornate trellis
#

you can make crops solely with CP

#

just extra fancy stuff would require C#(or if you feel like doing it from scratch, I guess)

tidal stone
lucid iron
#

The c# is how to do this in c#

vernal crest
#

You do not need C# to make custom objects.

ornate trellis
#

if you want some example mod you can look at my 'The Voidwitch's Familiar' mod

#

it got a handful of crops and recipes n stuff

tidal stone
tiny zealot
# tidal stone

that doesn't say it requires C#. it's just telling you what the item type is called in C# land (and where to look for the code for them)

tidal stone
#

how do i add my seeds to pierres shop i have
but it doesnt show any signs of being a patch that would add it to the shop unless the caregory auto does it

tiny zealot
#

that just makes the object. to add it to the shop, you have to patch Data/Shops

tidal stone
#

aa gotcha

tiny zealot
#

[[Modding:Shops]]

tiny zealot
#

actually, some shops probably use item queries, so for some items it may be enough to simply define them

tidal stone
#

how do i get ItemID is that just like modid_itemname?

tiny zealot
#

the id is the key you chose for it in the patch to Data/Objects

tidal stone
#

key?

tiny zealot
#

in the picture above, {{ModId}}_Chamomileseeds

tidal stone
#

oohh

tiny zealot
#

you may need to qualify it, in which case it would be (O){{ModId}}_Chamomileseeds

#

depends on the context. sometimes not qualifying is fine, other times it's required

tidal stone
#

ok

#

im gonna tyry to load in one seed/plant/object at a time to make sure i get it all to work

#

is there a field that makes something specifically need the scythe to be harvested

tiny zealot
#

Data/Crops:
"HarvestMethod": "Scythe"

tidal stone
#

cool ty ty

#

would i put the PlantedIn field under crops or under objects for the seeds

tiny zealot
#

whichever one has that in its data model. i assume crops

tidal stone
#

ok i got one in as a seed bag however idk how to plant it and get it to change to the planted seeds

#

ok there are some fields in missing in the xample imma add and see if i can get it to grow ✨

#

What type is a crop

#

hmm ig that would be cooking since it can be an ingrediant

rigid musk
tidal stone
#

i changed it to flower

rigid musk
#

er flower

#

yeah

#

-80 i think is flowers

warm imp
tidal stone
#

oh

rigid musk
#

You should have two objects relating to your crops - the seeds themselves and then the actual crop object
seeds are -74 for category (type 'seed') and then your crop object will be flowers / -80

#

then you'll have your crop data itself which will reference those things

tidal stone
#

yea im slowly figuring this out with you guys' help

rigid musk
#
//Crop Data
"{{ModId}}_WhiteCarrotSeeds":{
                "Seasons": ["winter"],
                "DaysInPhase":[ 2, 2, 2],
                "HarvestItemId": "{{ModId}}_WhiteCarrot",
                "Texture": "Mods/{{ModId}}/whitecarrotplant",
                "SpriteIndex": 0,
                },
//Seed Data
            "{{ModId}}_WhiteCarrotSeeds": {
            "Name": "{{ModId}}_WhiteCarrotSeeds",
            "DisplayName": "{{i18n:aos.whitecarrotseeds.name}}",
            "Description": "{{i18n:aos.whitecarrotseeds.desc}}",
            "Type": "Seed",
            "Category": -74,
            "Price": 35,
            "Texture": "Mods/{{ModId}}/whitecarrotseeds",
            "SpriteIndex": 0,
                          },
//Crop Item/Produce
            "{{ModId}}_WhiteCarrot": {
            "Name": "{{ModId}}_WhiteCarrot",
            "DisplayName": "{{i18n:aos.whitecarrot.name}}",
            "Description": "{{i18n:aos.whitecarrot.desc}}",
            "Type": "Vegetable",
            "Category": -75,
            "Price": 75,
            "Texture": "Mods/{{ModId}}/whitecarrot",
            "SpriteIndex": 0,
            "Edibility": 40,
            "ContextTags": [
                        "color_white",
                        "season_winter",
                            ]
                          },```
#

sorry if the formatting looks really weird but here's a few slices of code I pulled out from one of my mods

tidal stone
#

so i looked it up and whole chamomile is so expansive compared to like a parsnip but i dont wanna make it real life equiv and give you a crop that sells for like 10x the peice of parsnip cause that would be a get money quick scheme which im not a fan of

rigid musk
#

I added note context for them to show which was waht

tidal stone
#

ty ty for the example

#

aw i still cant plant my seeds

rigid musk
#

I believe your crop data needs to match the seed data

#

so it'd be 'chamomileseeds'

tidal stone
#

oooh

#

it worked ty tyyyyy

#

!!!

rigid musk
tidal stone
#

whyd it take the plant getting to stage three for me to go "this aint chamomile"

#

how did i not clock i put the wrong sprite XD

#

im having a hard time getting the correct sprite for my plant 😓

hot gale
#

Well I think my scope creep is satiated, don't have any other ideas so I guess time to just wait for people to report bugs ;p

tidal stone
#

i figured it out

#

also good for you man got some rest time

#

meanwhile that sap person gave me an idea so now if i finish my other 2 ideas i might intro bubblegum to sdv maybe

#

sap is used to make soap 2 so i might make some of those

#

id make glue but like 4 what

#

soap is alsoa 4 what

#

but i figured it would make good presents

#

hmm

#

actually hmm

#

i might add the sap to my herbs and flowers mod and change it to "the cottage life"
let you make some herbal soaps

#

scope creepin is real

ornate locust
#

soap creeping

tidal stone
#

pine tar - is used to make soap

#

ill use the sap to make variuous gums then

#

oh ig i could use sap to make glue in game for the artsn crafts recipes i plan to make

#

thoughts on a newstand that takes back old newspapers you fish up and gives you back a 'new' newspaper after every x amount that is a universally 'liked' item and also sells gum

also taking suggestions on ways to imrpove this idea

#

im not completely on the newsstand idea i just dunno if i wanna make a mod thats purely just gum you buy as pierre's

#

or manufacture yourselrf

#

i think ill shelf it until i have more of an idea of what to do uwu_nod

raven mirage
#

Hello. May someone help me with modding please? I'm trying to do the farm map, first time, and i have a couple (maybe stupid) questions:

  1. I know we can add additional places (like second cave) but is there a way to "open" that place after CC is complete, for example?
  2. Can we have different forage places in a one map? Like if there are a beach and the forest on the farm?
royal sphinx
#

Hey! Is there a way to remove starting tools on new start completely using only content patcher?

reef kiln
latent mauve
#

Alternatively, you can conditionally patch the options people might not want with config options, Frog

reef kiln
#

So a herb mod, a newsstand mod, an npc mod. It could be one big mod or 3 smaller mods.

latent mauve
#

Which I think might be a better option here for the newspaper and gum since they are tied to the same modded location idea

#

Unless the NPC runs the newstand, then the NPC could just be it's own mod

#

The negative of splitting up mods too much is that you can't use tokens from them together without using CMCT as a dependency

reef kiln
#

True one mod that does a news stand, with an Npc, that sells gum and papers should be one mod. But something that does un related stuffseed mod should probably be it's own mod. I guess is what I was saying.

latent mauve
#

I agree, that's why I just clarified my own statement 🙂

brittle pasture
tidal stone
#

I might just do a simple gum mod called "SAP"

#

as a working title

brittle pasture
uncut viper
#

iirc the game will do its very best to make sure you do not lose your tools

brittle pasture
#

yeah that's the other issue, they will then show up at the mayor's lost and found later

#

if this is for a "never leaves the farm" challenge I guess you can add a custom farm with no exits SDVpufferwoke

gray bear
#

never leaves the farm but you literally can't

#

so is it really a challenge

tawny ore
#

In order to remove tools without the game trying to give them back to you, you'd probably have to move them into an inaccessible chest since the game counts those as you having them still.

#

Which I don't think is possible using Content Patcher alone.

gleaming moat
#

Anyone here have recommendations for video tutorials for beginners to start learning how to make mods? I'm talking beginner beginner level with no prior mod creating experience

uncut viper
#

is the lost and found thing a tiledata or a hardcoded thing

brittle pasture
#

there are no videos that are updated for 1.6

raven mirage
latent mauve
#

Video tutorials are going to be almost entirely out of date

gleaming moat
latent mauve
#

They don't keep up with the game changes quickly enough to be viable to learn modding from, but we do have plenty of text tutorials available!

brittle pasture
#

yeah, the modding landscape changes very fast, and any video guides will inevitably be out of date with no easy way to update them

reef kiln
brittle pasture
tawny ore
#

And also, video tutorials are usually not up to date. In case the first 5 responses weren't enough /lh

latent mauve
#
Stardew Modding Wiki

Interested in making a mod for Stardew Valley? Then you've come to the right place! Check out the list for step-by-step tutorials to make your very own SDV mod.
Have you made a mod before and want to share what you learned? Awesome! Just create a new page on this wiki, call it "Tutorial: How to do a thing," and put in your advice, screenshots ...

uncut viper
lucid iron
#

I thought lost and found is specific to manorhouse

uncut viper
#

it's a tile data in the manor house

#

to open the dialogue

hot gale
#

remove tools, all work now done by hand

#

breaking trees takes 14 in game days

gray bear
#

punch trees. the true minecraft way

uncut viper
#

i just meant I didn't know if the dialogue thing itself was hardcoded to specific coordinates so as to always be available

latent mauve
#

Rokugin's ExtraMapActions allows you to place the tiledata elsewhere to open the Lost and Found.