#making-mods-general

1 messages · Page 573 of 1

torpid sparrow
#

and did u maybe delete mountain

#

weird

#

can i see the log im so curious

opal glen
#
"Target": "Data/Locations",
"Entries": {
    "Mountain": {
        "FishAreas": {
            "Lake": {
                "DisplayName": null,
                "Position": null,
                "CrabPotFishTypes": [
                    "freshwater",
                    "pond"
                ],
                "CrabPotJunkChance": 0.2
            }
        }
    },```
#

Just a sample of what I'm doing

verbal glacier
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

opal glen
#

to be fair I think it can't recognize any of the areas I'm referencing, it's just that the mountain was creating the game breaking errors

verbal glacier
#

can you share the error log as well?

opal glen
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 13 C# mods and 2 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

verbal glacier
brittle pasture
#

what are you trying to do exactly?

#

if you just want to insert one entry into Mountain's FishAreas list use TargetField

brittle pasture
#

alternatively just switching "Entries" to "Fields" would make your code work, but it won't be compatible with any mods that do the same thing

opal glen
#

I'm trying to add another crab pot fish type

#

I have no idea if that will even work, but I'm trying to get it to the point where I can even load the mod even if it's ineffective

brittle pasture
#
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": ["Mountain", "FishAreas"],
"Entries": {
  "Default": {
    "CrabPotFishTypes": [
      "freshwater",
      "pond"
    ],
    "CrabPotJunkChance": 0.2
  }
},
#

this should do what you want if it doesn't fixing it is an exercise left to the reader

opal glen
#

I'm trying to change more locations than just the mountain. Not sure what's the least clunky way to do a similar edit for all of them

brittle pasture
#

there's local tokens which eliminate some repetition

#

ngl I'd just put my fish into freshwater

opal glen
#

I might end up just doing that. I mostly want to see if it works or not! The mod overall is a large and ambitious project for me and I'm learning a lot in the process of making it

#

so even if I go in a different direction, I'll still have learned something

marsh reef
#

just a yes or no so i dont gotta look through the whole wiki to figure it out, you can use AT on the farmhouse yes?

verbal glacier
#

yes

marsh reef
#

can the farmhouse be classified differently between upgrades? or for things i want to all be the same i just need all them to have the same first 2?

opal glen
#

I did successfully get my game to load with my mod, but now I've got levitating ducklings. I'm pretty sure I know the cause, I just think it's funny

opal glen
#

nope, just ducklings that will grow into long-necked ducks that I made taller than the usual sprite

marsh reef
#

mmmm pretty sure only evil things float

twilit quest
#

@brittle pasture A one day upgrade is also now confirmed to work in Custom Builders. SDVpufferparty

tranquil olive
tiny zealot
#

i usually try to use a dynamic token or some other way to avoid having two copies of the same block. but what you have is fine i think

tranquil olive
#

I tried a dynamic token at first, but I'm pretty sure I was setting it up wrong ^^' I wasn't sure how to have it so it could tell if it was an Evelyn location vs. Leah's

twilit quest
#

@brittle pasture I'm wondering if there is a way to limit what appears in the Custom Builder Dialogue menu based on specific criteria.
Currently the menu has two items: Add Broken version of Coop and Upgrade broken version of coop to Coop. If the Upgrade option is chosen when there is no Broken version of the Coop on the farm map, the game throws a "divide by zero" error. Is there a way to force a check for a particular builder to see if they have any building options, and not show their dialogue option if there are none? I can send or DM the specific code I'm using if you want.

tiny zealot
#

an Action: Include gated by a check is my other standby. i tend to use that one if the condition requires a bunch of changes to patches (like with SVE, typically)

civic moat
#

Any of YALL take commissions/mod ideas?

twilit quest
civic moat
#

@worldly mirage

tiny zealot
#

best options if you want something made are ^ check that list or try to nerdsnipe someone in here

civic moat
#

Ty King

worldly mirage
cedar shell
#

Hello, I am working on a custom farm map for myself on the riverlands, however I broke all the walkways and can't seem to find how to fix this issue?

latent mauve
#

So, I've been messing around with creating farmhouse skins and I am noticing that the chimney smoke isn't moving as intended, even if I change the chimney value of the building in the skin Metadata field-- anyone know why this might behave oddly?

It is worth noting that:

  • Before changing skins at all, the smoke appears in the correct place.
  • Changing to a skin with the chimney in the same space results in the smoke being off by about one tile even if no chimney position value is set.
  • Once the skin is changed, even if you revert to the base/vanilla skin, the chimney smoke is incorrectly placed.
#

Changing the chimney value in the skin also appeared to do nothing.

uncut viper
#

(For any mod authors who might have an interest in it: the latest version of Festival Nudge now lets you specify backup/secondary/tertiary/as-many-as-you-want-iary locations for your NPC to be moved to in case it overlaps with someone else.)

cedar shell
brittle pasture
twilit quest
twilit quest
twilit quest
cedar shell
twilit quest
cedar shell
#

I think so

latent mauve
#

the water tiles under the bridge may be part of it if you have changed those at all

twilit quest
#

@cedar shell The reason why the bridges on this map are passable, even though they are on the building layer, is because they have special tile data baked in. So, for example, if you open the original Farm_Fishing.tmx in Tiled, go to "Tilesets" in the lower right corner, click on the third Tileset tab (untitled tile sheet), and click on one of the bridge tiles (like the one next to the tower halfway down on the right side), you will see that it has a Custom Property of "Passable: T". Hang on a second and I'll get you a screenshot.

#

@cedar shell

#

Those are from the right and left sides of the Tiled screen

grim latch
#

is there any SDV mod about Diablo?

brittle pasture
#

so you can do something like "if no coop on farm don't show the entry"

twilit quest
#

If your Tileset doesn't have that "Passable" property assigned to those tiles, it won't work. In order to have that property, you either need to add it yourself, or start with a map that already has them in it.

twilit quest
cedar shell
#

ah okay, I see what happened now, my tilesheets were broken and in fixing them I lost that so I need to readd. Thank you so much!

brittle pasture
# twilit quest Yes. Do you want to see the code?

that can be useful, but it's not strictly necessary
basically the DialogueEntryData model will have one more field named Condition which can accept any GSQ; if the GSQ's false the entry doesn't show up

twilit quest
# cedar shell ah okay, I see what happened now, my tilesheets were broken and in fixing them I...

Allow me to recommend the really excellent tool by Irocender that allows you to fix Stardew tilesheets without having them in the same folder: https://www.nexusmods.com/stardewvalley/mods/40281

Nexus Mods :: Stardew Valley

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 f

twilit quest
# cedar shell ah okay, I see what happened now, my tilesheets were broken and in fixing them I...

Also, if you have to go and add the Passable property to a bunch of tiles, you may just want to start with a fresh version of the Riverlands map so you don't have to do that. ^_^; Also, there is another way to selectively add Passability by adding it as independent TileData (like those squares you see that say "TileData"). This allows you to add a property without adding it to EVERY instance of that tile on the map, instead adding it only to the selected area. Hit me up if you need more explanation.

brittle pasture
#

@twilit quest try this; it has the new Condition field so you can set your builder dialogue entry's condition to "if have coop"

twilit quest
brittle pasture
#

yeah you have to
I can try an alt fix as well (not yet in the version above); it would involve the carpenter menu showing a dummy entry that says "no building available" if there's no other buildings

#

it's the most straightforward and forward compatible fix that doesn't involve me reimplementing much of the vanilla code

twilit quest
#

@brittle pasture I think this syntax is correct:
"Condition": "BUILDINGS_CONSTRUCTED Farm BrokenCoop",
Gonna go test it now

#

@brittle pasture Looks like it's working!

brittle pasture
#

nice! meanwhile I'm still brainstorming the other fix and every solution so far makes me want to cry blood why does a blueprint entry store its own index why is this info not part of the carpenter menu

twilit quest
brittle pasture
#

yeah I think it's likely you'll know whether I gave up by Nexus release time

twilit quest
twilit quest
twilit quest
cedar shell
twilit quest
#

Then choose the Rectangle tool:

#

Select the area you want to apply the property to. I used to do this square by square, but recently I've been doing it by area and so far it's worked fine.

#

Once you have the area created, a very, VERY important step is to name it TileData. It won't work unless it's named TileData:

#

Then go to the bottom left where it says "Add Property" and click the Plus sign:

#

This will make a new custom property that will apply to the selection. You can click the dropdown menu next to it to choose the kind of property you want. Most of Stardew uses "string", even for True/False options. "Bool" would probably work find for this, too.

#

Under Property Name, type "Passable"

#

Then fill in the box with "T":

#

This selected TileData on the Buildings Object Layer is now marked Passable, which means that even though it should technically be blocked (since there are items on the Buildings layer) you can walk right over it. This will let you walk through things regardless of what you put on the Buildings Layer, so be careful where you apply it.

#

P.S. Note how the area now has "TileData" on it. If it doesn't, then double check the name. Remember, without being named "TileData", it will not work:

#

@cedar shell I'm heading to bed shortly, but if you have any further questions, feel free to DM me and I'll respond in the morning. ^_^

cedar shell
#

Thank you!!!!

marsh reef
#

farmhouse editing, HumanDoor, can it be two tiles? would i do [{x1,y1},{x2.y2}]?

brave fable
#

nope, HumanDoor and AnimalDoor can only be a single point each, no decimal values and no multiple tiles

marsh reef
#

AT variations while having multiple textures with the variations, would that allow different colors of different styles?

raw sorrel
#

Excuse me, I encountered some issues when creating a high-definition avatar replacement module for a content package.
I don't know how to use a 500x500 avatar in the game. Because there are many custom requirements (such as different seasons and events using different avatars), this feature may not be able to use existing mod.

#

Does anyone know how to implement this function? Thank you very much

merry rampart
#

Is it possible to be able to put animals into a custom building without first requiring construction of a coop or barn?

merry rampart
#

Well, after some digging it looks like the answer is no. Which sucks because that defeats the entire point of my mod...

void aspen
uncut viper
#

When they're unpacked or exported they get turned into individual tiles, but making rectangles with them is also acceptable.

void aspen
#

Oh wow, that's neat to know

#

All this time I copy pasted the same tile data to cover multiple tiles

main sky
#

is it possible to use harmony patch a harmony patch method in other mods?

uncut viper
#

Do you mean to patch code in another mod's dll? Yeah, you can do that, you just need to make sure you get the full qualified name of what you wanna patch

#

You don't have to do typeof(Thing) to tell Harmony what to patch, there are overloads that accept strings. Or you can find the type with AccessTools.GetType() or something

main sky
#

i mean i want to patch another author's patches. for example, an author use postfix to change a method's return value but i want to keep the value, can i use a postfix to change the author's postfix?

uncut viper
#

Yeah, thats the same as what I just described

#

A patch is just a method after all

#

You would just be targeting the method they themselves gave to Harmony

#

You could alternatively just make your own postfix whose priority makes it go just before theirs, store the value before they change it, and then restore it in a different postfix that goes after theirs

main sky
#

ok thx

raw sorrel
#

If I need to achieve my own HD avatar is to use Harmony huh?

#

Or maybe there's another way?

fossil osprey
#

To make a portrait bigger than 64x64? You can use the Portraiture framework

icy pond
#

I have a couple of questions.
#1 is this valid condition argument syntax:

"Condition": "SYNCED_RANDOM day key {{customtoken}} @addDailyLuck",

#2 Is it possible to use math to change the {{customtoken}} like say {{Hearts:Alex}} × 0.05 = {{customtoken}}

timber pilot
#

is this area used for anything in game? everywhere else I could put the buiding is busy or an npc path

fossil osprey
#

In vanilla there is nothing iirc

timber pilot
#

ok great

brave fable
#

harvey's hot air balloon cutscene narrowly misses it

fossil osprey
#

Oh yeah it's true it's around here

iron ridge
#

isnt there a special order box there too

timber pilot
#

its on the platform

iron ridge
#

ah

fossil osprey
#

There is also a unique (?) artifact on the tiledata, but as long as you don't block it it's ok

timber pilot
#

that is actually such a stupid place for the building I'm trying to put since it's blocked out for the first few weeks

fossil osprey
#

Well SVE's Susan is in the railroad area too, and it's just in the lore

timber pilot
#

I'm trying to put a post office buiding

fossil osprey
#

Like "oh no Susan is blocked on the other side, but Joja is mean and doesn't want to clear the road faster >:("

#

You can 100% do something like that

hallow prism
#

there isn't a lot of options to put stuff in the main area

timber pilot
#

I should probably make a new area then

#

does this lead to anything?

iron ridge
#

if thats the top of town theres an unlockable shortcut

verbal glacier
#

I believe that is a shortcut

timber pilot
#

I'll have to terraform ig

iron ridge
#

[[Community_Upgrade]]

dark bridge
#

Hi, I am very new to this and am barely passable at coding. I am making a mod where I pull data about seeds - including fruit trees and bush saplings (both vanilla and modded for all). I have it pulling data for the seeds and fruit trees but am having issues getting data on custom bushes (specifically testing with cornucopia more crops which uses custom bush). I have successfully loaded the custom bush api but it seems to only give me data about the bush terrain feature, not the bush sapling. I can get the bush sapling ID, which can point to the bush ID, but then I do not seem to be able to get further with getting data about the bush via the api. Is there some way to make the connection or otherwise get that data? Thank you!

raw sorrel
fossil osprey
swift falcon
#

Maybe a minecart from immersive minecarts too

ornate drift
#

after i finish my bear project, i may consider making a NPC about a certain SquarePants

raw sorrel
#

Excuse me, I'm facing another problem here now. I hope to switch the HD protraits according to the season, but it seems that I can't write the conditions for the HD protraits.

devout otter
stuck marlin
#

Hello, I'm trying to add a translation to my mod, and I don't know how to translate a section for the configs, using "Config.Name-of-the-section.section" isn't working, does anyone know what do i have to do for it to translate the "Section"?

torpid sparrow
verbal glacier
#

section doesn't have to be translated

stuck marlin
torpid sparrow
verbal glacier
#

that's what you'd put in i18n default

verbal glacier
torpid sparrow
#

i thought it said Config.General.section

#

is there a default json i missed

verbal glacier
#

config.section.<section>.name this is from pathos' github

torpid sparrow
#

ohh i thought u were saying thats what they did put

stuck marlin
torpid sparrow
#

"that's what you put" two ways xd

verbal glacier
#

whooops my bad

#

forgot the 'd

torpid sparrow
#

language is a fun thing

verbal glacier
#

non native is my excuse

verbal glacier
void aspen
#

I can only do english and russian languages cuz I know them and I don't trust google translator with any other language arr

verbal glacier
#

you might have to use it if people comment in other languages on your mods

void aspen
#

someone asked me to add the i18n under one of my mods but I haven't done anything similar to this yet
I have an idea of how it works but I'm not smart enough to add it till I reread the documentation million times

hard fern
#

Can slap it into the i18n converter

#

It'll do it for you

void aspen
#

I see

#

how does it work generally?

verbal glacier
#

the converter or i18n?

torpid sparrow
#

replaces ur text with {{i18n: token name}}

#

but leaves the rest of the code

#

gives u a copy to put into ur regular json, and a copy to put into ur default json

verbal glacier
void aspen
#

Thats the thing right

torpid sparrow
#

i love the i18nifier

#

love u nomori

void aspen
#

Do I understand it right that both lines are technically the same?

"Query: '{{spouse}}' IN ('Abigail', 'Leah', 'Maru')": true
"Query: '{{spouse}}' NOT IN ('Abigail', 'Leah', 'Maru')": false
gentle rose
#

not exactly, how they handle modded spouses is different I think

#

wait no

#

yeah they're the same SDVpuffersquee

calm nebula
#

Those are the same

#

What do u need query for?

void aspen
#

okay yay tyy

calm nebula
#

I ask b/c we may he able tk avoid it

void aspen
#

I know sometimes other ways are better than query

merry river
#

I have some tiles on a custom map that are still passable despite being on a buildings layer. What are some reasons why that might still be the case? Or could the reason be because I forgot to add the matching objects layers (I just noticed lol)?

void aspen
#

just wanted be sure I got the logic right

calm nebula
brave fable
#

only Buildings has collisions, not 'a' buildings layer

void aspen
brave fable
#

all numbered layers are purely cosmetic

merry river
void aspen
#

Also I forgot we can use -1 layers too

gentle rose
#

put invisible tiles in the same place on the buildings layer

#

same visual effect and they work

merry river
#

so even if i add 'draw: buildings' it doesn't really help?

gentle rose
#

or you can use passable:false in tile data

#

or however you do that one

brave fable
void aspen
#

what if my tmx Im gonna overlay with has layers which map I plan to edit doesnt have, I wonder

merry river
gentle rose
#

(I am also not familiar with that but I figured that was me being ignorant of content stuff as always)

void aspen
#

is it gonna create them or only pass the layers they share

brave fable
#

you can use Passable T on the Back layer to mark it impassable

merry river
void aspen
merry river
void aspen
#

Passable T works as intended on Buildings but on Back its the opposite

#

I wonder if other layers support Passable properties

merry river
#

i'll try adding invisible tiles then or else my entire map will look botched

brave fable
#

if 'as intended' is 'invert the passable rule for this layer' then it's working as intended

void aspen
#

fair enough

#

still pretty confusing when you first meet it

brave fable
#

i avoid invisible buildings tiles wherever possible to reduce misplaced invisible tile issues down the line, i'd rather break my sprites into different layers

#

if i'm using invisible tiles it's usually going to be from a specific tile in the spritesheet that's hot pink in the editor until i hide the layer and export

#

makes it easier to reveal them later (visualising collisions, finding misplaced tiles)

void aspen
#

Sometimes when I study vanilla maps I start to think that CA itself has no idea how this whole map thing works and also just play with layers to make it work

#

cuz yeah sometimes its not avoidable

brave fable
#

he did also have to use tIDE instead of Tiled which gives him a free pass over doing whatever bullshit to make things work in the absence of an elegant solution

void aspen
#

True

calm nebula
#

When in doubt put a bush on it

brave fable
#

solution flawed, need reset terrain features

#

non-trivial number of 'remove bush at this tile' entries in savefixes.cs

hard fern
#

Terrifying

merry river
#

the issue was that the fences aren't fencing

void aspen
#

Oh I wish there was a way to create a collision on the tiles edges

#

which isnt one tile wide

merry river
#

same........

brave fable
#

this is a very one-tile-wide sort of game

void aspen
#

yah

verbal glacier
#

horse

merry river
#

truly

tiny zealot
merry river
#

yeah, this is what I was trying to say in my amateurish lingo. passable and I have a history SDVpufferknife

midnight jetty
#

Hello, first time modder here. I've been attempting to create a dialogue expansion mod (mostly for my personal use) until I've run into an issue when using the $q and $r commands. For some reason, while the dialogue appears in game, I get stuck on the option selection screen. Selecting any option would cause a wall of red text to appear in the logs. Idk what causes this, can someone please tell me what I'm doing wrong?

#

Help would be much appreciated, ty in advance

tiny zealot
#

the keys you're specifying in the $q/$r go in the character's default dialogue file, not the marriage dialogue

#

i.e. Characters/Dialogue/Sophia. you'll need a second patch

midnight jetty
#

i see, I'll try testing it rnn. thannks\

stoic chasm
#

Hello! I have a few questions (again) 1: What kinds of things should I make sure I include in my npcs house? I know I definitely need a bedroom and kitchen (is there a way I can make the kitchen actually usable, too?), but is there anything else I should add? Two: how do I actually add the house into the game? (It's not done yet, but I was just curious!) How do I make the doors and add lighting? Three: does anyone know if there are stair tile thingys? Like in the farmhouse? (At least, I think that's what it's meant to be-) Because I wanna make my character have like a two-story kinda house. Four: does anyone have any recommendations for how to make the outside of the house? I keep not liking anything I'm doing SDVpufferchickcry And five: how do I make a spouse room/patio thing? Sorry for all the questions!

torpid sparrow
#
  1. depends on you. my list is: bed, fireplace, kitchen, some sort of sitting area with a couch and table. then i add whatever is needed for hobbies. If you have an idea of what ur npc's hobbies are, i can give some design suggestions. I love interior decorating. You can make the kitchen usable, yes
  2. you'll need to load a map, and create a new location, then add the appropriate warps to get into ur house
#
  1. should be in townInterior tilesheet
  2. are you drawing an exterior from scratch?
  3. new maps that you will load into the game, can help you with the code once ur done. the spouse room size is 6x9 and patio i believe is 4x4
twilit quest
torpid sparrow
twilit quest
# stoic chasm Hello! I have a few questions (again) 1: What kinds of things should I make sure...

Start with an existing map that's something like what you want. Look at the Map Properties for things like lighting. For an NPC house, you actually need to add two locations: the outside of the house (which can be tricky, because a lot of different mods edit or add to vanilla maps) and the inside of the house. I recommend looking at other modded NPCs that have their own living space to see how other folks have done it. For things like lighting, that's built into the Map Properties.
My favorite resource for building maps is this one: https://stardewvalleywiki.com/Modding:Maps It will give you a LOT of info.

tiny zealot
#

i'll only add that you don't need to add a bathroom. nobody in vanilla has one

stoic chasm
# torpid sparrow i keep forgetting to reply, see my msgs above

Hi! Sorry for the late reply, I'm working on some pride flags for my npcs house whilst working on the hosue itself. That all makes sense, thank you! I'm (trying to, at least) draw the exterior from scratch, yes. I want eery part of this mod, if it can be, to be hand-made by myself. It's for someone really special to me

torpid sparrow
#

Try frankenspriting from existing buildings

torpid sparrow
#

basically take from vanilla tilesheets (or anything u have permission to use) and tweak it until its ur "own" / looks good to u

hard fern
#

I second the bathroom thing only because i hated drawing custom tiles for it XD

torpid sparrow
#

this i took from the coop

#

as well as the museum

void aspen
#

omg I love it

stoic chasm
#

Oooo cool!

torpid sparrow
#

among other things

#

and then i tweaked it to be what i want

stoic chasm
hard fern
verbal glacier
#

exactly how

torpid sparrow
stoic chasm
#

oooohhh okay

torpid sparrow
#

so i took from the coop and from museum and i put them together

stoic chasm
#

I don't know why I didn't get that-

#

That's cool

torpid sparrow
#

i just pray

hard fern
#

To what

torpid sparrow
hard fern
#

😔

torpid sparrow
#

if u want to use someone else's tilesheets, you'd have to check their permissions or ask

torpid sparrow
verbal glacier
hard fern
#

SDVpuffersweats green wizard bed..

twilit quest
# stoic chasm Wait I'm allowed to do that-?

Vanilla art is up for grabs - you can build a map with it or use it as a base to make it your own. For other people it's polite to ask or to check their permissions on their mod.

torpid sparrow
#

my favourite building

verbal glacier
#

ooo lovely

torpid sparrow
#

i always take roofs from vanilla

#

im not roofing from scratch

hard fern
#

I need to get better at making building

twilit quest
torpid sparrow
#

felt less samey

#

picking colours for buildings is the hardest part for me

stoic chasm
stoic chasm
torpid sparrow
#

CA gives all of us permission to use game assets

stoic chasm
#

Oooh okay

twilit quest
# stoic chasm That makes sense, it is their art so

One thing you can do, though, is use tilesheets someone else created in a map you make. You can't change that art, but you can build with it in Tiled as long as you make that tilesheet mod a requirement for the player. So there is a lot available for map builders. For example:
https://www.nexusmods.com/stardewvalley/mods/9599
https://www.nexusmods.com/stardewvalley/mods/20139
https://www.nexusmods.com/stardewvalley/mods/36102 This one even has buildings you can use!

#

If you search Nexus for "Tilesheet", you'll find a whole bunch of options that give you everything from pathing to foliage to building pieces.

#

(You're probably already familiar with DaisyNiko's Tilesheets if you've played modded Stardew at all XD)

torpid sparrow
#

i think they said they wanted to create it

twilit quest
#

Now again, you can't put this art into paint and change it (unless you have the permission of the creator) but you can put it into Tiled and drop it in a map. Tiled also lets you do things like flip and rotate tiles, so you have a certain amount of flexibility. (I used this to good effect in Broken Farmhouse, for example, to make it look like a lighting fixture was dangling.)

torpid sparrow
#

hand-made is what they said

timber pilot
#

should I put all the code in the content file or can I make a seperate file for some content

torpid sparrow
#

oo this is cute

calm nebula
#

It Depends on how your brain works

torpid sparrow
#

^

twilit quest
torpid sparrow
#

no worries SDVpuffersquee

ornate drift
#

hellos

verbal glacier
torpid sparrow
#

whether u should is up to u

verbal glacier
stoic chasm
#

Ooh okay! Well, thank you all for the help/advice! SDVpufferheart I'm gonna go see if I can actually do something aside from make pride flags now-

torpid sparrow
#

have fun!

twilit quest
torpid sparrow
#

my content now is basically all includes

tiny zealot
#

Action: Include has two use cases that i consider obvious wins (although like atra said, it depends on how your brain works)

  1. local tokens (obviously, since it's part of the include action)
  2. gating a bunch of patches with the same conditions (put the condition on the include instead)
twilit quest
#

Broken Farmhouse would have been incredibly unwieldy without them. Hundreds of lines of code. But I didn't start using them until I really needed them.

timber pilot
#

I made a new one and the last curl bracket is in italic why is that?

void aspen
#

its being silly

ornate drift
#

auuughhhh book nerd

twilit quest
#

@brittle pasture I was thinking more about Custom Builders this morning. Please feel free to correct me if I'm wrong about anything here; I'm talking through this as a way to make sure I understand it. In Vanilla, Robin is hard coded not to show an upgrade as an available option unless the base building is already on the farm. Custom Builders works differently: a builder will show all options that the builder is capable of building, even if the base is not available. I can create a series of GSQs with OR statements such that the menu will not display if NONE of the base options are there. But if the same builder can upgrade multiple types of buildings, and if even one is available, then the builder's full menu of options will display when clicked on, correct? (ie if Lewis can help upgrade Broken Coop OR Broken Barn OR Broken Shed, and if Broken Barn exists on the farm, then all three options will be available on the menu). I thnk you said that you already put in a catch so that if the player clicks on an upgrade and the base isn't available, it will tell the player that the base building doesn't exist instead of throwing the divide by zero error, right?

ornate drift
#

im uhhh gonna have to fix these downward tiles

#

the outside ones, theyre upside down

void aspen
#

oh my

#

but they do exist naturally

ornate drift
#

yeeeeeeaaaaaah i just dont like how they look here

torpid sparrow
#

like in the pic?

#

there are natural ones that dont look like that

void aspen
#

no I mean theres okay looking ones

#

not these on the pic you sent

ornate drift
#

i can just use these

#

i havent touched tiled in a bit....

torpid sparrow
#

yes

#

those

hard fern
verbal glacier
#

i think they shared at the same time

ornate drift
#

indeed

brittle pasture
ornate drift
#

are

are there vertical tiles

verbal glacier
#

vertical beams ye

brittle pasture
#

unless you mark it as also be able to be directly built

void aspen
#

some tiles work two jobs and sometimes you may need to overlay them with other tiles to look nice

ornate drift
#

ill save myself the trouble of finding them

#

this looks good enough

#

i have some free space to add more furniture

void aspen
#

lovely toilet and shower in the kitchen

jaunty shuttle
#

I think it’s meant to be the bathroom sink lol

#

The kitchen of the bakery is in another room iirc

#

These?

ornate drift
#

im not that gross

#

though tbh i shouldve added another door for the bathroom

slow basin
void aspen
#

I think its possible to do the vertical door

#

just swapping opened and closed tiles

void aspen
#

I see that its the bathroom now

ornate drift
#

theres no bathroom sink in hxws tilesheets

#

afaik

void aspen
#

hxws?

torpid sparrow
#

himetarts x wildflour

void aspen
#

oh

ornate drift
#

very good tile creators pls check them out

void aspen
#

always can draw one yourself SDVkrobusgiggle

ornate drift
#

maaaaaybe but dont have the motivation

#

mmmmm feel like theres not enough stuff

#

or just feels unorganized

elder gyro
#

omg is this a cafe

torpid sparrow
ornate drift
#

mmm true

torpid sparrow
#

couch in the bedroom area

ornate drift
torpid sparrow
#

posters on the wall

elder gyro
#

awesome sauce

ornate drift
#

theres also missing shading

#

most houses have shadows underneath walls n stuff

jaunty shuttle
#

More counters near the oven for cooking too, maybe a small island

torpid sparrow
#

doesnt exist for all flooring

#

but there is a vanilla shadow tilesheet

#

u could try using that

elder gyro
#

is the bathroom layout a placeholder cus some of it could go on the leftside wall or something instead of it all being lined up

ornate drift
#

ye i didnt figure that out

jaunty shuttle
#

I’ve seen quite a few designs with the HxW bathroom and bakery stuff there

ornate drift
#

hes a fucking tileset? 😭

torpid sparrow
#

yep lol

ornate drift
#

would adding rugs at the kitchen make sense

jaunty shuttle
#

Yeah most kitchens have a mat or rug at the sink

#

Which I now notice, you don’t have a sink in the kitchen CatLurk

ornate drift
#

ohh wait true

#

mmmmmm maybe i should replace the HxW counters...

#

i dont think they blend very well

#

also some of the tiles not having a proper outline on both sides KILLS me

torpid sparrow
#

vanilla tiles r sometimes made with the entire row to be used

tawdry hazel
#

!ask what tilesheet is that one with the lower end/front wall lit windows? is that a custom one?

ocean sailBOT
#

Ask your question or describe your issue here, and someone will help if they can!

torpid sparrow
#

r u referring to speedy's map or?

tawdry hazel
#

no I'm making my own mod and I can't find it

torpid sparrow
#

where is that from?

#

i dont think thats vanilla

tawdry hazel
#

Yeah, that's probably it

#

thank you

#

I've seen it a few custom farmhouse maps and I thought it was vanilla

#

it's not on any vanilla map so I should've figure that out from that :p

torpid sparrow
#

do they have any dependencies?

jaunty shuttle
#

If you check the requirements of the mods that use it, you might be able to find the tileset they’re using?

tawdry hazel
#

this one specifically has two

#

already looking into them, thank you guys

jaunty shuttle
tawdry hazel
rugged bolt
#

Quick question regarding when you add something to a map. It changes the map size if it goes off the edge, but if you do that on the left, does that mess with the coordinates of other events and paths?

torpid sparrow
#

yes

#

only go down and right

#

do not go up and left

rugged bolt
#

Alright, good. I had my suspicions about it and wanted to make sure before I made any horrible mistakes if I were to add to a shop building. xD

torpid sparrow
#

oh yeah chaos would ensue

rugged bolt
#

Oh, how does pathing work on custom maps? For NPCs, I mean?

torpid sparrow
#

there has been some issues with adding warps and NPCs using them when they shouldn't though

#

cant remember how i solved it the couple times it happened

rugged bolt
#

Oh, that's good. I thought osme extra work would be needed but that's good. I keep putting off putting more work on my first mod because I get so intimidated at the more ocmplicated parts. xD

jaunty shuttle
#

1.0 of my mod didn't have an update key, I'm assuming any users who installed the original 1.0 version will have no idea my mod has an update available?

torpid sparrow
#

yes

wispy bramble
#

The nexus website also shows updates if they happen to check, but SMAPI itself won't notify them.

jaunty shuttle
#

So sad lol SDVpuffersquee

whole raptor
#

Huh, I see Nexus is probing around adding mod upload feature to Vortex... SDVpufferthink

modest dagger
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 37 C# mods and 24 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

modest dagger
#

yea yea i'm not updating governor

urban patrol
#

can you show the json

valid folio
#

Hello, how are you? I want to do this. I want to create my own seasonal Sweet Gem Berry, meaning the fruit has a different sprite depending on the season, not the original one, but mine. Instead of creating three separate objects, I’d like my custom Sweet Gem Berry crop to change its sprite based on the season. Is this possible, or do I have to create three different objects, one for each season? I know this can be done with the vanilla Sweet Gem Berry using an image edit, right? But what if the item is from a mod?

tiny zealot
#

once an item is loaded into the game, there's no difference between it and a vanilla item, and in fact there's no fully reliable way to tell that an item is from a mod (or a particular mod). so you would patch a modded item the same way you patch a vanilla one, and the only difference is what assets you patch (and sometimes how)

void aspen
#

pretty dark huh

#

thought my map didnt load

tiny zealot
#

you also have to make sure your edits come after the mod you're targeting (so that their item exists by the time your patches run), but that's very straightforward

valid folio
valid folio
lucid iron
#

Even numeric ids are strings now

#

You should take advantage of the fact that they are string when making your own item ofc

tiny zealot
#

but yes you use the modded item's id and use EditImage on its assets and so on. you'll need to read the mod in question to figure out what to do

tiny zealot
# valid folio I didn’t quite understand that part.

the short version is SMAPI has to apply edits one at a time, in some order, and you can control where in the order your edit goes by giving SMAPI a number about it. if you want to edit SomeMod.MyBanana, you have to give SMAPI a later number than SomeMod.MyBanana uses

valid folio
# lucid iron Even numeric ids are strings now

I’m not very familiar with programming terminology yet, I still don’t fully understand terms like array and string. I usually learn things by repetition, I learn how to do them but I don’t always know why they’re done that way haha

valid folio
tiny zealot
#

well

#

if it's a mod you didn't make (the putative SomeMod.MyBanana), you would read the mod's json or source code and get it from there

verbal glacier
tiny zealot
#

if it's your mod then all the stuff about edit order doesn't matter, you're in control

valid folio
verbal glacier
tiny zealot
#

if you didn't specify one (generally a good idea not to unless you need to), it is Default for edits and Exclusive for loads

#

within your own mod, you do not need to specify priorities except in narrow circumstances (see below). the order you list your patches in your content.json/included jsons determines the order they apply

valid folio
tiny zealot
#

the narrow circumstances: if you are blank Loading a shared asset that is in the global namespace (i.e. other mods might need to Load it and it isn't fully controlled by you), you should use any priority for your Load other than Exclusive.
for example: you need to Load something (an empty json, {}, is best) to Data/Events/AdventureGuild if you want to put an event in there, since it is missing in vanilla (no events are staged there). that is a global shared asset, so you should set your priority on the blank load to something not-default. it is customary to use Low but any value other than Exclusive is fine

proven spindle
tiny zealot
#

i use it all the time when applying compatibility patches, and sometimes config options

#

e.g. patch in the default dialogue, then patch in a modified version over top when a particular config setting is enabled

valid folio
#

I understand. Well, I’ll see if I really understood everything correctly. I’m going to give it a try. Thanks everyone.

verbal glacier
#

Good luck SDVpufferthumbsup

valid folio
light jasper
#

does anyone know any mods that use SpaceCore's custom buffs? Need to test and make sure my patches don't step on casey's

proven spindle
urban patrol
valid folio
# tiny zealot e.g. patch in the default dialogue, then patch in a modified version over top wh...

I have a question. Will the harvested fruit’s sprite change as well? I mean, will the one in the inventory change with each season? My idea was that the sprite would depend on the season in which it was harvested, but if the inventory item changes too, that would be too weird even for my mod. So I guess I’ll apply the change to the crop in the ground instead, which makes more sense, since the plant can change its appearance with the season while the fruit stays the same.

tiny zealot
#

not too familiar with crops but i'm fairly sure the inventory item is a totally different texture/object than the growing crop sprites so you can do whatever you want. they're not inherently linked

void aspen
modest dagger
valid folio
# tiny zealot not too familiar with crops but i'm fairly sure the inventory item is a totally ...

My idea was to change the fruit sprite, but since the inventory fruit and the fruit harvested from the plant are the same object, I assume the sprite will change even after it's harvested. So to keep things simpler, I'll apply the seasonal changes to the plant, which makes more sense, and the harvestable item will remain the base game fruit.

Thanks Ichortower and @verbal glacier for clearing up my doubts.

urban patrol
#

and also screenshot your spritesheet

modest dagger
#
            "LogName": "Neith Animations",
            "Action": "EditData",
            "Target": "Data/animationdescriptions",
            "Entries":
            {
                "Wizadroid.TGWNeith_dishes": "16/16 16 17 17 18 18 19 19 18 18 17 17 16 16/16//offset 1 0",
                "Wizadroid.TGWNeith_cooking": "20/20 20 21 21 22 22 23 23 22 22 21 21 20 20/20//offset 1 0",
                "Wizadroid.TGWNeith_loom": "24/24 24 24 25 25 26 26 27 27 26 26 25 25 24 24/24//offset 1 0",
                "Wizadroid.TGWNeith_eat1": "14/14 14 14 14 15 15 15 15/14"
            }
        },    ```
urban patrol
#

hmmmm it all looks right to me

#

wait i think it’s the frame 8

#

you only have 7 frames

modest dagger
#

... that could be it

wicked gulch
#

Hi!
Is there a way to spawn coal nodes (which naturally spawn in quarry) via CP or FTM?

royal stump
#

yep, coal is one of the supported types in FTM's ore section

modest dagger
urban patrol
#

yay!

modest dagger
#

oh my god i made this too fast she won't shut up now

urban patrol
#

munch munch crunch

modest dagger
#

i'll sort that out later

red basalt
modest dagger
#

well that wasn't very nice but alright

void aspen
#

My building has two sprites, with lights-off by default and lights-on on the same tileset
How do I change FromArea to pick lights-on depending on the {{Time}}?

#

Lets say Time is > 1600 and < 2200

ornate trellis
#

daytiles/nighttiles

void aspen
#

oh is that a thing

ornate trellis
#

tho i think you cannot fully set the time but you can make it so till 7pm you have a certain thing and then from 7pm on its whats considered "night" or w/e

#

its on the map modding page, just CTRL+F daytiles etc

void aspen
#

I guess that also works, tysmm

urban patrol
#

it’s also much more efficient to use than to conditionally patch a map

#

people with 1000+ mods will thank you

void aspen
#

If only there was a more visual way to see how to do it

#

How do I get tilesheet index with my custom ts

latent mauve
#

I have a question if anyone knows when the Building data is determined: I have skins that I have created for the farmhouse, and each has its own Metadata with values for the Chimney position as I am still trying to fix the smoke not lining up. Does this get updated visually every time the skin is changed, is it a location change, a day change, etc.?

modest dagger
latent mauve
#

So far I've not seen it change, so I am trying to make sure that I am not just expecting a location change when it's only set in the morning or something.

void aspen
#

huh it was zero but its some number now

#

interesting

latent mauve
#

The only exception is when you have tilesheets that actually use the size of the object defined elsewhere to determine the width and height of the sprite index so they can sometimes be bigger than 16x16 (like NPCs)

void aspen
#

thats something different in this context me thinks

#

from someones other code

#

that 3rd number

#

is always the same

#

so its not the tile number its something else

#

im doing nighttiles for the first time so its super confusing rn

ornate trellis
#

nightiles is jsut like daytiles which is described on the wiki page

#

the layer you put is the one the tile you want changed is on, then its the coords, then the last number is the tile in the spritesheet you want to use the asset from is on

#

which is the same because i assume you are looking at a window tile or lamp or something similar which is jsut one tile big so its ofc always the same number

mellow laurel
void aspen
#

oh

latent mauve
void aspen
#

so nighttiles make 907th tile appear past 7pm

#

in this context

#

and daytiles are basically the same but they appear before 7pm

lucid iron
#

@spice inlet hi is there a GSQ or API to tell if current location is a PIF

#

Or any given location

spice inlet
#

PIF room location names follow a specific pattern: DLX.PIF_MINE_{layout id}_{farmerId}_{doorId}

#

so just check for that I suppose

#

there's also a few custom location modData entries

#

could check for them, though imo the name is more reliable and simpler

#

do you need a GSQ for that? I can add one in the next update

lucid iron
#

The thing i wanted to use it for is Merchant, I'd like to check this and then know to use the PIF entry warp for where to queue customers

latent mauve
#

So, for anyone curious, I figured out something about the chimney issue on the farmhouse skins: Saving and reloading the game the day after assigning the skin makes the chimney smoke redraw in the correct position as set by the skin's Metadata.

#

Just sleeping doesn't change the position, but reloading the game after a save (so the game loads with the building skin already applied) does.

#

It's just a bit weird, because even if I draw the chimney in the correct space and don't set the chimney position, the smoke draws in the wrong spot until those steps are completed.

spark wharf
#

hello, so I am having a lot of trouble with this mod I am trying to make... I have ZERO mod experience and am basically trying to cobble this together using the FTM info on github and looking at examples, but honestly I have no understanding of what I'm looking at. I'm trying to make this mod that will spawn truffles out in the woods and I think I got it mostly down but I am having trouble with the syntax at the end.. like I said I genuinely don't know what the brackets even mean or do so if someone could take a gander at this content json and beat understanding into me I would really appreciate it

void aspen
#

Yay finished my deltarune church mod

#

Only issue is to find a place to overlay a 10x21 tile building without it looking weird

#

Maybe I can create the whole hometown and fill it with all the buildings gradually

devout otter
#

Could you do an Include with OnLocationChange?

lucid iron
#

yes but ill be sad about it

devout otter
#

Aw, why. 😔

ivory plume
#

Monthly mod stats time!

Mod compatibility

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

Unique mods by type

We have 805 more mods this month (compared to our typical average of 398/month). That was probably driven by Nexus Mods' Stardew Valley Modfest, which just finished a few days ago. That's the biggest single-month increase since Stardew Valley 1.6.0 (when we had 1060 new mods in a month). So it seems that event was a big success!

That includes:

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

Content Patcher packs

We have 14,137 Content Patcher packs.

The top five Format versions remain...

  • 2.0 (3996 ↗ 4094), 2.3 (891 ↗ 907), 2.4 (667 ↘ 590), and 2.8 (844 ↗ 1064) for Stardew Valley 1.6;
  • and 1.19 (570 ↗ 572) for Stardew Valley 1.4.

Open source

  • We have 4,387 tracked C# mods, of which
  • 2,513 mods (57%) have a source code repo, with
  • 1,332 (53%) in a multi-mod repo and 1,181 (47%) in a single-mod repo.

The percentage of C# mods which are open source continued its steady decline this month (from 58% to 57%), probably related to the wave of closed-source AI-generated mods. The percentage has been consistently dropping by one point per month for the last several months.

Web costs

And finally, web hosting costs for the SMAPI.io site, update-check server, and API dropped slightly to US$199/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

lucid iron
#

+7 XNB hokuhands

brave fable
#

+7 xnb SDVpuffercrown

uncut viper
#

I'm more curious about the +32 for smaller frameworks

wispy bramble
#

I can think of at least a couple small frameworks that are relatively new

lucid iron
#

the thing is smaller framework here means specifically smaller contentpackfor frameworks

uncut viper
#

32 mods made for those frameworks is quite a lot still compared to previous months

#

Yeah, ones that aren't CP or AT or something

proven spindle
#

Does smaller frameworks exclude frameworks that work via content patcher? Like nature in the valley or secret note framework, which don't have their own contentpackfor field

uncut viper
#

Yes, those are not counted

#

That list only includes contentpackfor frameworks

#

(small nitpick also but those don't technically work via CP, they just work via the content pipeline. CP can access that, but so can any C# mod)

proven spindle
#

That's pretty cool to know. Thanks!

half tangle
#

an accurate nitpick, though. It'd be interesting to find a way to highlight small framework mods that work via the content pipeline. Like I know Dora made Dora's Drills Deluxe and made use of my Ladder Chance Framework and I haven't heard of anyone else using LCF before so I was excited to hear about that

uncut viper
#

That was part of my reasoning for making the dependency graph

half tangle
#

oh, yeah, that thing is cool

lucid iron
#

its cool that the modfest doubled the number of new mods bolbclose

#

makes me wonder if any xnb mods were submitted to the event

hard fern
#

catfest to double the cats in mods

lucid iron
#

mmmm cats

#

how can u beat Random Cats in Events though i think we peaked already

hard fern
#

idk. a catgirl

#

the best of both worlds

lucid iron
#

random cat girls in events...

latent mauve
#

I almost made a tortilla-based farmhouse (exterior and indoor appearance) for April Fool's in honor of the previous tortilla mods, but I will not have time to do it so I dropped the idea. xD

fierce vault
#

oh, man, is there going to be another influx of april fool mods this year? Lol

radiant ridge
#

As seen in the photos, the mod has encountered an issue, where the 'search' page cannot show the newest version of the thumbnail after a few days. I have tried switching to another thumbnaill and switching back again, removed the 'Entrance' image entirely and tested a new image, but this image seems 'stuck' as the thumbnail.

Could anyone provide a solution? I'm a new modder. (Also new with Discord.) Thanks!

latent mauve
#

If it's the thumbnail on Nexus, there might be a server-side cache involved?

radiant ridge
#

I'm not very sure on how to clear cache

#

Has anyone experienced this issue before?

tender bloom
#

If it’s server side presumably you can’t clear it?

latent mauve
#

You can't clear their cache, only your own browser cache.

tender bloom
#

Nexus is sometimes wonky but I haven’t heard this specific issue afaik

radiant ridge
tender bloom
#

I would not be surprised if it’s nexus’ fault but I can’t tell for sure

#

Seems reasonable to report it

latent mauve
#

Yep, you just have to wait for the cache to update on Nexus's end.

radiant ridge
latent mauve
#

If you've already clicked the Star to set it as the primary image, that's the most you can do on your end.

torpid sparrow
#

it looks like the new ui

#

does that one have a star?

latent mauve
#

ah, I haven't gotten the new UI yet, then

#

I'm in this section, "Manage Mod" and then "Media"

#

(if gymnastic is on the beta UI, that's even more likely that it's a Nexus issue)

radiant ridge
torpid sparrow
#

i have no clue

#

i havent used the new ui either

radiant ridge
#

I registered few days ago, and have only seen the beta UI before

calm nebula
#

Nexus has a discord server or you can email them tbh

torpid sparrow
#

huh did they remove the original for new accounts

#

thats a bummer

latent mauve
#

Yeah, at this point, report it to Nexus in case it's something with the beta UI causing it to not register the thumbnail change.

radiant ridge
#

okay

#

did I upload in the correct location

torpid sparrow
#

i have no idea but suggestions board makes me feel like no

lucid iron
#

i think this was buggy before too

torpid sparrow
#

as that sounds like its for suggestions, not bugs

lucid iron
#

try making a different image the ⭐

#

and then if that updates correctly, flip it back to ur desired

radiant ridge
latent mauve
#

"website bug report" is probably a better place

radiant ridge
radiant ridge
#

anyways an admin will have to approve it so they will see it I guess

latent mauve
#

It's in Site Support

#

It's two below Suggestion Board in the subforums list.

radiant ridge
latent mauve
#

Gotta go to the forums section first

radiant ridge
#

I see it now, thank you

#

I'll log the bug now

#

Is it normal to have content moderation at 0 warning points on Nexus?

tiny zealot
#

i don't know, but if your handle contains "teen" and/or you verified your age with the site (which is located in the UK), they may know or have guessed how old you are and acted accordingly

radiant ridge
tiny zealot
#

that certainly makes it sound like they have guessed you are not 18

lucid iron
#

im not sure what content moderated even does

tiny zealot
#

or not <insert UK age of majority here>

calm nebula
#

(Tbh ask nexus)

radiant ridge
#

found it
It's because I am a new user on the site

radiant ridge
tiny zealot
#

i don't know. i don't live in the UK

fierce vault
#

i read a comment on a mod saying that the user could not see the embedded imagur photos on the modpage description because of age verification stuff in the UK

#

I wonder if that kind of thing is why I’ve seen some people put those mod page photos in the media section of their mods? Because when you do that, the image is being hosted on nexus. Not a perfect solution I feel, but it’s interesting

tiny zealot
#

yeah imgur is unusable in the UK (and some other countries)

spark wharf
#

would anyone know why my mod keeps making a data folder with a .save file in it? in the mod's folder

#

unsure if that's normal with a FTM mod

royal stump
# spark wharf unsure if that's normal with a FTM mod

FTM packs always create a folder like your FTM pack folder/data with one .save file for each loaded save
they're json files that keep info about weather and what spawns will reappear overnight
the folder's safe to delete before uploading your mod, or while editing it etc

spark wharf
#

Thank youSDVpufferblush

cold wolf
ornate locust
#

I am going to have to fight Scarlett

torpid sparrow
#

over

ornate locust
#

Never mind

#

I just had to make sure all her damn conditions were fulfilled before debug marrying her to test her room

#

figured it out LOL Just needed to complain and the solution came to me

#

wait it also occurs to me there's a Scarlett here, NOT HER, THE SVE ONE

#

fun fact, marrying Scarlett via debug before all of that marries you to a fake Scarlett with a fake room and boy nothing I was doing was fixing it to be the real Scarlett without just redoing things

uncut viper
#

I did think you meant Scarlett the person in here and was wondering where it was going

#

Very confused when you started talking about conditions SDVpuffersquee

ornate locust
#

that did not occur to me at all, whoops

lucid iron
#

i thought sve char was scarlet

ornate locust
#

brain too occupied by a patch just not applying

#

Nah she got two T

lucid iron
#

am i berestain bearsing

ornate locust
#

Really confused me because I appeared to be married to Scarlett, but it wasn't a real Scarlett and so the marriage condition I had wasn't applying

torpid sparrow
#

i also thought u wanted to fight scarlett here

torpid sparrow
#

i rly enjoyed berenstain bears growing up

#

the panda one was a...thing

#

but in general i liked it

ornate locust
#

Accidentally shouting a challenge to another human instead of expressing frustration at code

#

I think the final culprit was an invisible event that apparently activates actual Scarlett

dire kestrel
#

sve's coding trickery always amazes me

torpid sparrow
#

sleeper agent Scarlett

torpid sparrow
#

why

#

is that necessary?

ornate locust
#

I don't know! But there's a fake Scarlett you can talk to before she's giftable and after a certain event, it swaps over to a giftable Scarlett

#

Instead of changing the first Scarlett to make them giftable I guess

dire kestrel
#

i'm guessing that's why there's a scarlettfake in seasonal cute's files

ornate locust
#

Yeah ScarlettFake was the one I was with and she had her own DIFFERENT spouse room that wasn't Scarlett's current spouse room

#

which BAFFLED ME

lucid iron
#

Tbh this might be how u had to do a conditionally socialable char

ornate locust
#

I assume it's just antiquated code, yeah

lucid iron
#

Back in olden days

torpid sparrow
#

ah that makes sense

ornate locust
#

but it confused the actual hell out of me when I had a Scarlett who would only say ... with a spouse room that I'd never seen before

#

Because if you type Scarlett in the console before then it goes to her. really took me on a journey

torpid sparrow
#

stardew arg

ornate locust
#

finally

median gull
#

okay i need help once again, i decided to start adding in configs to my mod. i wanna add in simple foliage to start ( anette has open perms but i did get perms from acerbicon and morghoula for the unofficial 1.6 update ) but when i tried black boxes appeared. 😭 also tried to make the gmcm buttons match my recolor but they just don't update? my content json: https://smapi.io/json/content-patcher/dae41d5027324239b5b7a856695f46f4

spring schooner
#

Is there a willy marriage mod?

dire kestrel
mellow laurel
#

@tranquil olive I think I see a tiny issue in Bloom Again and I believe the fix is more quotes:

Trigger action 'ohitslunette.BloomAgain_OnSandyAccess' has action string 'AddMail Current BA_Letter_SandyClothing tomorrow, RemoveConversationTopic NewStock, AddConversationTopic EmilysNewMove' which couldn't be applied: optional index 3 (MailType mailType) has value 'tomorrow,', which can't be parsed as an enum of type 'StardewValley.Network.NetEvents.MailType'.

"Action": "AddMail Current BA_Letter_SandyClothing tomorrow, RemoveConversationTopic NewStock, AddConversationTopic EmilysNewMove"

to

"AddMail Current BA_Letter_SandyClothing tomorrow", "RemoveConversationTopic NewStock", "AddConversationTopic EmilysNewMove"
]```
tranquil olive
mellow laurel
#

oop and some brackets

tranquil olive
#

I have this for it now (I did not realize there was an Actions option at first oops-)

mellow laurel
tranquil olive
latent mauve
#

In particular, I can identify tiles 176, 206 and 207 that have manifested as black tiles

timber pilot
#

does anyone have a link to a tutorial for adding a custom items that are innteractable by right clicking?

half tangle
#

You can do that with SpaceCore

timber pilot
#

I see

#

where exactly do put it i the code?

#

do I need to add anything to maifest to be able to use spacecore

void aspen
#

Some vanilla mechanics can be done within cp

ornate drift
#

tilesheet climbing AGAIN???

#

god....

timber pilot
hard fern
ornate drift
#

how do i tackle it again?

#

is it something to do with content

hard fern
ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

ornate drift
#

oh so im gonna need to copy things like interior and HxW tilesheets into my folder

devout otter
#

Have them present when working on the map, yeah. Then delete them after saving.

ornate drift
#

basically like this right?

void aspen
#

Doesn't Tilesheetinator fixes all these unnecessary things

ornate drift
#

it does, i have that

devout otter
#

Yeah, don't keep them there if you ever want to upload, though.

ornate drift
#

oh that bottom one is fucking it up

void aspen
#

All of them gotta be just the name

ornate drift
#

wait- why is it using TownInterior twice??????

void aspen
#

Then when you load your tmx to Maps/ it's gonna find tilesheets in the relatively same place it's located, so you load your custom tilesheets to Maps/ as well

devout otter
#

Something like that usually happens when you are working on a map on a folder, and then save it to another folder.

void aspen
#

That's how I think it works and it does work for me

#

If you open Tiled and all the textures are visible by default then there's a high chance some paths are wrong

ornate drift
#

oh that fixed it

#

hooray

#

even my custom object worked!

#

one thing though, my wall collision seems to be off

#

this is as far as i can get near the wall

#

i probably should put it a layer below instead

void aspen
#

Well cuz for these bottom walls it's better to put them on front level

#

Or always front

#

So you have an illusion of walking behind a wall

hard fern
#

yeah

ornate drift
#

happens with these ones too

hard fern
#

those bottom borders go on front, and you use the black void on buildings

#

that way, you can touch the wall

ornate drift
#

oh, okay!

void aspen
#

You may wanna study vanilla maps layers with H key pressed to see how it works

ornate drift
#

ill try that

void aspen
#

I did that

#

Now I do perfect collisions and layers almost by eye SDVkrobusgiggle

#

Lowk I think of making a little guide for Tiled basics specifically for SDV which mentions all these things in one place

#

Since I gone thru them and now I see people stepping on the same stones

ornate drift
#

yay it worke- oh

#

the bottom of those plants are on building2

#

why can i just phase through them

hard fern
#

As in, only the original buildings layer has the impassable property

verbal glacier
#

the others are purely cosmetic

ornate drift
#

ah ok noted

#

are context tags important for custom objects

hard fern
#

It's up to you if you want to add them but i will say they are definitely useful

void aspen
#

All my monsters had color blue context tag cuz I copy pasted their properties from joja cola lol

#

So yeah you can give your food colors and something else too

ornate drift
#

im going to rage

#

is that not how brackets connect

timber pilot
#

how do I get it to show up in game

ornate drift
timber pilot
#

I am but it's not there

ornate drift
#

no log errors?

timber pilot
#

no, just commas ad comments

ornate drift
#

hm

#

did you load the objects json

#

wait

#

do you have your objects in content or a separate json

timber pilot
#

seperate

ornate drift
#

the format is not needed for separate jsons afaik, its only needed in content

#

only in content

#

did you do an include in your content?

void aspen
#

Change entry from pufferchick to paper first of all

#

Remove that extra coma in the end

ornate drift
#

oh the modid as well

#

didnt notice

timber pilot
#

I did ot do an include in content

ornate drift
#

you should

void aspen
#

And comments aren't really needed too, seems like you ignored the second one anyway 😭

ornate drift
#

any separate json other than content must be included inside content

#

its the games way of telling smapi to include that json

ornate drift
devout otter
fallow musk
#

line 9 { should be closed first before ] in line 40

void aspen
#

You may wanna use VSC as well, it shows {} colors and you can validate your code in real time

fallow musk
#

also using a cleaner json formatter will make it easier to work

void aspen
# timber pilot I don't get it

Fix the Entry ID, remove the extra coma in the end and add include
Not sure how including works yet so Speedy can help you with that

#

Since it's your separate json, game have to know all additional jsons to include so you do that in your main content json me thinks

devout otter
#

Is it actually a separate json, or is that screenshot from content.json?

timber pilot
#

it's seperate. I'm tryig to do the include code now

ornate drift
devout otter
timber pilot
#

oh that's why it gave an error

void aspen
#

Includes copy the format of the main content json right

timber pilot
#

I did remove the format field but it still doesn't work

near imp
#

The content.json part of a working include should contain Format, Changes, and Action Include. Make sure to point the FromFile to the right folder (if the json to be included is in a folder, and the right name of the json).
The json to be included must not have a copy of Format (only one of these, and only in content.json), but it must have its own Changes before the Action : (WhatEverYoureUsing)

#

As usual make sure to check what the error is saying and make sure you have just the right amount of brackets 🥴 , enough commas (a missing one is a big deal when the game tries to read it, while trailing commas (unused ones at the end) are allowed). Generally make sure formatting is as it should be.

void aspen
#

since they also come before the changes

#

after format

near imp
#

hmm dont think so no, but not 100%. you could write it up and test

void aspen
#

I see

near imp
#

if you mean having a second ConfigSchema that is

void aspen
#

Thank you

#

yeah

#

but if included jsons can work with config tokens from the main content then its fine

near imp
#

though you can use localtokens to load a bunch of different things through the same included json, and you can gate includes with a When, so thats very useful

#

Include is supposed to work just the same as if the things were written in your content.json, aside from the duplicate Changes setup

ornate drift
unreal spoke
void aspen
#

Now I need 30 more buildings

ornate drift
#

wait this is really cool wtf

#

are there deltarune npcs to go with this

void aspen
#

Not in my mod

#

But would be cool

violet valley
ornate drift
#

????? where'd the blueberry one go

void aspen
#

did you put the right id and entry

hard fern
#

i ate it sorry

void aspen
#

oh you had it

ornate drift
#

oh i forgot to switch the id

#

mb

ornate drift
#

22 more items to go face_with_bags_under_eyes

long jungle
#

Does anyone know a convenient way to know which mod is the cause of a "No Translation" text?

#

Usually, the translation token includes the name of the author and the mod it's from... I think?

#

But this one is weird

#

I know that this is not the place to ask about mod issues but this is more on the technical side so mod makers probably know more.

void aspen
#

which is mostly a standart

long jungle
# long jungle

In this example, do you think the mod author failed to do so?

#

Unless their name is "Core"?

void aspen
#

Can't say for sure but most likely

long jungle
#

Okay thanks!

void aspen
#

Not sure how translations work so you may wanna wait for another person to reply or try some luck at #1272025932932055121

tiny zealot
lucid iron
ornate drift
#

whats the maximum edibility number

tiny zealot
#

on my linux install i would do grep -ri 'Core.Monsters.Construct' <my mods folder> and that would find it in a jiffy

lucid iron
#

But generally speaking no you can't know which mod led to the no translation error without looking through the file

#

i18n keys are not mod id qualified in any way

calm nebula
#

I kinda wish CP would log a no translation

torpid sparrow
#

mine is but thats because i unnecessarily add my mod id

void aspen
ornate drift
#

jeez im gonna have to find a balance

void aspen
#

it goes from a flat number to +100% at some point

#

better check wikis

tiny zealot
#

life elixir (the 100% heal) only has edibility 80 and is hardcoded to restore 999 health

long jungle
tiny zealot
#

i don't think edibility has a maximum (except the int limit, lol) but functionally you will get to 100% long before that

calm nebula
#

What if a mod adds int.maxvalue max health

tiny zealot
#

skill issue

long jungle
#

Thank you so much! I will check it out.

void aspen
tiny zealot
void aspen
#

tonic and legend 2 have them

#

oh

#

so not 200

long jungle
void aspen
#

ig tonic IS hardcoded due to recent changes

#

game doesn t have anything with above 200 edibility in data

#

at least I cant find it

#

-300 is inedible

#

puffer has -40 and its edible

#

just with negative stats

tiny zealot
#

edibility does get buffed by quality. an iridium-quality magma cap is basically a full restore to health and energy and that's at 70->140. so 200 should be more than enough for whatever you are plotting

long jungle
#

Guys. I have a question. What if my mod requires a framework mod in order for it to work. But then, the mod author of that framework suddenly deletes their mod from Nexus without any warning.

What can I do in this case to keep my mod working again?

tiny zealot
#

implement your own version of the framework

long jungle
#

I have no idea why they deleted the framework. It was working well...

long jungle
#

Do you mean that I should make my own mod that performs the same as theirs?

void aspen
#

is there any way to add text color to GMCM menu options or it requires some C

tiny zealot
void aspen
tiny zealot
#

what was the framework? i don't recall any being removed from nexus

iron ridge
long jungle
long jungle
void aspen
#

maybe some people still have files of that framework

#

or its not working like that

long jungle
#

I do have a file. I can upload it of course, but I'm not sure if it's okay to do so.

tiny zealot
#

it is not

void aspen
#

well its not but

#

you can still use it if you put it right or its something else to do

tiny zealot
#

technically you can still download the mod from nexus if you have the exact url, since nexus doesn't allow authors to delete mods, but that's also dicey

long jungle
tiny zealot
#

i don't recommend it and i won't help. but in order to keep collections from breaking in a situation exactly like this one, nexus doesn't allow authors to fully remove their own mods (nexus can still delete them)

long jungle
#

I tried... but what do you mean by the exact url?

tiny zealot
#

that's all the information i'm willing to provide

void aspen
#

you have easier chances finding another mod atp

slow basin
#

^

long jungle
#

Okay, thanks. Now, I'll probably need to try making a framework mod just to keep my mod working. 😆

#

Thanks for the help y'all

calm nebula
void aspen
#

how does one even create such thing as framework
is this just a mod that provides useful things to other mods?

#

Like token or mechanics

iron ridge
void aspen
#

I see

#

Oh right C# thing is very important here

lucid iron
#

Or extra machine configs which is secretly slingshot ammo config

long jungle
iron ridge
#

!chatgptcode

ocean sailBOT
#

We don't recommend using generative AI (such as ChatGPT, Copilot, Claude, Grok, etc.) to write mods for Stardew Valley. There are a few reasons.

  • AI-generated content is not allowed to be posted in the server. If you need help with your code, you won't be able to post it.
  • Large Language Models aren't trained on enough Stardew-specific information to give reliable, accurate output. They also have no concept of what they don't know, and so cannot tell if they're incorrect. In short, they don't know if they're hallucinating a solution that simply feels like it makes sense or not.

This holds true for both SMAPI/C# mods, and mods for frameworks such as Content Patcher.

There's no shame in being new to Stardew modding, and you won't be talked down to for not knowing what you're doing. We strongly recommend consulting with other mod authors in the appropriate channels as a first step if you're completely stuck at step one.

void aspen
#

nvm found it

#

ty

long jungle
calm nebula
#

Nexus messages send you an email iirc

timber pilot
#

what do I put in i18n? do I just use that instead of a dialogue.json file?

long jungle
#

If my item's DisplayName is {{i18n:FjorlagRond.MWBRM/RubyRing.DisplayName}}, it goes to the i18n file to find what text or lines of text corresponds to the token

#

In this case, "FjorlagRond.MWBRM/RubyRing.DisplayName": "Ruby's Aura"

#

So the name of the item will be "Ruby's Aura" as displayed in the game

round dock
#

You’d still need a dialogue.json if all of your dialogue keys are in there. Having a i18n alone doesn’t do anything by itself.

long jungle
#

So basically, the i18n files stores the Phrases and Sentences where the dialogue.json will summon them from, as long as you match the tokens correctly

round dock
#

i18n is pretty much an internationalization framework for translation ease

long jungle
round dock
timber pilot
#

understand it a little now

stoic chasm
#

Hellooo. I was just wondering, how do the tile properties work? I am confused SDVpuffersob

void aspen
# stoic chasm Hellooo. I was just wondering, how do the tile properties work? I am confused <:...

Tile properties is a way to add different mechanics to a purely visual tile
Usually tile properties on tilesheet are tied to the map tilesheet used on, so different maps using the same tilesheet may have different properties on the same tiles
Your tile can have properties in two ways, either by having it on tilesheet to give that property to every tile on entire map or done via TileData on purple objects layer if you want some individual tiles to have some particular properties
Usually only Back and Buildings layer tiles can have properties (Also to mention that all tiles on Building layer have collision property automatically, unless changed)
https://stardewvalleywiki.com/Modding:Maps#Known_tile_properties

#

Tileset properties can be access via this button on the bottom right if you wanna edit them or just see what they have

stoic chasm
#

Oooh okay

void aspen
#

You can also click on any tile on the tileset to see if it have any tile property

stoic chasm
#

Cool! Thank you! I also have a follow-up question, if you don't mind answering that for me

void aspen
#

Sure thing

stoic chasm
#

So, I want to have some pride flags on the walls of my npcs house. Is there a way I can make it so that if you interact with the flag, a text box will pop up so I can put a small description of what the flag is?

#

Sorry if that doesn't make sense

torpid sparrow
#

Yes

void aspen
#

Yes, thats TileData

stoic chasm
#

Oooh okay

torpid sparrow
timber pilot
#

why does this need i18n?

torpid sparrow
#

For Chinese, Russian, etc

#

Anything that doesn’t use the alphabet

void aspen
#

thats the example of said TileData and its Property use

hard fern
#

I think it comes up when one npc reveals the taste of another npc

tiny zealot
#

yeah, like when jodi warns you never to give vincent alcohol /lh

hard fern
#

Ex: penny won't refer to pam as just "pam", but say something like "my mom" or something

torpid sparrow
#

Oh wait I thought it was just the npcname

#

Yeah nvm

hard fern
#

Im pretty sure this is how we get the elliott octopus daddy

torpid sparrow
#

The what

stoic chasm
#

Thank you for the assistance! I'm gonna go do that-

hard fern
#

Behold

tiny zealot
#

lmao

timber pilot
#

How do I use it? I'm trying to make two npcs and they are related

#

do't have a i18n file yet

turbid plank
#

Question about context tags. Are the cooking food ones used for anything in particular or there for potential future use?

tiny zealot
#

there are some mods that use context tags for things like allergens and dietary restrictions for NPCs

torpid sparrow
#

Thanks Elliott

turbid plank
#

Allergy restrictions is neat. I’ll be sure to add context tags to my items in my mod’s next update lol

hard fern
#

SDVpuffersweats and here i just manually put every food that contained eggs into a "rejectitem_" dialogue

timber pilot
#

is this a valid input? I'm so confused. I couldn't find anything onlie

tiny zealot
#

the {{i18n}} token, a content patcher feature, pulls a text value matching the provided key (in this case, "son") from your mod's i18n files

#

meaning, that is valid if your i18n has a "son" entry in it

timber pilot
#

I font have a key yet and I cant find key exampöes for this

autumn tide
void aspen
#

I suppose you create a i18n folder inside your mod folder and then add default json with all the keys and english text, once you finish, you duplicate it for each language you plan on supporting and then edit those jsons name and text content without touching the keys

#

then you use keys wherever as long as you do it like {{i18n:keyname}}

#

chosen language in game will automatically take the right json to pick text from

#

and if you dont have this languages it takes the default one

#

so english most of the times

timber pilot
#

this is way too confusing for me

void aspen
#

github link above does explain it better with examples tho

#

do you understand tokens generally?

#

or its something with i18n being confusing

timber pilot
#

i18n is confusing to me. I have no idea where to begin adding keys and everything