#making-mods-general

1 messages · Page 474 of 1

obtuse wigeon
#

!json I think it's caused by the default.json translation file bring formatted incorrectly, send your json file here using the first link

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.

obtuse wigeon
#

sorry, can you send the default.json translation file not the content.json, I should've specified better

hollow root
#

oh yeah sorry

#

one second

obtuse wigeon
#

you have an extra comma at the very end of the translation file, try removing that and seeing if it works

hollow root
#

ok!

obtuse wigeon
#

Also in the content.json on line 91 in the "MoveEntries" block, the "Id" should be capitalised to "ID" according to the json parser

hollow root
#

Ohhh ok i’ll do that too

hallow prism
#

what would you suggest as a way to share a file that is slightly over discord limit?

obtuse wigeon
#

Theres the option of google drive if you have an email address you don't mind being seen,, you could also try compressing it in a zip (if you havent already) or a rar or 7z format which may be compressed slightly more?

#

Theres also github too if you have a github account

iron ridge
#

Catbox.moe has higher limits too

#

1gb if just temporarily

hallow prism
#

i zipped it, it's 11003 ko once zipped

#

thanks for the options!

obtuse wigeon
#

Oh theres also the possibility of sending as multiple messages if it's not one file, a little bit of a pain but certainly not the worst thing either

iron ridge
#

Can also make it a rar and split it up (other formsrs might support that? I just know rar definitely does)

urban patrol
hallow prism
obtuse wigeon
#

Oh ye then decent compression or catbox would be the best then

dusk terrace
#

TIL HarmonyLib has a Join extension on IEnumerables... that was causing some confusions SDVpetcatsad

#

must've flipped the join and select order at some point and couldn't figure out for the life of me why this line wasn't working outside ModEntry...
list.Select(d => d.SomeField).Join(delimiter: " > ")

lucid iron
#

Is this meant to make a string?

#

I actually had no idea there was a linq join so i always used string.Join(sep, somestringlist)

dusk terrace
#

it correctly makes a string with HarmonyLib

#

but string.Join() is the correct way to do it in all other cases

#

the linq join is for db queries looks like

hollow root
#

at least now the board doesn't crash? 😅

#

i replaced "breakingstardew" with "modid" here in case that was the issue but im not sure

urban patrol
#

can you send the whole thing

hollow root
#

yes one second

urban patrol
hollow root
#

i did, i moved some brackets and stopped it from crashing the board, do i need to move more?

urban patrol
#

yes, you can see that your bracket closes the first Entry and then you open a new entry called Objective

hollow root
#

oh ok

#

is there a way to force a special order to appear or do i have to keep brute forcing it

balmy venture
#

@tawny ore sorry to bother you, but do you think it would be possible to write a compat with Ultra Organized Chests and chest colors and alternative textures? I tried with my limited knowledge and reached this point but I used chest.draw and it seems it can't be resized in menus. Just wondering if you think it's possible before I go crazy trying XD

hollow root
#

how do i get smapi to stop telling me its an unknown command

#

when i type in any command not just that one

soft lance
#

For quests, how can you reference internal ID's from your mod? The UniqueId is "ASF", though it keeps registering it as a "gift" to Willy, whereas doing a vanilla item works, am I inputting this wrong?

urban patrol
hollow root
urban patrol
#

do you not have console commands installed?

hollow root
#

i tried different commands to see if it would say the same thing

obtuse wigeon
#

Do you have the Console Commands mod? it should be installed with SMAPI automatically

hollow root
#

i guess i somehow dont?

#

should it show in this folder

obtuse wigeon
#

It would be in the Mods folder

hollow root
obtuse wigeon
#

If you don't have it, I think the consensus is to reinstall SMAPI? not too certain on that however so it may be best to wait for someone that knows for sure

#

Theres also the Save Backup (I think) mod that that you're missing aswell, it's also bundled with SMAPI

hollow root
#

thats weird, ill try reinstalling it later, ty

unreal spoke
#

Right on both accounts.

worldly wadi
#

Heyyyyyy how do I mod an event that, like, triggers immediately after doing something? For example, after you finish a bundle, a small event with the junimos happens, I want to do the same on my mod. How should I do that? Do I need C#?

#

(I'm scared of C#)

hollow root
lucid iron
worldly wadi
# lucid iron You probably don't need C#, but what kind of bundle is it?

Actually, it's not a bundle, it's a special order. Need to deliver wood, stone and iron bars and It's already working (I'm so proud of myself omg that was so hard to mod and understandSDVpufferwaaah ). After completing that, I want to add a small cutscene that will trigger immediately, it'll be an npc thanking you for the job and stuff.

worldly wadi
lucid iron
#

hm but doesn't the event take place in some specific location?

#

It would be rather annoying for player if they are in the mines getting rocks and then bam event

#

Putting that aside you can use spacecore playevent trigger action to start the event anytime instead of player going to a place, the timing of when you can call the action depends on what triggers you use

soft lance
lucid iron
#

LocationChange is probably good enough

worldly wadi
lucid iron
#

Junimos don't do that though those are night events blobcatgooglyblep

#

Anyways another thing you can consider using instead is unlockable bundles

#

Those would actually just let you do a event on completion

worldly wadi
#

Tyyyyy

soft lance
#

just not modded fish, when it should, I'd suppose

uncut viper
#

have you deleted and restarted the quest since editing it, assuming you've made changes to it at some point?

soft lance
uncut viper
#

When you get a quest all of it's data is stored permanently on that quest object and saved, it no longer reads from Data/Quests ever at that point

#

you can also remove a quest with the removequest trigger action

soft lance
#

that was the problem

#

😭 ty

narrow owl
#

when making new context tags where do you have to first declare them, or can they just be made when they are being used to specify something?

lucid iron
#

They are just strings but it's good to follow conventions

hollow root
#

I got SMAPI commands to work. What would my special order ID be? This?

#

SMAPI says this

obtuse wigeon
#

Replace {{ModId}} with your actual mod ID from the manifest.json

hollow root
#

🤦‍♀️ ok yeah that makes sense

#

it still says no output

obtuse wigeon
#

with many commands there may be no output to the console, it's always best to check it it works ingame

hollow root
#

I checked the special order board and mine didn’t appear, should I sleep?

uncut viper
#

that debug command doesnt put it on the board

#

it just starts it

#

itd be in your quest log if anything

hollow root
#

ohhh okay

#

IT WORKS SDVpufferparty

#

i don’t know if it’ll look bugged on the board when it shows up naturally but it looks fine in my quest log

#

ok wait now i cant give pierre the quest item to finish it

narrow owl
uncut viper
#

there is a big section titled "How to add context tags?"

#

you dont need to do anything more than what it says in that section

#

if you write the tag down it exists

hollow root
#

wait hold on do i have to create a new context tag for the special order to work

#

not just put down the item id

#

because im using my custom item

lucid iron
#

Items have autogenerated tags

#

id_o_itemid

uncut viper
#

i dont know anything about special orders but the field being called AcceptedContextTags would indicate to me that it needs a context tag

hollow root
#

im looking at the wiki and i think i do have to make one

narrow owl
uncut viper
#

as chu says, every item has an autogenerated tag for free

#

you can replace your item id with a tag that it would automatically have

narrow owl
#

when you make a recipe (cooking) can you make it so it has multiple unlock conditions, such as /s farming 3 and /f marnie 5?

hollow root
uncut viper
#

no, literally id_o_<your item id>

hollow root
#

ohhh

lucid iron
#

The main wiki explains these autotags in detail

#

You can check em in game too

hollow root
#

and i assume item id doesnt have to have {{ModId}} in it

hollow root
uncut viper
#

it does. because that is part of the item id

hollow root
#

oh ok

lucid iron
#

It has to be whatever the item id literally is

hollow root
#

hopefully that fixes it

soft lance
#

hi everyone

#

how can u add dialogue to characters? pls no wiki link as the first comment or else i pull nerd emoji (lol)

#

its just like basic dialogue, like

#

I got a quest that Willy wants to talk to the player, just gotta meet em, that all works but its just an empty quests and nothing

#

i was wondering, how hard is it to make Willy say something, when the quest is active, when you speak to him? No need for a cutscene (yet), just basic dialogue like "Hi me like fish", anything

hollow root
uncut viper
#

you look at the wiki page for dialogue and the content patcher editdata documentation and you combine the two

uncut viper
#

i dont really care if thats what you didnt want because otherwise you're asking people to re-explain whats already written on the wiki

#

its the recommended resource for a reason

#

there are possibly specific tutorials on the modding wiki, but i dont know any myself

uncut viper
hollow root
#

my context json i can put the whole thing here

soft lance
uncut viper
#

there are many many mods that add dialogue to characters

uncut viper
# hollow root my context json i can put the whole thing here

i dont know what part you've screenshotted. is that your Data/Objects entry? your specialorders entry? an entry targetting somewhere else? its too cropped. screenshots are not recommended. when posting json its always preferable to upload it to the json validator and send the link here

#

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

hollow root
#

wait i figured it out

narrow owl
urban patrol
#

not pierre sky crystal

hollow root
#

so i managed to add pierre’s name and make it plural 🤦‍♀️

uncut viper
#

(make sure to fix the matching } too into a ])

narrow owl
hollow root
#

I updated AcceptedContextTags to id_o_{{ModId}}_SkyCrystaland Pierre still won't accept the special order, I might just take a break from this and work on something else

uncut viper
#

you might have to make the AcceptedContextTags all lowercase, including the ModId part

hollow root
#

I will try that too SDVpufferwaaah

uncut viper
#

you can use the {{Lowercase}} token to make it easy

#

id_o_{{Lowercase: {{ModId}}_SkyCrystal}}

#

also if you havent been deleting and restarting the special order every time, make sure you're doing that

hollow root
#

Makes sense

tawny ore
stray hemlock
#

Is this the right place for SMAPI feature requests? The GitHub said I should go here (or to the subreddit, but I don't use that since the API changes).

brittle pasture
#

what do you have in mind

soft lance
#

Quick question

#

I was making it so when my hammerhead is gifted to Willy, he would have a response

#

I made a quick response to test and play around

#

However, when gifting, that message doesn't pop-up, is it by chance?

brittle pasture
#

no, it should pop up
that code looks correct; check that the item ID matches and that you included the file

grand badge
#

if im not wrong from the looks of it the swords seem to be just 1 sprite

brittle pasture
#

and the game rotates it as needed yes

grand badge
#

might start off with a sprite for that to mod then#

soft lance
#

its always the most unexpected, random things taht cause issues

#

i forgot, i made a gifts.json, im so good that i forgot to import it

#

gonna give that a try rq

#

IT WORKSKSS

stray hemlock
brittle pasture
#

sure, go ahead

#

(I'm curious too)

uncut viper
#

(though bear in mind that Pathos may not be as readily available for comment as usual due to very recent home flooding issues)

obtuse wigeon
#

(Oh no, hope it's the best case scenario!)

gentle rose
#

-# isn't patchmode a content patcher thing

uncut viper
#

no

#

i mean yes

#

but also a SMAPI thing

gentle rose
uncut viper
#

since you can also edit images with SMAPI in a C# mod ofc

gentle rose
#

I would have searched the repo but I'm on mobile and my tolerance of github search is limited

stray hemlock
#

Still typing, but ContentPatcher is basically a more user-friendly API for some SMAPI stuff, as far as I know (could be totally wrong on that).

uncut viper
#

CP just uses SMAPIs editimage functionality

gentle rose
#

dw, take your time! I was just throwing a general question out there because I couldn't remember

uncut viper
#

you're pretty much correct on that, depends on how someone classifies all the tokens and whatnot extra stuff on top as just user-friendly API stuff

gentle rose
uncut viper
#

otherwise its just a json wrapper around the SMAPI events in essence

grand badge
#

making the yato

soft lance
#

am i the only one that sees that golden sword in this

#

🤣

grand badge
#

half the swords just be minecraft ones tbh

stray hemlock
#

@ivory plume
People told me I can ping you for Feature Requests (though please take care of your home first).

Basically I'm interested in something like PatchMode.Subtract PatchMode.Mask (thanks @gentle rose). If I edit a sprite sheet I sometimes want to make certain pixels transparent (let's say making Pierre bald). Of course I could simply just PatchMode.Replace that area with transparent pixels, but if it's all sprites in a sprite sheet that's a lot of targetAreas.

The alternative would be to replace the entire image with an edited version, but that wouldn't be good for compatibility with other mods. Sure, different priorities might help there, but I like the scope of my mods to be as limited as possible (compatibility is hard enough).

As such, I suggest PatchMode.Mask. You specify a source and the alpha value of every pixel will be subtracted from the corresponding pixel in the target. Most often that means you have fully opaque pixels in your source, which means the corresponding pixels in the target will be set to 0 no matter their previous value (but of course you could also experiment with making a pixel 50% transparent by using PatchMode.Mask with a 50% transparent source).

I hope I explained that well.

gentle rose
#

oh I was confusing patchmode and patch action SDVpuffersquee teaches me to message at nearly midnight

stray hemlock
#

Half past midnight here.

soft lance
gentle rose
#

tbh blend modes in general would be fun

stray hemlock
hard fern
gentle rose
grand badge
#

fixed the colors a bit

gentle rose
#

but subtract isn't a bad name either, I was just clarifying!

stray hemlock
obtuse wigeon
#

it could be expanded to remove the RBG value however so that it can act as both subract and mask at the same time right?

gentle rose
#

I vote full blend mode support /hj

grand badge
obtuse wigeon
#

it would solve at least 2 issues I have had previously XD

gentle rose
#

would solve at least one I saw someone else have

#

and I think monogame actually has support for blend modes so it may not even be terrible to implement, the main question would be order (since that becomes even more important) and performance

stray hemlock
uncut viper
#

i like the subtract idea as described though if i hadnt seen it said here i would assume subtract would work on colour so i dont think its a clear name for it

soft lance
#

Every single custom fish has custom gift responses from Willy!!

uncut viper
#

as for other blend modes im not really sure if theyd have a real purpose? like why would i use Multiply instead of just Replace

stray hemlock
uncut viper
#

and if the answer is targetarea hell then i think adding a blend mode is just sorta treating a symptom and not a cause

gentle rose
lucid iron
grand badge
#

my one weakness

stray hemlock
lucid iron
#

cus you can just do it if you want

stray hemlock
#

Sorry, I'm really slow at typing.

lucid iron
#

just gotta manually do all the Color[] stuff

gentle rose
uncut viper
#

also smapi image editing works on the raw pixel data

gentle rose
#

ah

uncut viper
#

dont think monogame stuff even comes into play

lucid iron
#

if it did then i never found it and had to do all that shit manually

uncut viper
#

aside from just having a Color[] array

lucid iron
#

but point is you could if u want, means is separate discussion

stray hemlock
gentle rose
#

draw takes a blendmode argument iirc

uncut viper
#

you're suggesting SMAPI should patch every single instance of draw in the game?

grand badge
#

I have no idea what im doing but ill probably figure it out

gentle rose
#

no, I'm providing evidence for why I think monogame has support SDVpuffersquee

lucid iron
#

content patcher does a lot more than simple image replacing tbh Dokkan

uncut viper
#

but imn ot sure what the point is if its not what SMAPI or the game uses

#

obv monogame can support it when drawing but SMAPI isnt drawing anything, its editing/creating texture2ds

lucid iron
#

but yea i think your idea will get more traction if you have actual mod usecase to go with it

#

there are lots of mods that offer special draw operations instead of actually altering the texture

#

and simply ask for color mask in those cases

gentle rose
stray hemlock
uncut viper
#

it literally just takes in an array of pixels from the texture2d and replaces the byte values for each RGBA of each pixel

lucid iron
#

you can just add new hairstyles tho

gentle rose
lucid iron
#

if u dont wanna deal with the vanilla textures being undearneath

uncut viper
#

its not drawing anything iro

#

there is nowhere to say "i want to draw this in blend mode multiply"

gentle rose
#

yeah I'm not saying it is

stray hemlock
uncut viper
#

then im still not sure what your point is

lucid iron
grand badge
#

and alpha yato

drowsy pewter
#

i would just patchmode replace, i dont think your subtraction idea is any much better for compatibility considering the wide array of npc edits that change color, height, appearance data, etc

grand badge
#

now i just need to figure out how to put them over the galaxy blades....

stray hemlock
lucid iron
#

hair is separate texture than skin though ConfusedAnime

#

unless we talking about NPC?

drowsy pewter
#

for npcs

stray hemlock
#

Yes, NPCs.

lucid iron
#

ok makes sense then

gentle rose
stray hemlock
drowsy pewter
#

what would you do if you have a hairstyle where the old vanilla hairstyle covers some part of the face but your new one doesnt

grand badge
#

ye ok i dont know how to replace the weapons sprite

drowsy pewter
#

lol

uncut viper
grand badge
#

if you guys havent figured it out im the worst modder of all time

gentle rose
stray hemlock
gentle rose
#

meaning no need to reimpl blend states

drowsy pewter
#

if you're thinking about dsv, that mod already adds a bunch of variant spritesheets for npcs. so the variant apppearances wouldnt be edited by whatever you're doing unless you provide explicit dsv compat.

for other npc appearance replacament mods, a large portion are complete sprite replacements to turn them into some fandom cgaracter or something. I cant think of too many that change the skintone without these other considerations.

Not trying to shut down your idea, just trying to point out the other stuff to consider here

obtuse wigeon
grand badge
#

i messed up doing cross worlds so bad nobody could figure out how i messed up

uncut viper
#

you can find the same sort of edge cases that make an idea not work for Overlay or Replace

#

always nice to have options

obtuse wigeon
#

if you're not familiar with making a content patcher mod, have a look at the wiki for the Modding getting started page

grand badge
uncut viper
grand badge
obtuse wigeon
#

(I know theres a command but I can't remember it unfortunately)

lucid iron
#

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

did u do this already?

grand badge
#

i have it unpacked it seems

uncut viper
#

im p. sure it only creates new instances for extending bc it has no other choice

gentle rose
grand badge
#

from a past attempt i cant remember

gentle rose
#

tbh I wonder if that would be more or less performant than what smapi currently does. in that I'm sure it's less performant because plenty of people have looked at optimising already but I'm interested to see why

grand badge
#

see my problem is all the weapons are the same image but i made my weapons as there own

obtuse wigeon
#

In the Content Patcher documentation for EditImage, theres another field that will be useful, "ToArea", it lets you choose a specific area instead of replacing the whole image

grand badge
#

ooh

lucid iron
#

take a lok at TileSheets/weapons.png in your unpacked

uncut viper
lucid iron
#

that name without the .png is your target to patch

uncut viper
#

(also im actively making dinner rn so if it seems like im missing a message or missing something you said in a message its bc im distracted)

gentle rose
stray hemlock
gentle rose
obtuse wigeon
grand badge
#

is this it?

#

or is format wrong?

#

i feel like it is

gentle rose
#

what made you think it's 1.5? /gen (I like to see where people get confused to better understand how to help in the future)

grand badge
#

thought fromate was just a file thing tbh

gentle rose
#

it helps content patcher detect old mods and automatically update them so they work

stray hemlock
grand badge
gentle rose
#

(are we on 2.8.1 or 2.8.2 or 3)

gentle rose
stray hemlock
obtuse wigeon
gentle rose
grand badge
stray hemlock
#

Also, you can paste code here like this:
```json

mycode

```

grand badge
#

oh cool

#

also whats the 2nd galaxy sword called that glows?

#

the forged one

stray hemlock
#

Yeah, there's still one ] missing. It should be between the two }.

obtuse wigeon
stray hemlock
#

I'm really glad that ContentPatcher isn't that strict about JSON and accepts trailing commas and comments.

heavy pewter
#

Guys, does the buff sprite index also correspond to its id

#

Or no

grand badge
#
{
    "Format": "2.8.0",
    "ConfigSchema": {
        "Version": {"AllowValues": "default, alternate"}
        },
    "Changes": [
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/GalaxySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 64, "Y": 0, "Width": 16, "Height": 16},
            "When": { "Version": "default" },
            "Default": true
    ]
}

stray hemlock
# grand badge ```json { "Format": "2.8.0", "ConfigSchema": { "Version": {"Allo...

Now the second-to-last } is missing.
Here:

{
    "Format": "2.8.0",
    "ConfigSchema": {
        "Version": {"AllowValues": "default, alternate"}
        },
    "Changes": [
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/GalaxySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 64, "Y": 0, "Width": 16, "Height": 16},
            "When": { "Version": "default" }
        }
    ]
}
grand badge
#

thank you

stray hemlock
#

No problem. By the way, if your FromArea is the whole FromFile, you can skip it.

grand badge
#

now i just need to do one for the infinity blade

stray hemlock
#

Like, if your image is only 16×16, then you don't have to specify a FromArea, because it will just take the whole image by default.

#

If it's bigger, then ignore what I said.

uncut viper
#

where are you getting "Default": true from?

stray hemlock
#

Good point. That shouldn't be there.

grand badge
stray hemlock
grand badge
#

removed it then

uncut viper
#

which template?

grand badge
#

i just found one for the galaxy blade somewhere

#

nothing for the infinity tho

#

so i gotta figure that out myself

stray hemlock
grand badge
#

7 downa and 2nd to the left

#

hmm

#

i do this x7 then x3

#

?

#

wait that seems wrong

stray hemlock
grand badge
#

i need to figure out the y axes

stray hemlock
#

That's what I always do.

grand badge
#

not sure where i stop tho

subtle condor
#

Hey guys, sorry to crash the conversation, but I have a super weird issue and I cannot even come up with an idea what might be causing this XD so I originally made a map and implemented it with the CustomLocations field, but now I changed it by adding my map as an entry to the Locations .json file. Everything worked perfectly, but now my Paths layer is completely messed up. I am unable to add new bushed/trees etc. , but not just that, I am also unable to delete the ones I have placed already. I can literally delete the whole layer, but the bushes and stuff I've placed before still stay there and that makes absolutely zero sense to me XD I can change every other layer perfectly fine, it is just this one layer for some reason. I can also place tiles from the paths file onto another layer and it shows the symbol for the tile, so the tilesheet is definitely being recognized, if that helps

grand badge
#

16x6 16x7

obtuse wigeon
#

The Bushes and many other things are Terrain Features and they don't get removed automatically when you edit the paths layer, there is a mod that allows them to be removed in game, I'll see if I can find it quickly, but if I can't it should be called Terrain Feature Refresh I think?

grand badge
#

x97 y112

obtuse wigeon
stray hemlock
grand badge
#

oh 96

stray hemlock
grand badge
#

thanks

#

ok so if im not wrong this should be the code

subtle condor
grand badge
#

,

{
    "Format": "2.8.0",
    "ConfigSchema": {
        "Version": {"AllowValues": "default, alternate"}
        },
    "Changes": [
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/InfinitySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 97, "Y": 112, "Width": 16, "Height": 16},
            "When": { "Version": "default" },            
        }
    ]
}
#

galaxy is right so ill keep infinity

fervent horizon
#

I am finally making some progress on some item id highlighting and item completions in my vscode extension

obtuse wigeon
subtle condor
grand badge
#

just need to figure out all of this
"UniqueID": "",
"MinimumApiVersion": "",
"UpdateKeys": [ "" ],
"ContentPackFor": {
"UniqueID": ""

stray hemlock
# grand badge , ```json { "Format": "2.8.0", "ConfigSchema": { "Version": {"Al...

Combine them into one:

{
    "Format": "2.8.0",
    "ConfigSchema": {
        "Version": {"AllowValues": "default, alternate"}
        },
    "Changes": [
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/GalaxySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 64, "Y": 0, "Width": 16, "Height": 16},
            "When": { "Version": "default" }
        },
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/InfinitySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 96, "Y": 112, "Width": 16, "Height": 16},
            "When": { "Version": "default" },            
        }
    ]
}

Also, you still had 97.

stray hemlock
#

By the way, you don't have an alternate version yet, do you?

grand badge
#

whats that?

stray hemlock
#
"ConfigSchema": {
        "Version": {"AllowValues": "default, alternate"}
        },
#

Or do you just want to allow people to switch between them?

grand badge
#

ones infinity the other is galaxy

#

so when it gets upgraded you get the 2nd design

stray hemlock
subtle condor
stray hemlock
obtuse wigeon
#

I'm glad it works for you! it's a great asset for any map makers toolbox

stray hemlock
#

Just get rid of that ConfigSchema stuff and the When thingies:

{
    "Format": "2.8.0",
    "Changes": [
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/GalaxySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 64, "Y": 0, "Width": 16, "Height": 16}
        },
        {
            //default
            "Action": "EditImage",
            "Target": "TileSheets/weapons",
            "FromFile": "assets/InfinitySword.png",
            "FromArea": {"X": 0, "Y": 0, "Width": 16, "Height": 16},
            "ToArea": {"X": 96, "Y": 112, "Width": 16, "Height": 16}   
        }
    ]
}
grand badge
#

ty

#

what do i do with the manifest folder?

stray hemlock
#

You're using ContentPatcher, so use the right one.

grand badge
#

is it safe to send it in here for u to double check?

#

oh wait people see it anyway when published

lucid iron
#

For long jsons it's good to send by the json parser

#

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

stray hemlock
grand badge
#

ill do it anyway

lucid iron
#

It will also validate your stuff

grand badge
lucid iron
#

Choose smapi manifest format

stray hemlock
#

It's always kinda good.

grand badge
#

like this?

#

idk what update key is

#

or content pack for

stray hemlock
#

Almost. You are using ContentPatcher, so it should be like this:

"ContentPackFor": {
        "UniqueID": "Pathoschild.ContentPatcher"
    }

ContentPackFor basically says what other mod handles your code and assets. Like, usually you use ContentPatcher to do everything. ContentPatcher is what takes your content.json and your assets and puts them into the game. That's what you specify there.

grand badge
#

thank you

stray hemlock
# grand badge idk what update key is

At startup SMAPI checks your mods for updates. For that it uses UpdateKeys. If you publish it, you can enter the Nexus ID there, then it will check that for updates.

grand badge
#

wait but wont i need it before i publish it?

iron ridge
#

when you go past the very first page on mod submission on nexus it'll have the id in the url

#

and it wont be published

stray hemlock
#

It would look like this:

"UpdateKeys": [ "Nexus:2400" ]
grand badge
#

aj

#

ah

stray hemlock
#

Yeah, like, you can make a mod submission, enter title and description, get the ID and then upload the file and make it public.

grand badge
#

i need smapi also for this right

stray hemlock
#

Yeah. SMAPI is always necessary.

grand badge
#

might as well do the nexus stuff

digital herald
#

Do we have a way to auto pull mods from nexus?

iron ridge
#

you can only automate downloads with premium

stray hemlock
#

Really? I thought you can make an API key.

digital herald
#

Maybe there is a mod that auto package server mods, and let users download it.

uncut viper
#

easy way to (justifiably) anger every mod author you package up and bypass their downloads for

tiny zealot
digital herald
#

Just want to make it easier for users, so if a server updates their mods, the users can quickly get going.

grand badge
#

whats articles?

ornate locust
uncut viper
#

you also would not have licensing permissions to do so for a very large subset of mods

digital herald
#

If that is the case, then nexus api should work then.

tiny zealot
grand badge
#

whats this for im lost

tiny zealot
#

also, stardew doesn't really have a "server" like e.g. minecraft, and the mods that enable such a mode are pretty janky workarounds, if memory serves

hollow root
#

quick question which tilesheet contains pam’s house

tiny zealot
#

ah, that's me missing context then. thanks

digital herald
#

It is probably easier to download from nexus if they allow.

iron ridge
#

in most cases you don't really need to add any

#

(most people don't put docs on nexus anyway)

grand badge
#

thanks

brittle pasture
grand badge
#

ok my mod is published now! im assuming i cant link it here so if anyone wants to download it its on nexus just search yato

uncut viper
#

it can be linked here as long as it contains no nsfw content and no ai generated content (including code)

uncut viper
#

(and doesnt break any other server rules obv)

grand badge
grand badge
uncut viper
#

(id be surprised, i just didnt want to make it sound like every other mod was fair game lol those are just the two most important)

grand badge
#

I finally made a none music mod that works

stray hemlock
#

Yay, congrats.

grand badge
#

Only took uh atleast 14 attempts at modding

digital herald
#

@brittle pasture no im not doing that, im asking if there is a mod to download server mods.

uncut viper
#

stardew does not have the concept of a server mod

digital herald
uncut viper
#

you cannot use your API key to download it for someone else

stray hemlock
uncut viper
#

stardrop will use your premium membership for downloading

digital herald
#

No, the mod should ask for an API key from the one joining the server. So each download will be valid.

uncut viper
#

the user providing the API key will need to have premium

stray hemlock
vernal crest
#

Stardrop does not require premium

#

You just have to download one mod at a time from the mod page

uncut viper
#

thats much much different from stardrop downloading it for you

#

via th api

vernal crest
#

The bulk download directly inside stardrop does require premium

stray hemlock
#

Oh, true. Now I remember how it worked.

lucid mulch
#

the download in mod manager button works without premium, pressing the download button inside stardrop needs premium

grand badge
#

im gonna remake corrin in stardew now

stray hemlock
#

Nexus is annoying. I kinda miss GameBanana.

lucid mulch
#

the tl;dr is non-premium must view the website (and see ads), premium can have the launcher bypass the website and do it directly

obtuse wigeon
#

What SinZ said, source: Currently battling Stardrop source code rn

lucid mulch
#

its also straight up in the swagger documentation for the download endpoint

NOTE: Non-premium members must provide the key and expiry from the .nxm link provided by the website. It is recommended for clients to extract them from the nxm link before sending this request. This ensures that all non-premium members must access the website to download through the API.

grand badge
#

Am I expecting 0 downalods? Yes but am I happy anyway? Yes

digital herald
#

this sounds like a pain dealing with nexus, i may go the github route.

lucid mulch
#

though github route only works for mods that have open permission to allow redistribution from a legal standpoint

digital herald
#

I will probably just build a map from nexus to github, and then returns the github download link.

stray hemlock
uncut viper
#

assuming there is a github download link is a very big assumption

stray hemlock
hard fern
#

Most mods on nexus are only on nexus

iron ridge
#

moddrop isn't automateable realistically

#

you need an account for downloads more than a few mb and they have no documented api

uncut viper
#

and like sinz said, you still might not have redistribution permissions anyway

ornate locust
#

Moddrop also always works like ass for me, but that's unrelated

digital herald
#

going through github would be probably best. Im not redistribute due to me providing the github repo of mods.

lucid mulch
#

you uploading someone elses mod to github is redistributing

digital herald
#

I guess if a mods is not on github, i would just not use it.

uncut viper
#

you will be missing like 99% of mods

iron ridge
#

very few mods use github releases

digital herald
#

No, im sending them the github repo of the maintainer.

uncut viper
#

and 99% might be an understatement

tender bloom
#

Releasing mods on GitHub is annoying

#

I did it for a bit but haven’t kept up iirc

stray hemlock
#

I feel like it's less annoying than on Nexus due to GitHub Actions.

iron ridge
#

sure, but there's not a finished mod builder action yet

tender bloom
#

I don’t use any of that fancy stuff

uncut viper
#

i vastly prefer nexusmods to any other mod distribution platform ive used

tender bloom
#

I know how to push, pull and that’s mostly it

lucid mulch
#

maintaining releases in a monorepo is kinda annoying, and compiling mods that depend on smapi and stardew in github actions isn't trivial

#

its possible and is starting to be done, but there is like <10 mods that actually have it working

hard fern
#

I get lost on GitHub 1/3 of ghe times i use it

lucid mulch
#

there are more that do manual github releases but still annoying

#

particularly when 99.9% of traffic will go to nexus anyway

tender bloom
#

I’m actually fine with GitHub the website but I don’t believe in local GUIs for git

#

But if it’s a lot of clicks sometimes I’m lazy

stray hemlock
#

I mostly just make a release ZIP whenever I push with a commit message that starts with [release].
Haven't really bothered with Nexus, don't want to support them.

digital herald
#

They support unofficial releases link as well.

#

Also help with updating their data as well.

uncut viper
#
  1. that is only C# mods, which is not the majority of mods
  2. that links to repos or forum threads, not release links
#

(and not everything on that list has either listed)

digital herald
#

This is just a starting point. Easier than maintaining one myself.

#

I will probably ask the users if the mod is not on the list, to add data themself. Collect that data and update the SMAPI repo accordingly.

sleek igloo
#

I was trying to edit frog friends to have only one frog on the purchase menu with alternate types as practice for my animal templates but I can't figure out why it isn't working fwefewfj

#

i could swear it's identical to mods that do work

brittle pasture
#

code pls

sleek igloo
#

yeh, on it

#

I didn't want to mess with the original json too much, just make the frogs one animal type with options

#

obv not my mod, but I tried looking at a couple of other mods like Everia's dragons, which DOES work, and I can't find the inconsistency

brittle pasture
#

animal IDs refer to their internal IDs (ie. the key) not their display name

sleek igloo
#

I'm sure its something super obvious SDVpuffersquint

tight rivet
#

Speaking for myself, even though my stuff is MIT..

sleek igloo
#

I did try that, for some reason it didn't work so I tried a few other things

tight rivet
#

if I know people are packagin to a mono-repo, I'm close sourcing real fast. :V

brittle pasture
#

you also need to set the other frogs' purchase price to -1 to make them not show up

sleek igloo
#

this was my latest hell attempt

lucid mulch
sleek igloo
#

ahhhhhhhh

tight rivet
#

I put up with Nexus because I have to

brittle pasture
#

do both of those and post the code again if it still doesnt work

tight rivet
#

doing it elsewhere is <_<

sleek igloo
#

that was something I'd been completely unaware of, thank you selph!

#

hi sak~

tight rivet
#

Tangentially, one day, the nexus mod manager app will be good enough not to random oauth error at me

sleek igloo
#

oh I just use stardrop

#

it's very easy

tight rivet
#

I use it primarily because I also mod cyberpunk

sleek igloo
#

question, is the key this field? "Entries": { "Red-Eyed Tree Frog":

digital herald
tight rivet
#

you.. could just link people to the mods and have htem download it .. manually?

floral comet
#

Hey guys, might be the wrong channel but how do I know if a mod is client or server sided

lucid mulch
#

there isnt a concept of client or server

brittle pasture
#

there's no such concept as client or server side mods

uncut viper
#

there is no concept of a client or server side mod

hard fern
uncut viper
#

stardew modding is not like minecraft modding

hard fern
#

Obligatory: there's no concept of client vs server side mods for stardew

sleek igloo
#

snort

floral comet
#

So can I use a mod whilst in a game with others playing vanilla?

uncut viper
#

the answer depends on the mod

brittle pasture
#

!mpmods

ocean sailBOT
#

You can mod your multiplayer games, but to avoid any hiccups, all players' mod lists need to match. If players have mismatched mods, you will experience bugs in your game - even if the mods were working fine earlier, there is no guarantee that they will stay that way, and strange things may start occurring.

There are few exceptions to this. The main mod page often includes information on whether or not they work in multiplayer.

See the wiki page for more details on how mods work in multiplayer!

Multiplayer Mod Checker is an easy way to determine if host/farmhand mods match.

sleek igloo
#

as long as it's a mod that is mp friendly

hard fern
#

The answer is mo. Because i hit enter too early 😔

sleek igloo
#

you can use most CP mods as long as they're only visual or don't make any weird changes to stuff for everyone

tight rivet
#

generally, I'd say the only mods you can use while the others use vanilla are re-texturing mods that change but do not add in any way. But even then you'll want to check

brittle pasture
#

yeah it very much depends; some aesthetic mods that may seem safe actually are not (most notoriously, mods that use the skin system)

lucid mulch
#

the caveats of what is safe to be different and what isn't isn't trivial to explain

sleek igloo
#

skins are different yeah

hard fern
#

I feel like the only way to know for sure which ones are safe ro mismatch are if you're actually involved in modding yourself and understand how the systems work

uncut viper
#

though "If players have mismatched mods, you will experience bugs in your game" is pretty overly-definitive

floral comet
#

I just wanna use a speed mod lol

sleek igloo
#

like you can use elle's animals pre 1.6 skins in mp but the newest version will go nuts

floral comet
#

But thank you guys for all the info

brittle pasture
#

that is probably safe

#

if you meant farmer speed

brittle pasture
uncut viper
#

i dont think you need to lie to do that lol

brittle pasture
#

kind of like "if you have to ask you can't afford"

uncut viper
#

its literally just wrong

brittle pasture
#

sure but if you add even the slightest hint of ambiguity some people take that as a challenge

uncut viper
#

again, i simply dont think lying about it is the way to go

brittle pasture
#

I get it though, I just think that lying to get ahead in life is awesome /s /lh

uncut viper
#

especially if every time ive seen the command used, its been sandwiched by at least one person saying "but UI mods are probably okay"

sleek igloo
#

eh I wouldn't say its a lie so much as a way to avoid getting bogged down in unnecessary detail

hard fern
#

My favorite part of mp mod mismatch are farm maps. Which do not break things if one person has one and the other doesn't, because it's merely a map replacement. But it does lead to funny things like walking on water

sleek igloo
#

you wouldn't teach first graders that imaginary numbers are a thing

brittle pasture
#

I do remember that command used to be a lot less, erm, definitive, and it was reworked after the nth case of ppl going into mh with only "aesthetics" mods (read - spacecore animation mods)

sleek igloo
#

lmaoooo

uncut viper
#

i dont understand how saying something knowingly incorrect is not lying

#

simply bc you dont think the person reading would understand it if you told the truth

brittle pasture
#

you're welcome to change it, but the support volunteers arrived at that wording in the past for a reason

uncut viper
#

i am not welcome to change it. i dont have permissions

tight rivet
#

The thing is, it's also not entirely incorrect. :V

#

It's overly-simplified.

brittle pasture
#

oh wait i genuinely legitimately forgot sorry lol /gen

sleek igloo
#

it's not that they wouldn't understand, its that when you're learning something new it can be hard to parse the useful info from the "could be useful later but not now"

#

it is for me, at least

brittle pasture
#

you're literally honorary orange in my brain

uncut viper
#

the point is "If you mismatch mods you will experience bugs" is just not true. If you mismatch mods you may experience bugs. Maybe even would likely experience bugs. but thats not what its saying. its giving a blanket statement that you will experience bugs

tiny zealot
#

nobody asked for my two cents, but i agree with button that the command should be correct and not omit information, but i also agree with selph that the support crew tends to choose wordings on commands for Reasons

hard fern
#

A lot of people who play with mods just want to use them and not think about the details. I guess you could have the long explanation in the command, but keep the short answer of "recommended to match all player's mod lists for best results" ?

sleek igloo
#

doesnt the command say there are exceptions right after though

uncut viper
#

then why lead with the false statement at all?

hard fern
#

It doesn't specify the exceptions

tiny zealot
#

and i for one am always telling people that knowing what will break in mp is a gordian knot of deep systems knowledge so the best approach is to just match your danged mods

uncut viper
#

regardless, im not calling for a sudden change to the command or anything, i just made a comment on it, selph replied to it, and i wanted to explain my reasoning for it

#

mostly bc again i literally cant change it, so it really does not matter what i think it should or should not say

stray hemlock
#

It's like saying "Your warranty is now void" on XDA for Android mods even though some manufacturers accept rooted phones if the root wasn't the reason for them breaking.

#

That might be too specific.

uncut viper
#

but i do think a command intended to help shouldnt generally start with the assumption that the person reading it is an idiot who wont understand details

sleek igloo
#

Fair enough, I'm a history major so I immediately take a thesis defense position on things ^^''' sorry if I came off like I was trying to fight, I just didn't really get what the lie was, so to speak

#

I took the whole command as a whole, rather than just the first sentence I think

stray hemlock
#

If players have mismatched mods, you will experience bugs in your game (except if you don't lol)
Fixed it.

sleek igloo
#

lmao

#

sometimes the bugs are features

ornate locust
#

From a tech support standpoint, it's easily easiest to tell a user "You shouldn't do this" than it is to give them all the nuances. I imagine that was the thinking behind the command.

sleek igloo
#

that's my thinking too, tbh

hard fern
#

I feel like this "exceptions" is very vague and also kinda situational because a lot of mods actually don't have any info on multiplayer

uncut viper
#

you can simply say "You shouldn't do this" not "Bad things will certainly happen if you do this"

stray hemlock
sleek igloo
#

I think the wording is probably the result of experience tbh

uncut viper
#

both "You shouldn't do this." and "You will often experience bugs." can be true at once

hard fern
#

The way the command is worded makes it sound like a creepypasta XD

ornate locust
#

That's true, I just imagine that was why someone was overly insistent about it.

brittle pasture
#

I'm not very active in mod help now, but I was around during the time we suggested the command being reworked, and that was the rationale too
anyway, I don't think changing "will" to "most likely will" actually makes a difference to the average experience of a tech support volunteer

hard fern
#

"strange things may start occurring"... Is my computer going to be haunted now

uncut viper
#

well if it wont make a difference then to me that seems like good reason to correct it lol

brittle pasture
#

*positive difference

sleek igloo
#

you could argue the other way for that then

#

this is why philosophers killed themselves lol

stray hemlock
#

Well, if there is no positive nor negative difference, then making it more correct makes autistic people like me happy.

sleek igloo
#

I'm autistic, I prefer it the way it is?

#

AHHHHHH

brittle pasture
stray hemlock
sleek igloo
#

that was a scream of "why are semantics so hard to wrap my hear around"

brittle pasture
#

what the whole convo reminds me of

sleek igloo
#

No worries, it's not like I can speak any more for others!

#

my point, for the whole topic, to be honest, was really just "words don't mean anything more than you expect them to mean and we can argue forever and never reach a conclusion"

stray hemlock
#

If players have mismatched mods, you will experience 99.9% of bugs in your game

sleek igloo
#

what's clearly a lie for one person can just be semantics for someone else

#

and vice versa

#

you will experience All the bugs, every single one

#

including Spiders

hard fern
#

I hope it's worms

sleek igloo
#

I'm partial to lil beetles

stray hemlock
#

If players have mismatched mods, your game will turn into Hollowknight

hard fern
#

Mantids are nice too

drowsy pewter
#

hi hadi

sleek igloo
#

anyway, a lot of nattering on my end, sorry for sparking a debate, Buttons, it wasnt my intention

#

hi 6480!

#

been a while

ornate locust
#

If players have mismatched mods, you might be creating a headache for someone doing tech support if things explode.

sleek igloo
#

that one

stray hemlock
#

If players have mismatched mods, please don't come whining to us if things break or else we will bully you into submission.

sleek igloo
#

"if you have mismatched mods, you will unlock missingno1 under the truck in Vermillion city"

hard fern
#

What kind of button is button.. an elevator button, a shirt button, a controller button...

uncut viper
#

a spider button

hard fern
sleek igloo
#

I feel like I just outed myself as very old

#

yes it was, but mew was intricantly linked to missingno. rumors at some point lol

#

so i mixed em up

#

wow I just made up a word too

#

intricately"

#

not intricantly SDVpuffersweats

stray hemlock
sleek igloo
#

there's also intrinsically I guess

#

ahaaaaaaaaaaaa

#

I wish

hard fern
sleek igloo
#

it's my sister's age and she turned 30 last week

stray hemlock
sleek igloo
#

I graduated college ten years ago

#

in my head I still just got out of high school

#

ok I think I got this json right, time to break shit

digital herald
#

Do you know if there is a docker type environment to develop mod?

brittle pasture
#

docker? SDVpuffersweats
mod developments need a copy of SDV to build against so there's that if that matters

digital herald
#

I do have a docker that can run SDV! I guess it just the matter of adding the development suite on top.

#

I see, so from a C# project, after we compile the code, the output .dll should go to the Mods directory, and from there, the game should load the mods.

brittle pasture
#

is this for your "automatically deploy mods from github" thing

digital herald
#

I never said it was automatically deploy mods from github. It is to show you the list of mismatch mods from the host you connected to.

tiny zealot
digital herald
#

Yep! I read the source code of that, it is quite simple.

#

But it doesnt show to the one who connected to the server.

#

I want a simple table for the one connected to a host, so that they can click on the link to download the mods without having to ask for the list.

tight rivet
#

If players have mismatched mods you will need to trawl reddit, stackoverflow, and an obscure game forum with no posts in the last five years for one hint that may not fix your problem

#

you know, the Gaming Support Experience(TM)

#

and wow I was scrolled up

stray hemlock
#

Don't forget PCGamingWiki.

fervent horizon
#

Got it to populate installed mods items, hopefully I can work out all the quirks and put out an update tomorrow

ivory plume
digital herald
#

I got the SMAPI example working!

stardev_valley  | [05:07:44 DEBUG Hello_World] a pressed W.
stardev_valley  | [05:07:44 DEBUG Hello_World] a pressed D.
stardev_valley  | [05:07:44 DEBUG Hello_World] a pressed S.
stardev_valley  | [05:07:44 DEBUG Hello_World] a pressed A.
stardev_valley  | [05:07:45 DEBUG Hello_World] a pressed S.
stardev_valley  | [05:07:45 DEBUG Hello_World] a pressed A.
digital herald
tender bloom
#

most mod authors i would guess are not familiar with docker

#

given the hell of a time both i and my student had getting docker to...just install and run

#

i would not personally be excited to use it more

#

but maybe for people who use it regularly it behaves better

digital herald
#

I agree that install docker can be rough via Docker Desktop. But once you get it going, pulling a whole development environment and it just run will save a lot of time and effort. You can also go with something likes vagrant, or proxmox.

tender bloom
#

my experience with stardew mods is that through an IDE I dont have any issues installing stuff

#

the docker image we were using saved us from having to compile C so it was more worth it

#

(not all of C, just a C code thing)

digital herald
#

I will use this to develop a few mods, it will get better. This docker also spin up Stardew Valley onto a browser, so you can interact with the game as well.

dusky sail
#

butter compatibility nightmare

lucid iron
#

Buttered

fervent horizon
#

No way to use context tags for what your doing?

tender bloom
#

everyone needs butter

dusky sail
#

(this is all in a dynamic tokens section)

tender bloom
#

except jorts

lucid iron
#

What's the usecase here why is butter being spawned I'm scared

tender bloom
#

it looks like it's so you can swap out your butters

dusky sail
fervent horizon
#

Ah that makes sense

dusky sail
#

spawn is just shorthand for "create a new butter item" dont worry im not making like. butter frogs

#

i dont want to make new butter unless i have to.... thus the nightmare

ornate locust
#

BUTTER STRIKES AGAIN

tender bloom
#

butter is just too fun to add

dusky sail
#

CA can butter be part of 1.17 please thanks. end my nightmare

ornate locust
#

I think that is the only way the butter nightmare would remotely end

hard fern
#

Ok idk how cinematic tuened into cube magic

heavy lion
#

heya Modders.
Not sure if this belongs in Tech Support, but I'm trying to figure out how to adjust prices of items added by different mods using the CustomValues.json from Better Balance.

It's because another mod is conflicting it. I flubbed my last test lol.

humble timber
#

f

#

wait this isnt mfers chat im not cheetoing rn

tight rivet
#

proxmox is.. interesting.

#

(it's the environment we use in class)

timid summit
#

hi! someone can send me please a template zip file, that has an npc creation, with visual and dialogue?

whole raptor
#

!npc

ocean sailBOT
#
Creating a Custom NPC

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

timid summit
#

its almost helping, but thank you 😅 . lang hungary

ornate locust
#

I don't think a template like you are asking for exists, especially since there are multiple different ways to set up things like dialog...

#

So those resources listed on the command are what you need

timid summit
#

I looked through it, but there are parts of it that I won't understand. But thank you anyway. I'll try to put something else together.

nocturne ferry
#

hii, can anyone help me?

#

im trying to mod a recipe change for heavy tapper, so that I can usee 1 normal tapper + 1 radioactive bar, but since crafting itens dont usually have ids, i dont know what to do here

hard fern
#

Like show in your json

#

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

nocturne ferry
#

english is not my first language, sorry for any mistakes lol

hard fern
nocturne ferry
#

yeah sorry

hard fern
#

I am immediately a bit confused

nocturne ferry
#

i was using a template, that's why the "create new big chest" there, actually forgot to change

nocturne ferry
hard fern
#

Since you're editing a vanilla recipe you don't need any mod id anything

nocturne ferry
hard fern
#

hm wait what

nocturne ferry
#

i kinda got it

#

but

#

the item is wrong

hard fern
nocturne ferry
#

and i don't know what i can do to add a tapper

hard fern
#

it's taking the regular object it

#

*id

nocturne ferry
#

ohh

#

let me try it

hard fern
#

should be (BC)<whatever the tapper id is>

#

i think?

nocturne ferry
#

it workedd

#

thankyouu

brittle pasture
nocturne ferry
#

ohh

#

i kinda knew about it

#

but

#

i though big craftable

#

was like

#

heavy furnace, big chest

hard fern
#

those are also big craftables

brittle pasture
#

if it's 2 tiles tall and placeable it's a BC

hard fern
#

so things like the braziers, kegs, furnaces, lamps...

brittle pasture
#

clarification: 1x2 objects

#

(though some furniture can also be 1x2 and they arent BCs)

nocturne ferry
#

that actually help a lot

#

thanks guyss

heavy pewter
hallow prism
#

what are the if Esca.EMP_IS_PLAYER_FREE ## formats?

#

i am not familiar with those, are they specific to esca's triggers?

steel musk
#

.

heavy pewter
#

Both Health and Stamina regen works, it's just the buff that doesn't

hallow prism
#

ok i am not familiar with this one since i never used it, i tend to put conditions like that in conditions field

#

my suggestion when i have a thing that isn't working like i want and i don't know why is to simplify it as much as possible

#

what you can try is : keep a backup of your file somewhere, and try to give your buff with a simple trigger action (aka just AddBuff {{ModId}}_HomeSteadHaste )

#

if it works this way you know the issue is in the current trigger action set up, if it still doesn't, you have a buff issue

#

i'm not sure why your buff duration is -2

#

this may be invalid

hard fern
#

i think -2 is to make it last the whole day?

hallow prism
#

ah yes this is a weird case

#

then carry on 😄

#

(usually -1 is used for specific behaviour, but -2 i didn't see yet)

heavy pewter
hard fern
#

(sorry im not a buffs expert i just know the basics, i can't relly help)

hallow prism
#

basically what i suggest is to have things set in a way that will allow you to see what is failing (the buff, the action, the combo)

#

right now you don't know what's failing and netheir do i

#

(but i have to go anyway)

royal stump
# heavy pewter Both Health and Stamina regen works, it's just the buff that doesn't

you don't seem to have "MarkActionApplied": false for the buff trigger, so it would probably only happen once, and that would be on the title screen due to the trigger and lack of conditions
for that and lag reasons, the buff should probably be set to "Trigger": "LocationChanged", then use if LOCATION_NAME Here Farm ## etc
(or possibly LOCATION_NAME Target Farm, I forget which one works during warps)

#

* technically, I guess "MarkActionApplied": true requires a player to exist, so it'd keep happening until you load a game and then stop

heavy pewter
#

Yeah, it's the missing MarkActionApplied that caused it, I always seem to forgot that lmao, seems like I'm not learning from own mistakes huh. Anyways, I apologize for bothering you guys

stray hemlock
glacial ember
# heavy pewter Thanks

anyone who wants to play grand gangster war game it's a new game i'm getting so bored while playing it alone

drowsy pewter
#

nah

west thunder
#

Regarding this mod.

#

Is there a way to make the front-facing sprites of the entity include the extra-long neck?

#

Or is it reaching the horse sprite limit?

#

This is the spritesheet, by the way.

#

The ostrich only appears how it does in the very first sprite, with half it's neck chopped off.

hard fern
west thunder
#

I was under the assumption the farmer would just... sit on top of the neck?

#

Though maybe if I were to alter the very last sprite?

hard fern
#

Then you can say definitely that it does or doesn't happen

hard fern
#

Cuz if like this were the case, what would happen for all the other sprites

#

In that same row

#

Those are the running frames

dire kestrel
#

where does uiis source this icon?

hard fern
dire kestrel
hard fern
#

Hnm

#

One moment

hard fern
#

Or is that what you're trying to figure out

dire kestrel
#

that + wanting to replace it myself

hard fern
heavy pewter
gentle rose
heavy pewter
#

I should have read it first lmao, thanks for the response

stray hemlock
#

Should have waited until #999.

blissful panther
#

Sadly, cool new features are only allowed on cool PR numbers. /j

#

This is a very cool idea, though!

stray hemlock
#

Yay. I'm glad I'm getting good feedback. This might be the first pull request I ever made that gets accepted.

proud wyvern
#

Do you have an example use case? Like, one that makes sense for some mod?

blissful panther
proud wyvern
#

Sounds very… specific
Would a ReplaceThatTakesAlphaIntoConsideration (name TBD) have more merit?

#

Or is that what this does

#

Hm nevermind, that wouldn’t work for making stuff transparent

drowsy pewter
#

ReplaceThatTakesSubtractiveAlphaIntoConsideration

proud wyvern
#

Tbh something like what I’m talking about would work… if there was more context. Like, if you could declare a specific ARGB value to mean „ignore this pixel”, and everything else would be replaced

stray hemlock
# proud wyvern Tbh something like what I’m talking about would work… if there was more context....

I thought about that, but then you'd need to specify the ARGB value, and since no other PatchMode works like that it would be a much bigger change that would require changing the methods specifically for that PatchMode, and in ContentPatcher there would be an extra field that only gets used for that PatchMode, so I decided the new mode should have the same interface as the others and when in doubt you can first Mask and then Replace or Overlay.

golden basin
#

is there a way to change who builds your buildings ? like to a custom npc maybe?

#

I was really wanting to do that

mellow laurel
# dire kestrel

it uses the same icon as the blacksmith profession, if that helps (figured it out by looking at vanilla tweaks)

dire kestrel
#

thank you! SDVpufferheart

#

(x32 y672 cursors)

tulip steeple
#

hello i just wanted to add some item into the item bag from Ridgeside Village mod, but the item name are "Violet Devil's Claw",
now the problem AFAIK quote are use in JSON file for single character or something like that and i google it said to add a backslash before the quote but now its red, now im not sure which one is correct. oh btw im didnt try to run the game yet even though i know if i did it will either tell me its working or not

cedar turtle
#

Backslash usually indicates a comment.
That said, I don't know enough about tech but at least in Linux, when you have quotes you don't need backslash, but this might be different.
Where on Google did you find that out of curiosity?

cedar turtle
#

Uh.. That's the genAI explanation.
I wouldn't trust those

shut edge
#

Pretty sure the double quotes contain that and thus it's fine?

cedar turtle
#

That's what I think too.
Usually, when I type something in the Linux terminal I don't need to have any special characters when it's in quotes entirely

iron ridge
#

you'd need to backslash if it was a ", you don't need one in this case when it's a '

cedar turtle
#

' is not quote
" is quote

iron ridge
golden basin
#

how many dependcies is too many

iron ridge
#

depends if they're common ones or niche ones

cedar turtle
#

Was about to say "depends on the dependency"

spiral lion
#

is this riddle to hard?
**Where the sun does not reach, stands the small keeper who once threatened me with bleach.

Friends we then became, and thus I brought them into this game.

Their duty is to hide the strange box, protected by my love for the brown little locks.

To break the vow, follow this how: Bring the small nut that bears her name, and the keeper will relinquish his claim.**

shut edge
#

Yeah I'm more bothered by what dependandacy it is lol

golden basin
#

meep, spacecore, cenetral station, poohcore,lovestockbazaar,unlockable bundles,extra animal config and my three arcanian based mods....

#

its alot of depends and i feel weird about it

shut edge
#

Those are pretty reasonable ones imo

#

Maybe you could make some features optional?

cedar turtle
#

-# three arcanian? I know crops and I know animals

golden basin
#

the guide book

cedar turtle
#

Oh

golden basin
#

it has my tilesheets

#

i could get rid of meep

cedar turtle
#

I always saw this more as a funny (affectionate) /interesting way to go on about your framework/tilesheet

Anyhow. Do continue

golden basin
#

i really wanna make a custom builder too but i already have a insane amount of depends jfsdghsdfjgfx

hallow prism
#

i would say its a bit confusing without context

#

can be very simple if you added a dwarf named hazelnut however, in which case it's more obvious 😄

spiral lion
#

hahaha okay great, my NPCs name is hazel so i think it will be solvable 🙂 Thank you!!

shut edge
stray hemlock
spiral lion
#

oh i understand 🙂

lucid iron
#

It's also helpful to think about which features you use are 100% hard required why use this mod without and which features are nice to have

#

In the nice to have case they could be optional deps

golden basin
#

can i dm you

lucid iron
#

Usually i prefer to talk about stuff in here

golden basin
#

okay thats fine

#

ok ok so I have this elder tree building that spawns spirits on the farm. and i was wanting to have the building spawn if you plant for of the regular tree seeds in a square ? is that possible with c sharp?

#

like plant seeds in a 2 by 2 and then in like three days poof elder tree

lucid iron
#

Oh u want a giant crop logic building

golden basin
#

yes!

lucid iron
#

Possible ofc, but idk where I'd put this feature wise blobcatgooglyblep

golden basin
#

i already have all the assets i need and i have a csharp compoent to work with? do you think youd mind helping with it

#

id credit you and give you a porition of my mod dp

lucid iron
#

That part doesn't matter to me but I am currently busy trying to finish some other mods blobcatgooglyblep

golden basin
#

ahhhh okay i understand

lucid iron
#

Perhaps ask me again in 3 weeks

golden basin
#

i might not remember but ill try

lucid iron
#

I would prefer to make things as framework features though, especially if something sounds useful to more than 1 person

golden basin
#

does it sound useful to others? : O

lucid iron
#

But i also don't have any framework of mine where this fits

golden basin
#

maybe i can talk decidedly human into adding it to meep? it could fit there

#

but hes very busy usually

lucid iron
#

The nerdsnipe cycle continues Dokkan

golden basin
#

nerdsnipe?

#

i wish i knew csharp

#

its so hard though i cant wrap my head around it

lucid iron
#

But yeah u just caught me at terrible time lol i already got nerdsniped for something last week

lucid iron
drowsy pewter
#

guilty

woeful lintel
#

Would SMAPI load the "sub-pack" in this situation?

Mods
|-- MyPack
|   |-- assets...
|   |-- content.json
|   |-- manifest.json
|   |-- MySubPack
|   |   |-- assets...
|   |   |-- content.json
|   |   |-- manifest.json
uncut viper
#

no

lucid iron
#

are you hoping to implement CP style includes

woeful lintel
#

no, I'm planning on making FF automatically convert FF2 packs to FF3 and in some cases it involves creating a CP Pack on the side, so I wondered if I could get away with adding it to the pack's folder or if I'll have to put it on folder up.

spiral lion
#

Feedback? Which is better?
Anyone good with words that have an idea?

ALTERNATIV 1:
Where the sun does not reach, stands the small keeper who once threatened me with bleach.
Friends we then became, and thus I brought them into this game.
Their duty is to hide the strange box, protected by my love for the brown little locks.
To break the vow, follow this how: Bring the small nut that bears her name, and the keeper will relinquish his claim.


ALTERNATIV 2:
On you way deeper, you find the small keeper.
I gave them some change, to keep my secret out of range.
The reason is to shield the child, whose brown hair makes my heart run wild.
The strange box is safe and sound, Until the needed key is found.
So, bring the small nut that bears her name, and the keeper will relinquish his claim.

karmic gust
#

I think version 1 is better. The, "brown hair makes my heart run wild," line comes across differently than I think is intended

spiral lion
#

oh...

#

yes

heavy iron
#

Can someone help me please? I’m tying to add mods onto my steam deck. I’ve done everything just as shown. All files are extracted into my mods folder and smapi successfully installed, however the game isn’t launching with the mods

iron ridge
#

!mh

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

heavy iron
# iron ridge !mh

Idk how to get my smapi log on the steam deck like that, I also don’t think smapi is even launching to give a log

#

I don’t see smapi loading whatsoever, but it says it installed successfully

stray hemlock
#

Oh, you are asking about new feedback. Sorry.

woeful lintel
lucid iron
stray hemlock
heavy pewter
spiral lion
#

Yeah, i am not very used to this kind of writing hehe

#

On you way deeper, you find the small keeper.
I gave them some change, to keep my secret out of range.
The reason is to shield the kid, so her future won´t be mid.
The strange box is safe and sound, until the needed key is found.
So, bring the small nut that bears her name, and the keeper will relinquish his claim.

stray hemlock
#

I dislike the word "nut" in that context. It sounds "harder" than the others. But it's almost impossible to find an alternative...

spiral lion
#

Yeah, i think the riddle will be to hard to solve without the nut clue

#

Small seed?

stray hemlock
#

It's a nitpick nutpick. So ignore that.

spiral lion
#

hahah, thank u soo much for the feedback

stray hemlock
#

I made this, but it might sound too ancient:

Inside the womb of rock and stone
The keeper rests, awaiting
The box, fully stocked,
But so tightly locked,
The nut you seek; her name is known
To find the claim he's gating.

spiral lion
#

I like it, but it might be to ancient as you said ❤️

stray hemlock
#

Rhymes are hard. I'm also not a native speaker. I once tried to translate my favorite peom into English and had to give up halfway.

#

Try this:

spiral lion
#

ouu, nice, i will try it! 🙂
I feel like it is hard enough trying to write a poem in my language, even worse in english

stray hemlock
#

What is your language, if I may ask?

spiral lion
#

swedish, yours?

stray hemlock
#

German, so kinda close geographically.

spiral lion
#

Yeah!

stray hemlock
#

A limerick might work regarding rhythm and scheme:

There was a young rustic named Mallory,
who drew but a very small salary.
When he went to the show,
his purse made him go
to a seat in the uppermost gallery.

dusky sail
#

I gave rewriting the poem an attempt, if you'd like me to share it (if not it was still a fun writing exercise)

stray hemlock
#

Inside the womb of rock and stone
The keeper waits, ever alone
Him to bring the nut
Her name's a clue somewhat
His claim will then be your own

#

This is fun.

rotund egret
#

Any idea why this piece of code doesn't work?

    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetFields": ["FlashShifter.StardewValleyExpandedCP_PurpleJunimoVendor", "Items"],
            "Entries": {
                "Zekushi.BetterDewdropBerriesCP_Dewdrop_Sapling": {
                    "Id": "Zekushi.BetterDewdropBerriesCP_Dewdrop_Sapling",
                    "ItemId": "Zekushi.BetterDewdropBerriesCP_Dewdrop_Sapling",
                    "Price": 10000,
                    "AvailableStock": 5,
                    "Condition": "PLAYER_HAS_SEEN_EVENT Any 908072"
                }
            }
        }
    ]
}```
lucid iron
#

Looks like you want new item to other mod's shop?

rotund egret
#

Yep.

lucid iron
#

Use debug gq <what you got there in Condition>