#making-mods-general

1 messages · Page 527 of 1

brave fable
uncut viper
#

you might have a better time making the map in notepad++ instead

hard fern
#

maybe i'll do that if i have free time

#

i have nothing to lose.

brave fable
#

well, your free time

lucid egret
#

huh does it not? im using visual code studio on mac

fierce vault
#

Surprisingly on topic, but I think I'm confident that I can remove copied tilepaths and force my maps to use vanilla now. I need to actually try it, but I think I know what to do after editing the tmx code for something similar!

hard fern
#

visual studio vs visual studio code?

fierce vault
#

visual studio

#

VS code is different

lucid egret
#

oh my bad lol

fierce vault
#

also, hi fellow mac user

hard fern
#

ugrhgh right time to fight tiled and json and everything else.

lucid egret
#

hi!

hard fern
#

and i need to update smapi... and I need to make another map... and i need to figure out central station

fierce vault
lucid egret
hard fern
#

it's just slowwww

#

and i am impatient

fierce vault
#

I ran into more mac™ issues when updating stardrop lol

hard fern
#

i shall watch fish youtube while i work

fierce vault
#

What is fish youtube? I've watched fish related stuff before from a Japanese diver guy

lucid egret
#

and bc ive been just manually installing mods for the entire 5 years of playing stardew so it'd be weird to do anything else honestly

fierce vault
#

I did fix it tho!

#

I had to reinstall...

hard fern
#

like every video in my recommended is fish related now

fierce vault
hard fern
#

maybe?

lucid egret
#

i think i know who u both are referring to SDVpufferthinkblob

fierce vault
#

He will skin all of these different fish, prepare them, and get slightly poisoned because he wants to try everything

hard fern
#

ah.. yes

#

the slight poisoning

fierce vault
#

I can't remember his name! It's also been a while! But he would acknowledge that he wasn't technically supposed to eat it

hard fern
#

🤔 huh... what am i even going to name my mod... what the hell is it even about...

lucid egret
#

Parcy, what mods have you made if you don't mind me asking?

hard fern
#

I think i'm gonna do my map strings and warps tiledatas in cp because i might end up changing my mod Id at some point, and i don't want to have to change it every time in the map itself

fierce vault
lucid egret
#

SDVpufferwow Oooh very cool

fierce vault
#

I'm also working on an npc

#

I've shared very little about it though, lol

hard fern
#

2026 is year of the npc

#

i have to finish one of them this year

fierce vault
fierce vault
#

I need to finish this npc-this year.

#

It's a need for sure

lucid egret
hard fern
#

i've wanted to make an npc for almost as long as i've been modding stardew haha. but i just never get any of it done and it frustrates me

fierce vault
lucid egret
# fierce vault What kind of mods do you work on?

Well I converted Adventurer's Guild Expanded to CP and am currently maintaining it, and besides that I do everything else basically SDVpuffermlem currently working on a bobber mod but I have other projects in the works as well

#

except for C#....but i am learning it

uncut viper
#

(bobber mod, you say)

red basalt
#

I think C# is easy once you've mastered it.

hard fern
#

do you want to make the bobbers bebber

fierce vault
#

How are you approaching C# learning on mac? Is it just enough to try wiki tutorials, or is there something you're using as a runtime (I think?)

lucid egret
lucid egret
#

The stardew wiki page for it is really comprehensive though!

#

It's very much doable on mac from what I see so far

uncut viper
#

i am all for additional bobbers

fierce vault
# red basalt I think C# is easy once you've mastered it.

Oh, Haru, I have I question if you don't mind. Your mod says it automatically repairs tilesheet paths when the image is located in the same folder as the map, but I'm not sure what that means because tiled already repairs things when it detects them in the same folder.

red basalt
#

I don't think that happens, as far as I know.

#

It might do it automatically.

fierce vault
uncut viper
#

(though if you go to google that, make sure you google Rider instead /lh)

fierce vault
#

😥

#

I knew I should've checked!

#

Why'd I think it had a Y??

hard fern
#

because it's cool. cool things have a y

fierce vault
#

I made it fancier than it was 😅

dusk mulch
vocal knoll
#

Update on making a datable non-datable, the Flower Dance was a glitchy mess and my farmer was forced to dance with Emily xD

hard fern
#

ah yes...

#

the flower dance cufse

#

rice

uncut viper
hard fern
#

rice..

uncut viper
#

And the Example Values put together make up an example

dusk mulch
uncut viper
#

its also just in your unpack

fierce vault
vocal knoll
#

Does anyone know if there's a way to make something happen a number of days after an event?

lucid egret
#

wow i need to stop doing that

uncut viper
#

if you need a different number of days than one of the memories, you can use your own CT timer or a stat timer

uncut viper
#

i just mean the decorative ones from the willy machine

#

not the lures

hard fern
#

people often call the fishing tackle bobbers, so maybe that's the confusion there?

uncut viper
#

the game also does this

#

with the Trap/Cork/Lead/Quality Bobbers

hard fern
#

why ca...

uncut viper
#

oh and Sonar

#

Sonar Bobber

lucid egret
uncut viper
#

naw i just assumed you were using bebber bobbers

hard fern
#

new mod: real bobber bobbers where i make a bebber bobber where the bobber is the bobber you can put on your rod and it actually bobbers

vocal knoll
uncut viper
#

iirc though from when i was making bebber bobbers, "tackle" can basically mean any fishing equipment

#

so its not incorrect

lucid egret
uncut viper
#

i may be biased but i dont think there's any reason to replace vanilla bobbers when that framework exists instead

lucid egret
#

Oh i just personally never use the vanilla bobbers SDVpufferthinkblob

uncut viper
#

with the framework you can cater to the people who don't and the people who do!

#

you basically doubled your audience. dont fact check my math.

hard fern
#

i really like the litte duck bobber

uncut viper
#

slime bobber for me. my adorable slime bobber

#

i could never replace you, slime bobber

brave fable
#

if anyone's made an npc called bob i bet he'd be a great bobber

#

truly a missed opportunity by ca not to have bobbers sold by Bob instead of a vending machine

uncut viper
#

is your belief in nominative determinism why you named yourself blueberry

brave fable
#

one day i aspire to become some kind of round edible fruit

lucid egret
#

omg your framework fixes the dang flip when facing right thing for my sweet sweet bobbers

uncut viper
#

probably the blueberry kind i think

gentle rose
#

a kiwi?

lucid egret
#

alright you've convinced me

#

i thought that was so strange when i was testing out my bobbers

brave fable
#

but does it fix bobbers not being centre-aligned with the line when cast straight downwards

#

which causes me grievous agony

uncut viper
#

its amusing to see you say that when that part of the docs has the disclaimer that says "i dont know what this setting does"

lucid egret
#

i just reached that part SDVkrobusgiggle

lucid egret
#

why is there a british fishing line colour and an american fishing line color

uncut viper
#

because i write Colour and not Color but I know people would riot if i released a framework that only worked with Colour

brave fable
#

but the fishing line doesn't give a fish about tilesheet sizes since it's an arbitrary curved line

hard fern
#

in case you're a brit or american and have different fishing lines in the fishing line store?

#

or.. or what button said

uncut viper
#

the Colour variant has priority in all of my mods that use a colour field somewhere, as they should

brave fable
uncut viper
#

no but they might not use my mod

#

and i kind of rely on them using my mod

brave fable
#

a sacrifice i'm willing to make

uncut viper
#

ill accept the sacrifice if you transfer me a percentage of LoC DP

gentle rose
#

I am also willing to sacrifice people using button’s mod

brave fable
#

how much dp do i get for piping these bebber bobber users to you huh

uncut viper
#

that goes for you too iro. ill only accept your sacrifice if blueberry transfers me a percentage of LoC DP

uncut viper
gentle rose
#

damn that’s nearly 6 times what I gave you for tilesheetinator I gotta step my game up

#

that’s almost half a US cent!

uncut viper
#

are you sure about that math

gentle rose
#

am I sure that six times seven is just over forty? yes

lucid egret
#

67

#

im sorry

uncut viper
#

i just wanted to make you question it for a moment

#

sorry moument*

brave fable
#

it's speculative. i'd say at the current rate dp will outweigh us dollars 2:1 in a little over 20 years

gentle rose
#

instead I questioned what was going on that you thought it may not be true

brave fable
#

hopefully by then nexus is paying me in gold

uncut viper
#

at the rate nexus is giving me DP it may as well already be worthless

gentle rose
#

alternatively nexus invented the only true stablecoin

lucid egret
#

you guys are getting dp? /hj

hard fern
#

surprisingly, i have this much dp

brave fable
#

congratulations! you're worth 88% of bebber bobbers

hard fern
#

wow

brave fable
#

now start a hostile takeover bid

uncut viper
#

thats 88% of bebber bobber's UDLs

#

not bebber bobber's total lifetime DP

brave fable
#

this emerging news puts us in a strong position on the market

hard fern
#

it's probably going to take me like 50 years to have enough dp to redeem one of the game keys lol

uncut viper
#

if we assume the same UDL to DP rate as i got last month, bebber bobbers has earned me approximately 993 DP

brave fable
#

it's easier just to pipe the dp to some tigers in africa and forget about the whole miniature stock market going on

hard fern
#

i hope the african tigers enjoy nexus download points

brave fable
#

they might even be able to redeem a game key if enough of us send it over

hard fern
#

then they can play cyberpunk 2077

lucid egret
#

with the dlc!

uncut viper
#

you doin okay iro

gentle rose
#

no

uncut viper
#

and selph i see you too selph

brittle pasture
#

(so I went insane trying to find the code that makes purchases that use trade items automatically adapt the bulk purchase count depending on how much of the trade item the player has
||there is no such code, I hallucinated that being a thing||
anyway continue SDVpufferlurk)

uncut viper
brave fable
#

summon someone else. do floogen this time

gentle rose
#

so that’s also a no from selph

uncut viper
lucid egret
#

what are we trying to spell

brittle pasture
#

Noumb apparently

lucid egret
#

it says nomub for me

gentle rose
#

as good as any

lucid egret
gentle rose
#

that’s because you added the m react

#

so your discord is respecting the order as your device saw it

lucid egret
#

SDVpufferthinkblob hm!

gentle rose
#

(afaik if you were to restart your app before removing it it would have shown the “true” order)

hard fern
#

mmm nougats

sterile crescent
#

anyone know how Sound Tweaker works? I want to make sound effects for when different characters/genders talk (dialogueCharacter wavebank in sounds) but I dont know how to customize it in a way that makes it unique for each character

uncut viper
#

you wouldnt be able to

sterile crescent
#

do i have to learn c# for it🥺

uncut viper
#

pretty much your only option and it'd still be annoying to do

#

dont know if iro's upcoming framework does anything with sounds and i dont think ichor ever released voxbox?

sterile crescent
uncut viper
#

i do not know. last i knew it was in closed beta(?). last i knew was a while ago though.

#

iro would probably be a good bet. but like i said, i dont know if it does anything with sounds

sterile crescent
gentle rose
uncut viper
#

are you saying it does do stuff with sounds

gentle rose
#

no, no it does not

#

it pretends stardew has no audio, just like me

lucid iron
#

Hm when u use action in a dialogue when does it actually fire

#

If it's like a playsound

uncut viper
#

as i remember it, the action gets applied at the same time that dialogue would be shown if it were dialogue instead

#

so if you have an action after some dialogue, it will play the sound after you click past that dialogue

lucid iron
#

Shenanigans

uncut viper
#

starting a dialogue with an action wouldnt work very well
for starters you wouldnt be able to account for a user clicking to skip the typewriter effect
for non-starters i think starting a dialogue with an action just kinda doesnt work?

#

i have vague memories of issues with that

gentle rose
#

what does stardewvoices do for it

lucid iron
#

Well having to overwrite dialogue sounds kinda bad in general

uncut viper
#

it plays an audio file

lucid iron
#

Stardew voices has it's own C#

uncut viper
#

well, it loads a wavebank file that plays the audio inside it

gentle rose
#

I forgot about it having its own c# until the moment I pressed send

dusk mulch
#

what would the inside of a junimo hut look like?

lucid iron
#

If u make something with voxbox maybe ichor will finally ship it

sterile crescent
lucid iron
#

Pls show ichortower (of anyone can cook fame) whatever you cooked

royal stump
dusk mulch
royal stump
#

SDVpufferthumbsup no worries, I just mean more people will probably have useful feedback there

lucid iron
#

I feel like it's bigger on the inside

royal stump
#

mostly people fiddling with json or C# here

lucid iron
#

That or the satchel is bigger on the inside

royal stump
#

& yeah, probably should be bigger than it looks for perspective's sake and/or magic (assuming it's for an event or something)

dusk mulch
sterile crescent
#

something awful that happened to me was that yesterday when i was messing around with the dialogueCharacter wavebank, i didnt realize i had the dialogue skip mod still so i spent like 5 hours trying to figure out what was going wrong

dusk mulch
#

(for the walls)

royal stump
#

I was thinking more like a darkened version of the exterior bricks
but those sprites' perspective would probably work, and they might be the closest without custom sprites or a lot of editing SDVpufferthinkblob

dusk mulch
#

ill see if there is anything darker/more like bricks

sterile crescent
dusk mulch
#

doesn't that use the outdoor tilesheet?

sterile crescent
#

i have no clue youre probably right 😭

dusk mulch
#

ill check

#

it uses the mine tilesheet

#

which isn't a bad idea

#

anyway ill let this get back on topic

royal stump
#

(there're some brick textures in a lot of sheets, but if it's meant to be pretty big inside, recoloring the desert shop might work SDVkrobusgiggle)

dusk mulch
#

Not a bad idea... I'll try playing around with that (if I can learn EditImage)

hard fern
#

editimage is pretty simple

dusk mulch
#

Just read its github page, it is easier than I thought

hard fern
#

the new masks feature is cool too

old edge
#

My content patcher code format is still 2.5.0 is that bad?

dusk mulch
old edge
#

I did and my code still works…

hard fern
old edge
#

Oh I hope I didn’t do that

hard fern
#

hm, if anyone knows, how do i target an objects layer for maps with cp?

urban patrol
hard fern
#

or does it not matter and can i just target Buildings like normal and add my tile property

urban patrol
#

that would be under set properties (i think it's called)

hard fern
#

yeah, i know that much

#

but there doesn't seem to be any (obvious) distinction between the actual tile layer and the objects layer

#

since they're named the same

dusk mulch
#

you just refrence the map layer name since TileData's can only go on object layers

urban patrol
#

they look like two layers in tiled, but they're kind of just one

hard fern
#

hmm

#

i'll just try it and see

#

i don't think i'll break anything at least

old edge
#

Layer: back

#

Maptiles

dusk mulch
#
        {
            "Action": "EditMap",
            "Target": "Maps/Farm",
            "MapTiles": [
                {
                    "Position": { "X": 72, "Y": 15 },
                    "Layer": "Back",
                    "SetProperties": {
                        "TouchAction": "MagicWarp {{Random:BusStop, Farm, Town, Mountain}} 10 11"
                    }
``` (from pathoschild's documentation)
hard fern
#

thats a touchaction though

#

not an Action

old edge
#

Set to action

dusk mulch
#

It works the same with EditMap (i meant set it to Action)

hard fern
#

🤔 i guess there's no difference between the two types of action

urban patrol
#

the only difference is that action must be on buildings and touch action must be on back

dusk mulch
#

sorry i didnt mean it that way lol

urban patrol
#

sorry for typos i have a headache

old edge
#

How come every time I add a new config option in my content pack users say its not overwriting the old version so config are not there. But my setup is working fine

brave fable
#

for now i'd just use placeholder interior tiles for your location and finish it up later when you've got the groundwork laid out

hard fern
#

well i already have the map

#

this is all i have left haha

urban patrol
brave fable
hard fern
#

o

urban patrol
#

slash using a mod manager that does so

hard fern
#

oopsiee

brave fable
#

i thought about reply and thought nothing could go wrong

old edge
#

Should I leave the config files there when I update to nexus? The ones that generate I always delete them.

old edge
urban patrol
#

no you should never pack it but users should delete their config file if they're having issues and generate a new one. sucks to redo but oh well

brave fable
#

generally you'd remove any generated files (e.g. config.json) from your mod when publishing updates

dusk mulch
hard fern
#

SDVpuffersweats and now i'm doing cursed include crimes

hard fern
#

🤔 so if i'm reading this right, will this work for pulling tilesheets from other locations?

<image source="../Buildings/Trailer Cabin.png" width="240" height="112"/>
<image source="../Maps/spring_town.png" width="512" height="1152"/>

old edge
#

tried fixing this map patch to not mess up the vanilla map too much. The bridge works also it was tricky.

hard fern
harsh mountain
old edge
#

oh the config errors appear because the player using a translation that's what the problem was.

dusk mulch
#

Do I need to load a custom tilesheet to Maps? I know you can use tilesheets outside of Maps but do I need to load it just in case?

merry river
harsh mountain
old edge
#

and add it to the maps folder that way using the code.

dusk mulch
#

But I can use files outside of Maps so why cant I just do ../Assets/file.png?

uncut viper
#

that's not inside the content pipeline

#

you can only use things that are somewhere within the Content folder

#

i.e. Content/Maps, Content/TileSheets, etc

#

the only way a map can access a file inside your mod folder is if the tilesheet is directly next to the tmx. but that has always been the case and has not changed with the latest SMAPI

final arch
#

(you should always load your tilesheets so other mods can add recolor compat anyway)

dusk mulch
#

true

#

well i pray this works then

dusk mulch
harsh mountain
#

I got muted on Stardew Modmaker Community for forwarding text file 😭🙏

#

where it wrote in server rules?

#

unspoken rules, again?

dusk mulch
#

there is a modmaker community?

harsh mountain
#

yes

dusk mulch
#

like server?

harsh mountain
#

yes

dusk mulch
#

how did i go ~3 years without knowing that

harsh mountain
#

you didn't answered a question why I got muted in Stardew Modmaker Community server for forwarding text file so there's no mention in server rules

dusk mulch
#

right, sorry

#

im not in the server so i wouldnt know

#

nor can i even find the server

hard fern
#

sigh. why is tiled doing this

dusk mulch
#

the grid?

hard fern
#

my asset is being cut off

dusk mulch
#

oh

#

did it just come like that when you imported it?

harsh mountain
hard fern
dusk mulch
hard fern
#

and now i can't figure out how to fix it lol

dusk mulch
#

can you ctrl+z?

iron ridge
hard fern
#

well it's fine, i can just remake the map

dusk mulch
#

try re-importing it into tiled-

#

alright

hard fern
#

i've tried reimporting it a bunch too lol

#

it was baked into the xml

dusk mulch
#

tiled is very tedious sometimes, i havn't really seen that before so i would wait to see if someone else knows a solution or remake the map if it isn't too difficult

iron ridge
hard fern
#

i just borrowed the bus stop

#

even with a new map it's still doing it

#

this is a completely different file to the one i was on previously

iron ridge
#

tiles of the shop that are placed will be messed up but should be right now

#

images have to be a multiple of 16 pixels if you want all the tiles to be included (i resize it from 143 wide to 144, theres a new transparent column on the right)

hard fern
#

aghhhg

#

this is all my fault

#

it's because i used trim instead of crop

#

i realized it now

#

😅 sorry

iron ridge
#

its alright dw

hard fern
#

i just resized all my buildings SDVpufferflat thwarted by one pixel...

dusk mulch
#

im going to make it so junimos take random things from the villagers because they see them as gifts :)

#

wait i could use mine walls

#

just realised i was off topic

deep cypress
#

So, a feature sometimes requested is for certain marryable characters to follow their own regular schedules. Spacecore very nicely provides us with this, by way of adding a field to CharacterData (IgnoreMarriageSchedule). From C#, can I write to CharacterData safely? As in, can I add the field?

The documentation says that Spacecore stores the information in a certain dictionary. Should I just try to add to that dictionary instead?

dusk mulch
#

yall i think my computer ate my tilesheet, i had it in my mod now i cant find it

#

oh yeah i deleted it

sterile crescent
shut edge
#
      "LogName": "chomposaur extra produce",
      "Action": "EditData",
      "Target": "selph.ExtraAnimalConfig/AnimalExtensionData",
      "TargetField": ["cryomancer.livestockdinos_chomposaur", "AnimalProduceExtensionData"],
      "Entries": {
        "773": {
            "Id": "(W)38",
            "ItemQuery": {
            "ItemId": "(W)38",
            },
          "HarvestTool": "DropOvernight",
          "IgnoreAnimalQuality": true,
        },
      },
 }```
#

trying to do an EAC override, not sure why this doens't work

#

it just makes the life elixir (773)

#

presumably something with the IDs

#
    "MalePercentage": -1.0,
    "AnimalProduceExtensionData": {
      "773": {
        "ItemQuery": {
          "Condition": null,
          "Id": "(W)38",
          "ItemId": "(W)38",
          "RandomItemId": null,
          "MaxItems": null,
          "MinStack": -1,
          "MaxStack": -1,
          "Quality": -1,
          "ObjectInternalName": null,
          "ObjectDisplayName": null,
          "ObjectColor": null,
          "ToolUpgradeLevel": -1,
          "IsRecipe": false,
          "StackModifiers": null,
          "StackModifierMode": "Stack",
          "QualityModifiers": null,
          "QualityModifierMode": "Stack",
          "ModData": null,
          "PerItemCondition": null
        },
        "ItemQueries": [],
        "HarvestTool": "DropOvernight",
        "ProduceTexture": null,
        "SkinProduceTexture": {},
        "IgnoreAnimalQuality": true
      }
    },```
#

ends up looking like this in the exported json

#

oh the query isn't hitting the right spot is it, that's prob why

#

or wait no that's a separate field for if you wanna do a bunch, hmm

dawn ore
#

Is there a way to have a Content Patcher map edit (ie replacing a bit of the Town with an altered version from my mod) also clear the grown bushes, in that special area. I know I can use world_clear command or use Destroyably bushes, I'm just wondering if there's anything 'automatic' I can do so it happens without player intervention

sterile crescent
worldly wadi
#

Heyyyyyy does anyone knows how can I contact the RSV creators? I sent a message to them on the RSV discord but nobody answered (つ╥﹏╥)つ It's about permissions and stuff, I wanted more immersion between mods (Add a few objects of mine as gift tastes for RSV NPCs, add RSV items as my NPCs gift tastes, add a few NPCs on cutscenes, etc.), but I need to know if they are comfortable for me to do so (ó﹏ò。)

shut edge
#

man that's weird

#

marnies will say it drops the right thing now but it still doesn't

swift belfry
gentle rose
hard fern
#

ughhhh i cloned springoutdoors again :(

#

cue sad ant bindle

#

will it cause any issues if i have a clone tilesheet 🤔

gentle rose
#

what happened that it got cloned

hard fern
gentle rose
#

did you use ctrl+v or ctrl+shift+v?

hard fern
#

i used tiled's selection tool and just switched to the map i was working on and just slapped it down

#

i didn't use ctrl c or v or anything

vernal crest
#

How do you copy and paste without using ctrl c and ctrl v? /curious

hard fern
#

i don't really know how or why it works

vernal crest
#

But the selection tool puts a rectangle down but it doesn't actually "grab" the tiles when I use it

hard fern
#

huh

vernal crest
#

I have to use ctrl c to actually get the tiles

hard fern
#

i dunno, sometimes it works for me, sometimes it doesn't?

shut edge
#

you can hold rightclick and select sections as well to make it a brush kinda

#

that might be safer

hard fern
#

i just kinda did that

#

and it made a clone

vernal crest
#

Oh, you weren't using the selection tool

#

You were using the right-click function of the stamp brush

brave fable
#

whether you're using the tilestamp tool or copy-pasting tiles it's the same principle; even if a tileset from another map is using the same tilesheet image it's still a different tileset, and it'll be copied into your map if you paste the tiles

hard fern
#

sorry, i misspoke then. i don't know what tool it's called

#

is there any way to somehow merge the two? or am i screwed lol

vernal crest
#

Yes, there is

shut edge
#

tiled unfortunately has a lot of weird little workflow eccentricies

brave fable
#

either way you should be able to use the 'replace tileset' feature to replace the copy with the original

gentle rose
#

do you have my extension, by the way? it shouldn't cause a problem so if you do I'd need to investigate

hard fern
#

i don't

vernal crest
#

Export the tileset and then use the replace tileset button on the other copy of it and they should merge

shut edge
#

the extension is great

gentle rose
# hard fern i don't

well there you have it! /lh

(but in all seriousness it should help prevent things like this)

hard fern
#

ooh, thanks aba

worldly wadi
worldly wadi
gentle rose
# worldly wadi 2 days ago

you may need to just give them more time. as far as I'm aware, the creator of RSV isn't super active right now because irl has them busy

harsh mountain
#

not so early, but...

#

Loraine's dad's grave... we did something impactful to her... and Loraine in the saloon... maybe a romantic event...

#

damn... ig there's nothing to swap

#

everything is fine

dawn ore
opaque field
#

I believe BETAS has something for that)

#

(half remembering from a conversation a little while ago

lucid iron
#

Yes there is indeed a trigger action from BETAS

shut edge
#

is there a fish_location that is like "whatever the current farm is"

#

LOCATION_FISH Mountain

#

one of these

shut edge
#

each farm is it's own location

#

damn that dependacies graph, wow\

dawn ore
# lucid iron https://stardew.button.gay/docs/betas/tractions#ClearTerrainFeatures

Fantastic. I'm still quite new to modding, can I make it so if the player has BETAS, it clears the section, but if they don't then oh well it's not game breaking so just keep going? I'd like to keep the list of strict requirements down, although I understand that people who are heavily modding probably already have BETAs installed

shut edge
#

oh maybe i can just do category

lucid iron
#

Just toss everything you use from BETAS behind a hasmod

#

My personal advice is, don't let +1 dependency stop you from doing what you want

blissful panther
#

For me personally, I would add BETAS as a hard requirement just to reduce the number of complaints I'd get about it otherwise.

lucid iron
#

Well ppl do just use rtf to solve this problem from player side Dokkan

shut edge
#

yeah or just cut the stuff down if you can

dawn ore
#

Thanks folks! Appreciate it!

#

One more thing, is there a way in game to force a reload of tilesheets? Ie I have a map edit, and within that are custom .PNG files. I've noticed that if I edit the map layout and run 'patch reload ModName' the layout changes, but if I update the underlying image files, it doesn't change until I restart the game it seems. Is there a faster way to force a reload of all custom tilesheets when I'm testing how things look in game?

shut edge
#

InvalidCastException: Can't create item ID '(W)38' as a Object type because it's a StardewValley.Tools.MeleeWeapon instance.

#

yes i knw it's a weapon smapi

iron ridge
#

are you loading the tilesheets into the Maps/ folder or is the map just reading them from your assets directory?

blissful panther
#

I'm famously content illiterate though, so take my ideas here with a grain of salt. SDVkrobusgiggle

dawn ore
calm nebula
#

Which i will not explain ||until after work hours||

dawn ore
#

They appear correctly in game, there's no issue with it working per se, but it clearly creates some sort of cache as any edits arnt reflected, that's all.

vernal crest
gentle rose
#

!tilesheetinator

ocean sailBOT
#

You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.

See the mod page for full installation and use instructions.

silver shell
#

Hi all. I have very little experience with modding other than downloading it fron Nexus. Recently I wanted to challenge myself with the Challenging Community bundles and also include all possible bundles (both normal and remixed). I could not find anything in nexus for this and due to my inexperience I am not sure how to update the json files myself (at least I think that is what I need to do). Has anyone tried this before and maybe can help?

#

please let me know if this is not the correct thread btw

tiny zealot
#

if you're not making your own mod (or editing one for your own use), this isn't the right channel. this one is for talking shop and getting help with mod creation.
for help setting up mods to play, use #1272025932932055121. to discuss mods and modded gameplay generally, #modded-stardew

silver shell
#

I was thinking of editing the Challenging community bundles to include everything so that is why I put it in making mods. I will try my luck with tech support

tiny zealot
#

oh i see. i thought you were trying to set up its config files

#

if you are editing how it works outside of its normal parameters then you can talk/ask about it here

lucid iron
brave fable
#

BAGI! at the DISCO

shut edge
#

trying to make an animal that makes a random fish daily

#

can't seem to throttle it's power enough to not give like a legendary daily

#

!ITEM_CONTEXT_TAG Target fish_difficulty_hard fish_difficulty_extremely_hard fish_legendary

#

is not enough somehow

lusty halo
#

I installed the latest SMAPI and now I'm getting the weirdest error report ever that mention one of my file that's missing but actually doesn't exist in the first place, despite having removed all my mods, leaving only the frameworks. I will try a couple more things, hopefully I won't need to bother Pathos with it.

gentle rose
#

before you ask pathos, you could try sharing a link here and maybe we’ll spot it?

lusty halo
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.22631.0), with 14 C# mods and 0 content packs.

lusty halo
#

Like, a [game] error? without content packs? what?

gentle rose
#

ohhh, it’s because you’re loading into a save where it was used

calm nebula
#

Did u have a save that used...yeah

gentle rose
#

so it’s trying to find a wallpaper that isn’t present

lusty halo
#

oooh so it's a NEW report then? oh I was kinda scared for a second

gentle rose
#

I’m not sure what you mean?

#

this will have caused an error in every version of smapi I’ve seen

#

if you make a new save the error won’t pop up

lusty halo
#

oh I never saw it before. I have moved my mods around all the time. Maybe I never saved an AT mod before?

gentle rose
#

possibly?

lusty halo
#

of all the things that can scare me was my accidentally never saving my game after trying one of my AT mods. figures. SDVpufferflatbread

#

hopefully me having verified the steam files didn't create a new problem... SDVpufferflatbread well luckily I backup everything so it s' fine. and none of my save is my save, I basically only mod now, not play so it's fine if they break sometimes. xD

#

Yeah just needed to use a normal vanilla wallpaper and save again. all good!

#

thanks for the help!

red basalt
# hard fern

I did an update that already included that, and it automatically repairs it without creating a clone.

autumn tide
#

helloooo I'm like 90% sure of this- but the {{ModID}} token won't be parsed if it's part of an i18n, right? my custom stats (which are referenced in a dialog) are prefixed by {{ModID}}

lucid iron
#

Indeed you cannot use tokens in i18n

autumn tide
#

gotcha!

#

HMMM can you put dynamic strings in other dynamic strings?

#

shenanigans hehe

tiny zealot
#

with CP's i18n token you can pass arguments to it which CP will expand, but you have to do it manually

#

like {{i18n:my.key.here |ModId={{ModId}}}} and then you can use {{ModId}} in that value

autumn tide
#

gotchaa! I'll just spell out my mod ID I think and then search through all my files if I ever decide on changing it

tiny zealot
#

it gets cumbersome so i recommend, if possible, splitting up your dialogue and just putting the actual text parts in the i18n

#

this also reduces the likelihood of translator errors

autumn tide
#

I hath learned the wonders of localized text, so I should be okay!

#

...those do work in i18ns right

tiny zealot
#

i like to think of i18n and CP tokens as string storage systems that the game never sees

#

LocalizedText is a game feature; in certain contexts, strings support expanding those [] tokens, and LT is one of those tokens

#

but when you use a CP token (including its i18n token, to pull strings from your i18n files!), CP is expanding the string and then giving it to the game

#

the game just sees the resulting string

autumn tide
#

uh huh

tiny zealot
#

so "does LocalizedText work in i18n" is a bit of a non sequitur, to me

#

if you pull a string from your i18n with [LocalizedText] in it, and give it to the game in a context where it supports the [] text tokens, then it will work. if you try it somewhere else, it won't

autumn tide
#

gotcha!

#

thank you so much ichor SDVpufferheart

#

I think i got it now!

#

yayyy

merry river
#

what are you trying to do claudeSDVpufferowo

tiny zealot
#

anyway, to revisit your first question, i would try something like this in your dialogue.json:
"my.dialogue.key": "{{i18n:saying.stuff.part.1}}#$action incrementStat {{ModId}}_whatever#{{i18n:saying.stuff.part.2}}"

autumn tide
#

hehe re-writing my whole fucking mod

tiny zealot
#

you have to split up lines when you do this but it prevents translators from (easily) being able to fuck up your codey bits

merry river
#

OHHHH

autumn tide
calm nebula
#

Remembering when the french translation translated "Prismatic" (the tag in hats)

merry river
#

ha, guess I have some correcting to do SDVpuffersob

calm nebula
#

Yielding hats that were no longer...prismatic

#

Tl;dr yr translators might not have context

calm nebula
#

If you want smth not translated do NOT give it to them

autumn tide
#

trueeee,

merry river
# autumn tide oh?

i have some dialogue strings that have actions inside of them but they're all inside my i18n tokens

autumn tide
#

wait do actions not work in i18ns

tiny zealot
autumn tide
#

gotchaaa okay okay

#

thank you!

calm nebula
#

(But I think it's bad form)

autumn tide
#

i got a lot of actions in my i18ns for dialog so it should work..

calm nebula
#

It works, but translators may not know to leave those alone

#

And because of that, they may try to translate those bits and break them

merry river
#

can't believe atra called me bad /j

#

yeah makes sense

autumn tide
#

true! I think i'll just make notes for translators, maybe make sure most translators are also modders

tiny zealot
#

it could be worse. you could be me and have a few secret strings that are hardcoded and compiled directly into the DLL, because they are easter eggs and i didn't want them floating around in the i18n or elsewhere

merry river
#

ichor........😆

autumn tide
tiny zealot
#

generally i trust translators for stardew valley mods to have enough context to avoid big obvious mistakes, but also i prefer not to give them the chance if possible

calm nebula
#

Prismatique

autumn tide
#

HAH

tiny zealot
#

(i know, atra, but i actually have less baseline faith in the official translators when it comes to this kind of error)

calm nebula
#

To be fair hats are a string eliminated format with ONE field to translate

#

Maybe 2

latent mauve
#

I do not trust translators (especially with the MTL DP farmer ones) to not break things by translating #$e, let alone the other dialogue commands xD

worldly wadi
#

Hey hey hey so I was modding perfumes that could be gifted and sold, but I think the concept is pretty boring for now, so I wanted to make them able to give the player buffs (Existent buffs, not new ones) when equipped like rings, do I need C# for that?

autumn tide
#

you could make them foods and then use IE to change the animation!!

west thunder
#

It seems I'm having similar-ish difficulties with changing the portrait for The Canyons flamingo portrait, which appears to only be a shop vendor?

autumn tide
#

item extensions :)

#

ohhh you might be able to yoink the monster musk animation..

worldly wadi
autumn tide
#

hm?

west thunder
worldly wadi
west thunder
#

As always, sorry if I disturb you.

autumn tide
#

I mean change to animation to be spraying perfume rather than drinking

west thunder
#

Just tell me when and I'll stop.

autumn tide
#

mhm! that's the one you can use to change eating animations- I think?

#

I did drinkable battery acid with it!

#

well, technically it was fallspice that did the base of the code

worldly wadi
autumn tide
#

I got no clue- maybe see if you can copy the monster musk one?

#

lemme pull up the IE docs..

worldly wadi
#

Oh oki oki omg tysm I'm so happy

autumn tide
#

aww ofc Cheshire SDVpufferheart

lucid iron
#

Although idk the json offhand to do it maybe ask dolphiniaf

west thunder
#

aww naaaw

#

Didn't know it'd be that complicated.

#

Alright, would this individual be Dolphin is Not a Fish or is there another dolphin I need to look out for?

urban patrol
#

?? spacecore is just a framework you write json for like content patcher

autumn tide
#

it's a CP extension too! I adore spacecore

west thunder
#

Anywho.

#

Alright, would this individual be Dolphin is Not a Fish or is there another dolphin I need to look out for?

urban patrol
#

yes dolphinaf = dolphin is not a fish

ornate locust
#

Spacecore is very easy to work with

blissful panther
#

And the safest dependency of all time, essentially. SDVkrobusgiggle

west thunder
#

So that's why I keep seeing it so much.

brittle pasture
#

spacecore does a lot of things. some of those things are useful to many mods

#

anyway if you're not familiar with CP extension frameworks before, you just edit the asset they give the same way you edit a vanilla asset

gentle rose
#

it’s almost half as important to a modded experience as spenny, making it the tied for second most important casey mod with gmcm

#

(and we can’t reasonably expect it to catch up, anyway)

west thunder
#

and theirs is 64

lucid iron
#

The asset in this case is a custom asset where you tell spacecore what you want to do

west thunder
#

Mhm, thought so.

west thunder
autumn tide
#

hello! would {{Hearts:Dwarf}} as shown here work to make 14 separate entries tied to heart level?

calm nebula
#

I would add a default back to the highest in case a mod screws with thr available heart levels

autumn tide
#

oh, I am the one screwing with highest heart levels SDVpufferwoke

lucid iron
#

I think atra means what if C# mod makes 24 hearts total

#

The other problem with this is I think people tend to level up hearts rather quickly

autumn tide
#

ohh, gotcha

#

...there are mods that do that?

lucid iron
#

what if

autumn tide
#

oh I'm also (configurable-ly) nerfing heart gain for krobus/dwarf

#

OHHHH

#

gotchaa

#

..I should do the slower thing and just make tokens for heart ranges then?

calm nebula
#

No there is an input to i18n that let's u use a fallback

autumn tide
#

ehhh i'll use a token to make 3 pools

dusk mulch
#

it’s so hard to stop myself from just expanding my mod forever

autumn tide
#

omg same-

blissful panther
#

The dreaded scope creep strikes again.

autumn tide
#

I'm forcing myself to try and release a beta by the end of next month SDVpuffersalute

wraith bay
#

nearly done. always.

visual nymph
#

Just send me the link

opaque field
#

Tryna convince myself my Vegan Fish mod update doesn't need food buffs

#

or like, how cool would it be if I made it compatible with visible fish

autumn tide
#

ofc, with this deadline, I'm doing something necesary, like fancy dialog for when you slingshot dwarf. there are 9 responses. they may blow up the player

visual nymph
autumn tide
#

for the high heart ones, they take it as a snowball fight thing (no friendship loss) and hurl it back at the player. they are much stronger than the player. it does not end well

calm nebula
#

Or in a different mod

blissful panther
#

There's a reason companies hold back good features. An update for something that's already gotten eyes on it can get more downloads/purchases than the initial release did.

#

Of course, that's getting into strange marketing territory to do on purpose for mods. SDVkrobusgiggle

calm nebula
#

U say that but I used to do that lol

blissful panther
#

It works!

calm nebula
#

Back in the day when hot mods was 2 wks

#

I would deliberately do a big, substantial update 1 wk in

#

Because people endorse when they see the "update!" reminder

blissful panther
#

I'm trying to decide whether to do that with my farm map! I could release it now, like the farm itself is done... but the super special unique feature isn't yet. I think in this case, it makes more sense to wait, given that's part of the whole draw of it.

calm nebula
#

Draw, lol

#

(I'm pretty fried today)

#

Have been multitasking all day

devout otter
#

You want to do HD portrait via SpaceCore?

#
            "Action": "EditData",
            "Target": "spacechase0.SpaceCore/TextureOverrides",
            "Entries": {
                "<your unique entry id>": {
                    "SourceTexture": "{{InternalAssetKey: <your path and file name>.png}}",
                    "SourceSizeOverride": { "X": 256, "Y": 256 },
                    "TargetTexture": "<the portrait asset you want to edit>",
                    "TargetRect": { "X": 0, "Y": 0, "Width": 64, "Height": 64 },
                },
            }
        },```
autumn tide
#

wait that's possible-

devout otter
#

Yeah, but if your portrait have plenty of expressions you'd need to target them one by one.

lucid iron
#

For shop owner tho it's not necessary

west thunder
#

In this case, The Canyons flamingo. Not from the superpack.

devout otter
#

Yar, you can do it like that patch example I put then.

west thunder
#

Because Yoba forbid I go looney and try to give more of these time-consuming portraits to a million more NPCs.

west thunder
devout otter
#

Anywhere you want.

west thunder
#

I apologise, but this would be my first time working with Spacecore.

devout otter
#

You can just put it in content.json if you want.

west thunder
#

Oh, good.

#

So...

#

What would be the significance of the unique entry ID?

devout otter
#

A lot of other mods would have their own entries, so that's why you need to make sure your entry names are unique.

west thunder
#

Well, I'm sure I'll come up with something real special then.

#

Now, how would I go about specifying the target texture?

devout otter
#

People usually just go. {{ModId}}_FlamingoPortrait or something.

west thunder
#

Would the thing just magically find the specific file by name or would I need to give a very specific target path?

devout otter
#

Very specific target path.

west thunder
#

How specific exactly?

#

Let me get the mod page so I could take a look at the file preview as I'm away from puter.

worldly wadi
#

Can someone help me create custom "Drinking" animations with spacecore? I'm trying to read the documentation but English is not my first language so I can't understand many things, so if anyone could help me I would be glad! (Also sorry to interrupt the conversation, but I really really reeeeally need help)

devout otter
#

Just use the asset name exactly.

west thunder
#

So, would it be:
"The Canyons Expansion/[CP] Desert Monsoon Challenge/assets/Flamingo_Vanilla"?

west thunder
devout otter
devout otter
west thunder
#

So just Flamingo_Vanilla and nothing else?

old edge
#

how come nexus is taking forever to save

worldly wadi
#

Cheshire and his perfumes...

west thunder
#

By the way, thanks bestie.

#

Appreciate it.

calm nebula
#

Aside and stupidity....I wonder what version of .NET HC uses

devout otter
#

You need to search for the asset name. The Target the portrait is loaded as in the original mod.

dusk mulch
#

I have a tile that I want to have a "Message" action on but when a mail flag or quest is completed I want it to be a warp, if I use a ⁨When⁩ to detect that and add the warp will it replace the Message or go alongside it?

#

One way to find out I guess

west thunder
#

I don't want you to get mad.

#

But explain this to me like I'm a sole termite.

#

With a breadcrumb for a brain.

devout otter
#

You've done portraits for Jorts and Jean, yar?

west thunder
#

Mhm.

devout otter
#

How did you find what assets you need to target for them?

old edge
#

I've been trying to save an article on nexusmods but it doesnt want to save

west thunder
#

I didn't.

#

I had to check for their internal names.

#

And name their portrait spritesheets after them.

#

And then dump 'em in my Portraiture collection.

dusk mulch
west thunder
#

Because, unlike this singular vendor portrait, those two are proper characters that, with enough elbow grease, could be changed without the use of additional coding.

dusk mulch
#

nexus is really buggy when it comes to mod versions and saving of mod pages

#

at least in my experience

west thunder
devout otter
devout otter
dusk mulch
#

someone translated my mod into french but used AI art for the thumbnail, can i ask them to change it or do I not have any say over it?

uncut viper
#

you have the right to control who publishes translations of your work

west thunder
old edge
#

I left it saving overnight and it just stayed on the loading icon

#

where do you report to nexus

west thunder
#

And nothing else whatsoever?

uncut viper
#

nexus just gets stuck sometimes. if the gear is spinning for more than like, 10 seconds, its broken and you need to refresh and do it again

urban patrol
#

copy paste what you had in the box to a document or something before though

devout otter
#

The one they put in the Target field.

west thunder
#

Intriguing.

#

And the SourceTexture is just the folder and name of the file I want to replace Flamingo_Vanilla?

devout otter
#

Yup yup.

west thunder
#

Right, right.

#

And can the code you've provided be the only thing in the content file for everything to work properly?

#

I admitedly haven't messed around with the basics in a while.

old edge
#

is 5 articles too many

west thunder
#

Or does there have to be some kind of Load thingimibobber at the start of it all?

calm nebula
#

People, afaik, never look at articles

mellow laurel
#

I do but I'm not people, I'm a cat. I think most users barely read mod pages.

jaunty shuttle
#

I always read the mod page the whole way through before downloading (skipping over the code-explaining parts lol)

drowsy minnow
devout otter
dusk mulch
#

when⁩ uses game state queries right?

uncut viper
#

no

#

when uses tokens and strictly tokens

dusk mulch
#

alright, ty!

old edge
#

I tried refreshing several times

west thunder
devout otter
#

If your json have a patch action, it always needs to be inside a ```{
"Changes": [

]
}```

old edge
#

my mod is 3 years old

west thunder
devout otter
#

Rule of thumb is to see if a patch have a "Action" field on it.

#

If it does, then in the "Changes" it goes.

hard fern
#

Hm. oopsie. it seems in my attempt to trim my asset i offset the door

west thunder
#
  "Changes": [
          {
            "Action": "EditData",
            "Target": "spacechase0.SpaceCore/TextureOverrides",
            "Entries": {
                "<your unique entry id>": {
                    "SourceTexture": "{{InternalAssetKey: <your path and file name>.png}}",
                    "SourceSizeOverride": { "X": 256, "Y": 256 },
                    "TargetTexture": "<the portrait asset you want to edit>",
                    "TargetRect": { "X": 0, "Y": 0, "Width": 64, "Height": 64 },
                },
            }
        },
  ]
}```
#

Like so?

devout otter
#

Yep yep.

west thunder
#

Well look at me go.

#

All wrinkly-brained.

#

Thank you lots.

brittle pasture
#

my "total clint replacement" mod is going well

hard fern
#

spenny..

lucid iron
#

Everyone is Penny

dusk mulch
gentle rose
west thunder
#

I'm scared.

dusk mulch
west thunder
#

Cheers.

autumn tide
#

helllooooo any way to find out what the extra fields for shop item..things are if they aren't in the wiki? sorry if this makes no sense programming brain and speaking brain do not work together

uncut viper
#

what do you mean extra fields for shop item things

autumn tide
#

allll of these guys that aren't mentioned in the wiki

autumn tide
#

oh!

#

thank you!!

#

wow i feel stupid

short temple
golden basin
#

is there anyone here familiar with coding in aquairum information for fish? because i am getting confused over the sprite indexes. its just not matching up at all

autumn tide
#

LOL, that was buttons

dusk mulch
#

omg yes my questline works

short temple
# autumn tide LOL, that was buttons

I still struggling to translate all i'm learning to My language, and many of the things i've learned was thanks to You, Chu! And selph, so thanks for everything ,i'm hoping to do an island but it's a long road to walk

autumn tide
golden basin
hard fern
#

how are you counting them?

golden basin
#

0-1-2-3 by each sprite from the top left across

royal stump
#

patch export⁩ whichever sheet it's using to be sure it's not an editing issue
(and upload w/ code here to double-check)

golden basin
#

these are the sprites

royal stump
#

unless it's not touched by other mods ig

golden basin
#

its not touched by other mods

#

this is my code

#

but i just, idk why its not matching up

#

theres like not even any animations for any of them except my jellyfish so its all the same numbers, the issues is literally the index is wrong and idk how to count this cause the tradtional way is giving me the wrong results

short temple
hard fern
#

🤔

golden basin
#

what do you mean

short temple
#

The fish uses two sprites

#

To look like they are moving

golden basin
#

it only uses two sprites if you code it that way

#

cause the game overlays a wiggle effect

hard fern
#

your sprites aren't in the right places?

#

they're not aligned to the grid

short temple
#

I think that is why they're not animating but as i said i might be wrong

brittle pasture
#

aquarium sprite is 24x24

golden basin
brittle pasture
#

the grid is correct

hard fern
#

i think i'm confused them

#

im looking at the objects

#

the objects data in your json

golden basin
#

the indexes are correct right? im not losing my mind>?

hard fern
#

what exactly are the fish showing up as instead of what they should be? 🤔

#

i just looked at some other fish data and it looks correct

golden basin
#

huh....i reloaded and its working now

brittle pasture
#

I'm looking at the vanilla aquarium sprite + checking the code and it seems like the sprite size is 24x48, but it's only using the bottom half? can you try making the sprite 24x48

hard fern
#

oh

brittle pasture
#

or nvm?

golden basin
#

it hm that was weird

royal stump
#

...oh

#

the game assumes the sheet is exactly 480 (20 sprites) wide

#

afaict anyway, you'll want to put them all on one line

royal stump
#

⁨```cs
if (aquariumData.TryGetValue(fishId, out var rawAquariumEntry))
{
string fishName = ItemRegistry.GetData("(O)" + fishId)?.DisplayName ?? ArgUtility.SplitBySpaceAndGet(v.Value, 0);
string[] array = rawAquariumEntry.Split('/');
string aquariumTextureName = ArgUtility.Get(array, 6, "LooseSprites\AquariumFish", allowBlank: false);
int aquariumIndex = ArgUtility.GetInt(array, 0);
Rectangle source = new Rectangle(24 * aquariumIndex % 480, 24 * aquariumIndex / 480 * 48, 24, 24);

calm nebula
#

Pathos plz

hard fern
#

why is fish like this

golden basin
royal stump
#

yeah

golden basin
#

oof ok

royal stump
#

you might also be able to treat every vertical line as +20, but doing 20 per line is safer/clearer

golden basin
#

20 per line?

#

what do you mean?

short temple
royal stump
#

yeah, 20 fish sprites, 24 pixels each = 480 pixels per horizontal row

#

it assumes sprites 0-19 are on the top row, then starts at 20 on the next one, etc

short temple
golden basin
royal stump
#

(also I just realized I was quoting Summit.cs code, my bad, I haven't slept much SDViconghost)

#

looks like fish tanks do account for arbitrary sprite width, so I'm back to being unsure what happened

ivory plume
#

Monthly mod stats time!

Rise of AI-generated mods

Last month I mentioned a growing number of AI-generated C# mods. This month's 165 new C# mods breaks the all-time record (161) set in April 2024 after the Stardew Valley 1.6 modding update. The ramp-up is visible in the graphs below.

More mods seems like a good thing, but that's concerning since...

  • AI creates C# code by default. C# mods are less compatible with future game/SMAPI updates and less secure than content packs, and a full 31% of new mods this month are C# mods (where 10–15% would be more typical).
  • AI-generated mods tend to be fragile, overly complex, and closed-source.

In the short term, these stats are becoming harder to maintain. Data related to AI-generated mods tends to be lower quality and need a lot more cleanup (e.g. different names between the manifest and mod pages, incorrect manifest info, mod IDs which change from one version to the next, mods which don't work at all, etc). The more complex code also makes it much harder to analyze mods in bulk for malicious code.

In the longer term, I worry that this will degrade the quality and health of Stardew Valley's modding ecosystem. Mod authors who AI-generate mods often don't participate in the community, don't open-source their code, don't apply best practices, and may not update mods for future game versions (particularly those which are closed-source).

I guess it's unsurprising that AI is changing things. What remains to be seen is whether the end result will be a net positive.

Mod compatibility

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

Unique mods by type

We have 524 more mods this month.

Custom Music dropped below 100 content packs, so it's no longer tracked separately in these stats. It's been falling steadily since Stardew Valley 1.6, since it was never updated and simple custom music can now be added through Content Patcher.

The breakdown of new mods by type is:

  • +273 Content Patcher;
  • +165 SMAPI (C#);
  • +42 Fashion Sense;
  • +30 Alternative Textures;
  • +7 XNB;
  • +4 Json Assets;
  • +2 Farm Type Manager;
  • 0 Better Artisan Good Icons;
  • 0 Custom Furniture;
  • 0 Furniture Framework;
  • 0 Producer Framework Mod;
  • 0 TMXL;
  • -1 Dynamic Game Assets;
  • -1 Mail Framework Mod;
  • -1 Shop Tile Framework;
  • and +4 for frameworks with <100 content packs.

Content Patcher packs

We have 13,244 Content Patcher packs.

Format version 2.7 has fallen out of the top five, replaced by 2.8. The top five Format versions are now...

  • 2.0 (3,903 ↗ 3,941), 2.3 (867 ↗ 882), 2.4 (668 ↘ 665), and 2.8 (672 ↗ 785) for Stardew Valley 1.6;
  • and 1.19 (571 ↘ 569) for Stardew Valley 1.4.

Open source

  • We have 4,066 tracked C# mods, of which
  • 2,414 mods (59%) have a source code repo, with
  • 1,299 (54%) in a multi-mod repo and 1,115 (46%) in a single-mod repo.

The percentage of open-source mods is dropping rapidly (62% in October, 61% in November, 60% in December, and 59% in January). This seems to be driven by the wave of AI-generated mods, as discussed above.

Web costs

And finally, web hosting costs for the SMAPI.io site, update-check server, and API rose slightly to US$215/month. (The graph is always a bit behind due to billing cycles.)

See also

And that's it for this month! Feel free to ask if you have any questions.

hard fern
#

+7 xnb i see

merry river
#

oh this is the first time i actually see one of these monthly mod stats things, this was so interesting to read

#

Mod authors who AI-generate mods often don't participate in the community, don't open-source their code, don't apply best practices, and may not update mods for future game versions (particularly those which are closed-source).

pretends to be shocked

gaunt orbit
#

I wish nexus would just ban ai mods

merry river
#

honestly. don't need that slop in my game

opaque field
#

Same

#

I don't need AI to write bad code for me. I'm perfectly capable of doing that on my own thanks

dusk mulch
#

the only slop i want in sdv is pierre's produce

opaque field
#

XD

#

the mayor

dusk mulch
#

is there a mod that allows you to go through events step by step? so it only executes 1 index at a time, press a button and it does another?

gaunt orbit
#

I don't think so, but that's an interesting concept, and I don't think it would be too complicated

dusk mulch
#

im too scared to go near C# so ill put it onto the mod ideas github

merry river
#

i think sinz's event tester lets you adjust event speeds?

dusk mulch
#

ill look into it, ty!

calm nebula
#

It let's you go faster not slower

merry river
dusk mulch
#

awww :(

#

ill put it to the mod ideas github then

merry river
#

other than that i suggest using debug mode when testing events if you don't have it already

dusk mulch
#

ive just been using smapi console debug commands lol

merry river
#

https://www.nexusmods.com/stardewvalley/mods/679

it displays information like the current command of your event while testing it

Nexus Mods :: Stardew Valley

Press a button to see a debug info overlay, and optionally unlock the game's built-in debug commands (including teleportation and time manipulation).

dusk mulch
#

ty!

neon fern
#

Is it possible with Extra Machine Config to make a machine with multiple rules that kinda “share” the some inputs?
I’m working on a tea mod with several tea bases (like green tea and black tea), and I want a mixing machine that combines a tea base with dried fruit to make flavored tea. So the same machine would have rules like:
green tea + dried fruit = flavored green tea
black tea + dried fruit = flavored black tea
And not just dried fruit, it could work with other stuff too, like flowers:
green tea + flower = flavored green tea
I might be overthinking this 😅 but I’m stuck on how to make it work. My idea was to require the dried fruit to be in hand and then just consume the first tea base is available in the inventory, but I don’t know if that’s even possible with the framework.

opaque field
#

ooh ooh yes

toxic sage
opaque field
#

uh, okay I think Cornucopia Artisan Machines Yoghurt Jar does that

toxic sage
#

that too LOL

opaque field
#

I used that format for my cream cheese mod

#

hehe

shut edge
#

yeah there is in fact a mod or two that should do that with tea already even

#

either a cornu machine or a wildflower one i think

toxic sage
#

can i butt in and ask for some help with fashion sense? i changed the sprites of someone else's pack and can't figure out how to change these pixels that won't dye/colour-match

merry river
#

WAG has tea machines

#

but y'know. two cakes

toxic sage
#

i've tried changing the rgb values in the json for the shirt so they match the ones on the sprite but that hasn't seemed to work??

opaque field
#

SDVpufferwoke grabby hands give me all the tea and cakes

#

gives me much joy sosu

#

Feels like a dumb question but is there a way to make custom bombs

shut edge
#

nuclear valley did it

#

so probably

brittle pasture
#

with EMC you can instead have the flavor comes from the dried fruit fuel by using DROP_IN_ID_1, so you can use the green tea/black tea as the main input

brittle pasture
#

no content-visible way otherwise

opaque field
#

Ah, okay that's about what I thought

shut edge
#

alchemistry alters the vanilla bombs but i'm not sure what method they use

opaque field
#

thinks about if I want to try touching C# again

brittle pasture
#

they just rename/retexture the vanilla bombs

shut edge
#

makes sense

#

while we're at it how about mystery boxes

brittle pasture
#

also cardhoded

shut edge
#

dang

brittle pasture
#

but you can make custom geodes with CP

opaque field
#

What's that bugs bunny hardcoded meme

calm nebula
#

Cardhoded

opaque field
#

I've seen it here XD

ornate locust
#

oh, I made it, one sec

opaque field
#

oop Jerry not Bugs

shut edge
#

for that method we were talking about Selph, would you suggest custom geodes with a box sprite, or like one-off item boxes that make one item?

opaque field
#

ty ❤️

brittle pasture
#

what's dardroded about the mystery box is the unorthodox drop rates that it uses, which isn't quite possible with CP

#

I recommend custom geodes because it tickles the same part of the reptile brain that makes humanity so susceptible to gacha games

shut edge
#

haha

toxic sage
#

i LOVE gambling with geodes and mystery boxes theyre my kryptonite

shut edge
#

in my current use case i want them to do single items anyway but i suppose that would still work just as well

opaque field
#

I love Geodes

shut edge
#

maybe it could make my random fish attempts less....overpowered

opaque field
#

The Omni and the Frozen are my favorite (pure aesthetic)

brittle pasture
#

also make sure to ban your boxes from geode crackers with the context tag if you're going to have them drop weapons

#

(unless you fancy using EMC's non-Object output function)

shut edge
#

ah yeah that is a question huh

opaque field
#

time to distract myself from crops to look at decompiled bomb coding

shut edge
#

clint will spawn weapons ok i imagine?

brittle pasture
#

yes

patent lanceBOT
shut edge
#

how about like a box you can just open by using it like a food or such, is that a thing we can do

brittle pasture
#

maybe even a 4

#

tl;dr have fun

opaque field
#

nevermind

#

LMAO

opaque field
#

I made a 'grenade gift' for Kent and thought it could be neat

#

but

#

I am not that advanced

brittle pasture
#

damn I didn't mean to discourage you

shut edge
#

kent always sending bombs in the mail

opaque field
#

(I still have the decompiled code open)

#

I'm still looking at it but it dropped on my priority list

shut edge
#

where the hell does the game store geode data hm

brittle pasture
#

Data/Objects

#

there are geode drops fields

shut edge
#

oh i'm dumb

opaque field
#

Not so much discouraged but a realistic shift of priority. I still wanna peek at how it's done

shut edge
#

was lookin at mystery box and going there's nothing useful here lol

opaque field
#

I like now how things tik

#

I can words

shut edge
#

ah i see, thanks

opaque field
#

Ok so far I searched 'bomb' and don't know if that was the right thing to look for.

calm nebula
#

No

#

Look at somewhere in the middle of the temporary animated sprite code

#

Gamelocation.explode is also a good read

opaque field
#

TY! I will search there

calm nebula
tiny zealot
shut edge
#

real feature creep hours

dire kestrel
shut edge
#

imaging a hardcore modder with a springobjects sheet tattooed on them

hard fern
#

😭

toxic sage
ocean wave
#

or cursors

shut edge
#

gets a new cursors tat in an odd spot after every update

dire kestrel
ornate locust
#

Having tried to convert one of the textures in that for FS, it looked pretty bad tbh

#

I accept that I know nothing about how those color masks in FS work, definitely not enough to convert it, because it didn't look remotely right

dire kestrel
#

-# more fuel for the fire to aid my own farmer_base adventures

toxic sage
shut edge
#

damn are weapons just handled by rotating the item sprite?

brave fable
#

yep SDVpufferthumbsup

shut edge
#

that's convienient

patent lanceBOT
#

@calm nebula: read this again (9d ago)

brittle pasture
neon fern
#

Is possible to make the output have the quality of EMC fuel item?

brittle pasture
#

the fuel requirement accepts context tags, so you can do "fuel is iridium quality" and have the output be iridium

#

it is a bit manual though; the Cornucopia yogurt machine does just this if you need an example

neon fern
#

Thanks!

shut edge
#

damn what are those one swords that are like covered in little obsidian blades called

#

Macuahuitl

#

that's it

azure pine
#

Are there are standard patterns for making stardew valley mods?
It would be cool to know?
Just starting my journey on this by the way

lucid mulch
#

Content patcher, smapi and other

round timber
#

what kinda mod you wanting to make

azure pine
#

I don't know yet but something fresh perhaps
I think I 'm going with SMAPIs quickstart tutorial

I'm just asking if there's a standard pattern like project structure and such to follow
for long term development

round timber
#

the structure will depend on whether youre doing C# or content pack (which depends on the complexity of what youre doing). sounds like youre wanting to do C# though (and as such I'm not qualified to answer)

fierce vault
#

How do I force my tmx to draw its tilesets directly from the game? I'm using tilesheetinator, and all the vanilla tilesets are being drawn on from a folder on my desktop right now, but to my memory the path needs to be broken for the tmx to search in the game's files instead. Esentially, I have to re-break them somehow right?

ornate locust
#

You select that folder as your "unpacked maps folder" and Tilesheetinator will... I don't know if I'm explaining this well, but it will take those tilesheets as "vanilla"

urban patrol
#

(i misread ignore me)

ornate locust
#

I just set my unpacked maps folder from unpacking Stardew as my unpacked maps folder so I don't keep copies anywhere else

fierce vault
#

Oh, so I chose my folder wrong? I thought I needed to use an actual unpacked folder, not the one directly from my game. Would doing that still break the map if I uploaded it tho?

ornate locust
#

I'm not sure what you mean by an actual unpacked folder" vs one from your game. I use a folder I unpacked straight from my game

#

so it'll see this and it'll look for spring_outdoorsTilesheet.png in the unpacked folder I set

#

as long as your image source is just the file itself, it should honestly work fine in anyone's game

fierce vault
# ornate locust I'm not sure what you mean by an actual unpacked folder" vs one from your game. ...

Ok, I think that's what I'm already doing too then? (Also, I said actual unpacked folder because I thought that you somehow set stardew's own not unpacked maps folder as your source)

What's confusing is that my game does not automatically replace the spring tilesheet with the summer one when I change seasons, which I thought was supposed to happen when the tilesets are drawing straight from vanilla and not an unpacked folder.

ornate locust
#

No, it can't do that

#

Wait

#

I mean TILED can't do that, but your game should do that fine, yeah

#

hmm

fierce vault
#

So, my game should do that, but isn't. I wasn't supposed to add something in the json for that was I?

ornate locust
#

No, not with vanilla stuff...

#

it should absolutely just work

#

oh boy I'm not even sure where to start diagnosing that one

fierce vault
#

the basic tilesheet looks normal here, too 😅

#

Like, the same as yours

ornate locust
#

If it looks like that in the map file, it really should just work if you get there ingame... let me see if I'm missing anything thinking sounds

#

yeah, nah, that looks very identical to what I use, and there's no JSON stuff needed for that. I don't think that's a Tiled problem at all. Tilesheetinator just helps Tiled look in the right spot so you can see what you're editing. The game itself handles the changing of the seasons thing and that IS looking at the right spot...

#

I'm stumped, maybe someone else has ideas

fierce vault
#

Thanks for looking into it anyway. This is strange...

ornate locust
#

I think I've seen someone having this problem once, but I don't remember who or in what server, so looking for it's gonna be a hail mary LOL

opaque field
#

At last, I have updated my Vegan Fish mod :3 https://www.nexusmods.com/stardewvalley/mods/35766

Nexus Mods :: Stardew Valley

Introducing - vegan fish! TofuFish, TempehFish, Jackfruit Jellyfish, Banana Blossom Fish, Chicken of the Sea Fish, CashewCheese Sea Monkey and Seitan Squid have entered the chat. When you put them in

fierce vault
fierce vault
ornate locust
#

I genuinely don't think it's anything about the paths

#

If your map says that in the data, nothing Tiled lookes at matters

#

The game will look for that. and it's a vanilla file

urban patrol
#

are there any vanilla tilesheets in your folder

uncut viper
#

is your map an Outdoors map, or treated as outdoors?

fierce vault
#

It's outside

fierce vault
uncut viper
#

but i mean does it have the Outdoors or TreatAsOutdoors map properties

fierce vault
#

I used the vanilla bus stop as a base, so I think so, I can check the tmx

#

I searched for TreatAsOutdoors and came up empty in the tmx json, so I don't think so

uncut viper
#

what about just Outdoors

fierce vault
#

I think so

uncut viper
#

then yeah, remove any tilesheets that are next to the .tmx in your mod folder

#

just in case

fierce vault
#

Oh, should probably delete the veiw port clamp too even tho I didn't notice any affects

uncut viper
#

SMAPI loads any tilesheet it can find in the same folder as your .tmx with priority and ignore the content pipeline
(i would have thought you'd then get an error if you didnt actually have any other seasons in the folder, but shrugs)

#

if theyre vanilla tilesheets and you're using Tilesheetinator, you shouldnt even have them there in the first place