#making-mods-general

1 messages ยท Page 176 of 1

rough lintel
#

make it content packable and you will count on me adding stupid nuanced fanfic trope relationships PES_EvilRondo

lucid iron
#

goes around adding context tags to preexisting items...

rough lintel
#

muhehehehe or however that cat laughs

cyan marsh
#

so I'm not the only one who makes NPC Fight?

brittle pasture
#

cornucopia i think

lucid iron
#

no i mean

#

add after spawn

latent mauve
#

I've considered adding more food context tags to default items.

rough lintel
#

expect us patroleum ๐Ÿ˜ญ what

latent mauve
#

Never made that mod though

rigid oriole
rough lintel
#

barley you're so hot this is great news /lh

lucid iron
#

im trying to optimize these context tag gsq

cyan marsh
drowsy pewter
#

cornucopia does do that but i havent updated it to the new 1.6.9 format yet

latent mauve
#

(I did make an unpublished utility mod that adds items to a shop based on the context tag)

#

That you write into the config xD

brittle pasture
#

hmm
I know context tags per items are cached into a set

rigid oriole
#

My thought is if anyone wants to change whatever events I make for the vanilla NPCs or write their own for custom NPCs, it's all fair game

uncut viper
#

cornucopia adds tags after the item is spawned?

rough lintel
#

[gently hugs my cornucopia context tags]

latent mauve
#

I wanted a way to quickly pull all the foods with a given context tag into a visual list in game, so I made a mod to do that LOL

rough lintel
#

oh thats neat

drowsy pewter
rough lintel
#

what are the current context tags tbh. does vanilla have any like _nut or _milk or whatever

uncut viper
#

you can do whatever you want to an item after its spawned with C#, including adding context tags, which is what i think chu is asking about

lucid iron
#

the thing i want to dodge is this
ItemQueryResolver.TryResolve("ALL_ITEMS", context, ItemQuerySearchMode.All, condition)
where the condition is something like
ITEM_CONTEXT_TAG Target a_context_tag

drowsy pewter
#

vanilla is pretty sparse on context tags

lucid iron
#

i was thinking i could like, do this one time

#

and build a lookup of tags

latent mauve
#

Vanilla lacks a lot of context tags for food

brittle pasture
#

fresh farm produce adds fresh and stale tags after the stalening if that counts
those are runtime tags though, which I'm not sure if MCP handles correctly if at all

drowsy pewter
#

food_pasta is my favorite

lucid iron
#

yea hm

rough lintel
#

if i channel my uber autism, i might just go add context tags to stuff for fun

latent mauve
#

Ah, yes, bruschetta, the most famous of pastas.

lucid iron
#

maybe its dum to worry about this then

lucid iron
#

sleep ill just make one of each Object in the game at launch

rough lintel
#

oh i know. i went nuts on my cornucopia copy to add compat for this tofu extend mod i liked and it is cobbled together by tape and willpower, but my god it works

uncut viper
#

foreach (...) { new StardewValley.Object }

lucid iron
#

but i am force to invalidate anyways its doomed

rough lintel
#

i have more fun modding and doing that stuff than like, playing the game. LMAO

drowsy pewter
#

whats the mod you're talking about? Maybe we could add it on our end

brittle pasture
#

if you only care about base tags and dynamic tags that are unlikely to change (id_o_whatevs) you dont have to invalidate unless the object data does

#

Using MCP to control a machine that accepts FFP stale item to turn them fresh is probably doomed though

lucid iron
#

yea but lots of ppl put tokens in their data/object edits which means cp invalidate those every morning right think

lucid iron
#

its important for functionality

brittle pasture
#

yea, why I said invalidating when object data does

#

which if you only do once per day its neglegible

lucid iron
#

im not saying content patcher bad here its more like my spaget scales badly

rough lintel
#

my spaghet!

uncut viper
#

iirc tokens will be checked daily but if the value hasnt changed the patch wont cause an update

drowsy pewter
#

I still dont get what problem we're trying to solve but I trust you're all having fun

lucid iron
#

either way its probably still better than ITEM_CONTEXT_TAG Target a_tag which costs 50-100ms blobcatgooglyblep

#

u see 6480 it takes me 3s to open the dehydrator in my game

calm nebula
#

What's going on lol

rough lintel
lucid iron
#

im trying to make that less bad

uncut viper
#

50-100??

#

how many items do you have

calm nebula
#

Are we taking thing s apart

lucid iron
#

it scales linearly with amount of objects prob

calm nebula
#

I like taking things apart

lucid iron
#

i have wag cornu vmv and some incidental stuff

#

baubles too actually looking forward to having enough gold for that

drowsy pewter
#

i still need to play that

tiny zealot
#

it's fun to backsearch for "spaget" because it's almost all chu and it's delightful /pos

lucid iron
#

anyways yea even if its not perfect a one pass lookup table is prob better than this current nonsense

uncut viper
#

wonder how long it'd take to dehydrate once you install raffadax

brittle pasture
#

die

lucid iron
#

im only responsible for 42 out of 153

calm nebula
#

So sleepy

brittle pasture
#

actually nah, it would take 0 time since IIRC raff still uses PFM for most of its machine rules

calm nebula
#

Sooooo sleepy

brittle pasture
#

and PFM support is kill

lucid iron
#

never heard of her

calm nebula
#

What is open dehy

uncut viper
#

is raffadax not removing that in the 1.6 update?

lucid iron
#

open the machine control panel menu for dehydrator

calm nebula
#

Oh hhhhh

lucid iron
#

which involves finding out all the valid inputs

calm nebula
#

I was thinking like literal with screwdricer

drowsy pewter
#

can you just make machine control panel resolve every machine in the morning?

lucid iron
#

this is just one time until invalidate but 3s is really long

#

i could yea but im trying to make it better directly

brittle pasture
uncut viper
#

if the machine resolves in the morning but another mod adds a context tag to an item after the morning it technically wont be accurate

brittle pasture
#

(though from an unbiased opinion they should do that work to move to CP/EMC)

uncut viper
#

i think raffadax should use BETAS

drowsy pewter
#

Yes

#

let's make it happen

uncut viper
#

ill be honest. i actually dont know what raffadax is really or who even made it im just a poser

#

all i know is it has a lot of items i think?

lucid iron
#

its got some vendors in it

brittle pasture
#

a raffillion of them

lucid iron
#

they r like forest spirits

tiny zealot
#

isn't raffadax also the author's name

rough lintel
cyan marsh
#

(not all the songs are the version in the mod)

gaunt orbit
#

technically the mod is called "Raffadax Complete Production", people just call it raffadax for short

#

and the reason it's called that is because it's a conglomerate of all of raffadax's content mods

stuck socket
#

Hey, you've probably seen this message thousands of times already
I am interested in making a mod for Stardew Valley but I have little or no experience with programming, I started researching the wiki and took the option of asking for help or advice here, so
Is there something where I can start?
like, create new/custom maps, creation of npcs, etc.

rigid oriole
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

rocky anchor
#

Should I be able to find Fashion Sense items through Item Spawner?

brittle pasture
#

fashionsense items are usually only found in the hand mirror menu, not physical items like vanilla clothes

#

I say usually since FS apparently supports being actual items now, but there's probably like 1 mod that uses that feature currently

drowsy pewter
#

I love that feature

ivory plume
#

(Seasonal Hats will be releasing an update using that feature pretty soon, now that Content Patcher's local tokens are available.)

gaunt orbit
#

ugggggh I forgot that dynamic is object and KeyValuePairs are structs so you can't cast a Dictionary to an IEnumerable<dynamic>

#

I think I have to do something messy qith linq

tiny zealot
ivory plume
#

I'm not sure how Fashion Sense integration would change any dialogues you have?

tiny zealot
#

i have a data file that maps duplicate hats into a single reaction dialogue. if it adds fashion sense versions of the hats, then i would want them to map to the content patcher ones

#

i'm not actually upset, it's just that i added support for those hats today SDVpufferheart

gaunt orbit
#

actually wait I can use dynamic generics for this

ivory plume
#

You won't need to. The whole idea of the new Fashion Sense feature is that they're still regular Content Patcher items, but they have metadata which lets Fashion Sense hook into them.

drowsy pewter
#

Yeah, the feature is pretty amazing

tiny zealot
#

ah, i see! i misunderstood then. carry on!

#

although

#

it depends on what fashion sense returns when i ask it what hat is being worn

#

i am calling fsapi.GetCurrentAppearanceId(FSApi.Type.Hat, who);
actually it doesn't matter what it returns. i'll get a new string anyway because of how i constructed this

#

do you know if there's a way i'll be able to tell if the result is a content patcher item?

brave fable
#

it sounds as if these FS items are CP items

#

unless there's a context tag, moddata, or custom fields entry, there's no distinction?

#

im not sure why you'd use FS though unless you want people to just be able to cheat in your clothing via the FS menu

tiny zealot
#

my thing is that hat mouse needs to know what hat you are wearing in order to load dialogue for it

#

i don't use fashion sense, but approximately everyone else does, so i would like to support it

#

FS overrides whatever real hat you are wearing, so i have to ask FS first. that returns a <bool, string> tuple, and the string is something like
KaileyStardew.OrangeHatFS/Hat/Orange Hat

#

i do some nonsense about it after that, but as of now, if i get back a string from FS i treat that like an FS hat

#

this feature makes real (CP-added) hats appear in the fashion sense menu, if i understand correctly

#

so my question is what comes back from GetCurrentAppearanceId and whether i can tell from that string that it came from a real hat

#

(i am hoping it's just the hat's ID, since those should not contain slashes and that's probably a reliable check)

brave fable
#

im not sure if 'does the hat name include a /' is exactly reliable for checking for an FS item hahah

tiny zealot
devout folio
#

Hello! So, I'm in dire need of help. I'm trying to make my mod translateable but I don't think it's working.
I have my Dialogue.json file that gets loaded as a new NPC's Dialogue file and, amongst many other lines, I have her introduction dialogue.

Here's how it looks in the Dialogue.json:
"Introduction": "{{i18n:dialogue.Introduction}}",

And here's how it looks in the i18n/default.json:

"dialogue.Introduction": "You're the new ${guy^gal}$ that moved in from the city, aren't you?$1#$b#I'm Quinn! It's lovely to finally put a face to the name.$1",

Except when I load the game and talk to her all I see is a single { followed by a blank text box. I feel like this might be a well documented error that has an easy fix, though I'm struggling to figure it out for myself.

ivory plume
#

Hi! If you're using "Action": "Load" to load Dialogue.json, you can't use Content Patcher tokens like {{i18n}} in the loaded JSON since it's raw data. The usual solution is to load an empty data file, then use EditData to add entries which can use tokens:

{
    "Action": "Load",
    "Target": "Characters/Dialogue/{{ModId}}_Quinn",
    "FromFile": "assets/empty.json" // a file just containing `{}`
},
{
    "Action": "EditData",
    "Target": "Characters/Dialogue/{{ModId}}_Quinn",
    "Entries": {
        "Introduction": "{{i18n:dialogue.Introduction}}"
    }
}
devout folio
#

Thank you so much for your help! I did that with the Schedule, don't know why I didn't think to do that with the dialogue. Again, thanks! ๐Ÿซฐ

ivory plume
#

I can post a preview build of Seasonal Hats with the feature if it helps.

tiny zealot
#

that would be super! thank you

gaunt heath
#

Loving that you're using the most ridiculous possible hats for this example SDVpuffersquee

ivory plume
gaunt heath
#

This is the first I'm hearing of this feature, but I'll look into it and update seasonal hats on nexus time permitting

ivory plume
#

(Just to avoid confusion, this is Seasonal Hats by ParadigmNomad, which is distinct from the similarly named Seasonal Hats by Beans and Maea which you ported to Content Patcher.)

tiny zealot
#

(my son is also named Bort)

gaunt heath
#

Ah, both were equally likely lol

tiny zealot
#

thanks, pathos!

gaunt heath
#

I still will look into it though, it sounds really neat

spice cloud
#

I'm not home nor on pc so that's why I'm asking, if your npc is non romancable, can you set them up to dance at the flower festival or no?

gaunt heath
#

Orange hats too, I suppose. I guess I can stop releasing paired content patcher/fs sets if I'm understanding this correctly SDVpufferwow

reef kiln
#

Is that why mod have json called empty with nothing in them always wonder

tiny zealot
spice cloud
gaunt heath
#

Exciting and efficient new ways to put an orange on your head!

calm nebula
#

Does it equip the actual hat or just draw the har

tiny zealot
#

just draws it. i'm seeing some weird behavior with pathos's preview which seems to be on FS's end, but disregarding that, for my purposes it is a new appearance id so i'll have to add map entries

#

or do some reflection crimes to determine that it comes from a CP hat, which might not be bad at that

calm nebula
#

hmm, can you do something stupid like

#

if (fs.hat_name == game1.player.hat.name

#

with correct logic and like sanity ofc

tiny zealot
#

i don't think so. you are free to equip a real hat while the FS version of a different real hat is on

calm nebula
#

ahh interest

tiny zealot
#

what's interesting is the real hat can still change your hair, even though FS prevents it (the hat) from rendering

rocky anchor
#

Okay so, I have spawned my hat in FS and it works dynamically! I now just need it to appear in-game as an item so Pierre can sell it

#

I've got a CP file with a Load, but it hasn't created a hat at all, let alone whether it's the FS item

#

Load has worked for my boots!

simple spoke
#

does someone know if the Number of the Growthphase Sprites for crops has a limit?

gaunt orbit
#

technically yes, practically no

#

though there's a minimum time of 1 day per phase

drowsy pewter
#

do you mean the amount of phases or the number of days in one phase

simple spoke
#

i mean the amount of phases

drowsy pewter
#

yes its limited by the size of the sprite sheet

#

eight phases total, two of those are seed phases

#

so in GrowthPhases its 6 phase max (5 If its a regrowing plant)

simple spoke
#

thats explains it. so i need to cut two out. what a shame.

#

thank u

drowsy pewter
#

yep

#

i recommend always checking against vanilla tilesheets

simple spoke
#

I looked at other mods plants and saw a pattern. Next time, i will do that before drawing.

gaunt orbit
drowsy pewter
#

the game expects a new index for crops every 128 pixels along the sheet but i will admit i have never tried to make a crop with ten phases

#

feel free to try it

gaunt orbit
#

hm

#

ah yes completely comphrehensible

#

so based on the math, if it's fully grown or regrowing, it will always be slot 7/8, but otherwise is limited to 16 if it's in the left column and 8 if it's in the right column

drowsy pewter
#

so you can have a 16 long crop if it doesnt regrow?

#

@simple spoke have at it

#

I assumed the hardcoded 7/8 slots and seed slots on the next crop index would prevent it from advancing

gaunt orbit
#

well, yes and no. fully grow non-regrowing will always show slot 8 it looks like

#

but otherwise you can have 16 slots

#

can't have more because it clamps the values

drowsy pewter
#

huh?

#

so it grows through 16 phases and then loops back to frame 8 when fully grown?

gaunt orbit
#

yeah

#

fully grown is hardcoded to slot 7 if regrowing and slot 8 otherwise

#

but it just uses the phase number if it isn't fully grown

#

idk why it doesn't just use the same index logic as everything else
I don't think it would be too hard to write a framework to enable opt-in standard index behavior for custom crops though, so you can have unlimited phases

drowsy pewter
#

fully-grown regrowing crops will use a prior phase sprite if the amount of growth phases is less than 5, and it's their first harvest

#

after the first harvest it does jump to frames 7 and 8

gaunt orbit
#
return new Rectangle(
    Math.Min(240, (
        !fullyGrown.Value ? (
            (phaseToShow.Value != -1 ? 
                phaseToShow.Value : 
                currentPhase.Value
            ) + (
                (
                    (phaseToShow.Value != -1 ? 
                        phaseToShow.Value : 
                        currentPhase.Value
                    ) == 0 
                    && number % 2 == 0
                ) ? 
                    -1 : 0
            ) + 1
            ) : 
                (dayOfCurrentPhase.Value <= 0 ? 
                    6 : 7)
    ) * 16 + (
        effectiveRow % 2 != 0 ? 
            128 : 0
    )),
    effectiveRow / 2 * 16 * 2, 
    16, 
    32
);
``` this is the full formatted logic
#

idk how it handles fully-grown sprites with less than 8 phases. maybe they're right-aligned and it fiddles with phaseToShow

drowsy pewter
#

@simple spoke sorry for pinging you, false alarm

simple spoke
#

I think i need a coffee before i am able to try to understand whats happening here right now.SDVpuffertbh

drowsy pewter
#

basically it boils down to: yes you can only have 8 phases max (as i originally said)

simple spoke
#

thats something i can work with.

lucid iron
#

yey i got my spaget down to 677ms for dehydrator

gaunt orbit
#

I am going to framework this nonsense... later

uncut viper
#

are you gonna split the loading of the dehydrator stuff across several frames when you detect the user starts hovering over the button

lucid iron
#

no im gonna add prefetch that

uncut viper
#

gotta get that fancy preload

lucid iron
#

on invalidate

gaunt orbit
#

remind me in 36 hours to unspaghetti crop indexes

patent lanceBOT
#

๐Ÿ˜ (#6481456) (36h | <t:1737304192>)

uncut viper
#

wont that still not work for mods that add tags at runtime

lucid iron
#

it never worked in the first place

#

cus it was looking at item query results

#

not item u have

uncut viper
#

tbh i was still half asleep at the time i dont think i followed very well

reef kiln
#

All this growth sprite talk makes me want the invisible seed from Vincent shop. Too bad it is not updated. Yes I am weird. Talking about drawing sprites makes me want a blank sprite sheet.

lucid iron
#

i did think about perhaps having an alt mode that check for things u own somewhere in the world tho

#

but it may get confusing blobcatgooglyblep

pliant badger
#

When making a character replacement, is it possible to change the actor's name? Replacing Penny as a test.

uncut viper
#

you can change their display name yeah. i wouldnt recommend changing their internal name

lucid iron
#

yea edit her name in strings

#

then u can limit it to langs u got tl for

tiny zealot
#

keep in mind that a character's name may be spoken in dialogue or contained in item names, and you will have to update those too since they don't pull from the character data

drowsy pewter
#

I think i would prefer getting an untranslated english name if the point is to replace a character

#

actually this doesnt matter

opaque cobalt
#

was there an update to CP recently? Just got a comment left about a new error in patcher when I haven't touched the mod since June of last year so I find it less than likely it is me screwing up an update.
Comment:

Got a new warning from Content Patcher (I think because of recent updates to improve CP):

[Content Patcher] Error loading patch 'Penny Expanded Patch for SVE > Include Assets/{{Trailer}}.json': file 'Assets\Trailer_Big.json' doesn't exist..

It looks like your mod is trying to include Trailer_Big.json when the player has seen an event (I'm guessing it's the "upgrade home" event). But the original Penny Expanded mod didn't have Trailer_Big.json so... are the patched additions supposed to be the same as in Trailer.json?

shadow pagoda
#

follow up to this question, how would I get the upgrade information for the farmhouse? I was able to get the BuildingData object for the farmhouse like so

BuildingData farmHouseBuldingData = Game1.buildingData.FirstOrDefault(kv => kv.Key == "Farmhouse").Value;

I tried getting information like the BuildMaterials, Builder, and BuildCost for this object. But it was all some sort of variation of None I tried checking BuildingToUpgrade as well, but that was null

simple spoke
#

Its working now. Thx for the help

uncut viper
#
{
  "Name": "Trailer",
  "Value": "Trailer_Big",
  "When": {
    "HasSeenEvent": "611173",
  },
},

further down in your file you have this:

{
  "Action": "Include",
  "FromFile": "Assets/{{Trailer}}.json"
},

but you do not have a file named Trailer_Big in your Assets folder

gaunt orbit
#

in GameLocation.houseUpgradeAccept

safe trout
#

Hey! I'm a new modder trying to make my very first mod using Content Patcher. One of thethings I'm trying to do is make the Lawn Flamingo behave like a scarecrow but nothing I'm doing is working and I was wondering if anyone could help?

shadow pagoda
# gaunt orbit farmhouse upgrades aren't handled through building data, they are hardcoded

Are you aware if there's any other upgrade/building that is like this, or is this only exception? I did find this list of keys within buildingData, but I have yet to 100% the game, so I'm unsure

Junimo Hut, Earth Obelisk, Water Obelisk, Desert Obelisk, Island Obelisk, Gold Clock, Coop, Barn, Well, Silo, Mill, Shed, Fish Pond, Cabin, Pet Bowl, Stable, Slime Hutch, Big Coop, Deluxe Coop, Big Barn, Deluxe Barn, Big Shed, Shipping Bin, Farmhouse, Greenhouse
brittle pasture
#

those are constructible farm buildings

#

the farmhouse isnt one

#

it just is

gaunt orbit
safe trout
# gaunt orbit what do you have so far?

I'm also not super familiar with discord and I don't know how to put it in the text box thing but this is what I have right now for the scarecrow part:
{
"Action": "EditData",
"Target": "Data/Objects",
"When": {"LawnFlamingoIsScarecrow": "true"},
"Entries": {
"Lawn Flamingo": {
"ContextTags": ["crow_scare", "crow_scare_radius_8"],
}
}
},

uncut viper
#

!codeblock

ocean sailBOT
#

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

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

uncut viper
#

(but if your jsons ever get any longer than that you should use the smapi.io uploader)

brittle pasture
#

that's also the wrong item id to start with

#

the flamingo's item id is 36

gaunt orbit
brittle pasture
#

it's a craftable so Data/BigCraftables

gaunt orbit
#
        {
         "Action": "EditData",
         "Target": "Data/BigCraftables",
         "TargetField": ["36", "ContextTags"]
         "When": {"LawnFlamingoIsScarecrow": "true"},
         "Entries": {
            "crow_scare": "crow_scare", 
            "crow_scare_radius_8": "crow_scare_radius_8"
          }
        }
safe trout
#

Thank you guys! I tried the (BC)36 id and the Data/BigCraftables earlier and it wouldn't work. I guess the rest of the format was the problem. I appreciate the help! I'll test it really quick and let y'all know if it works.

brittle pasture
#

yeah Data/BigCraftables use unqualified ids as keys (same with objects and furnitures)

#

the qualified prefix is for the rest of the code that needs distinguishing between (O)36 and (BC)36

devout otter
#

So just an aside in my attempt to grasp how Fields work. Would doing it like this also work? { "Action": "EditData", "Target": "Data/BigCraftables", "When": {"LawnFlamingoIsScarecrow": "true"}, "Fields": { "36": { "ContextTags": { "crow_scare": "crow_scare", "crow_scare_radius_8": "crow_scare_radius_8" } } } }

brittle pasture
#

the problem with Fields is that it will replace ContextTags with just your entries

uncut viper
#

you'd want to TargetField deeper into ContextTags itself

brittle pasture
#

though it will keep the other top level entries intact

#

using TargetField allows you to add to ContextTags

uncut viper
#

that also wouldnt be the format for doing that even if you did want to replace all the contexttags

#

because contexttags is a list

dreamy cedar
#

I'm working on adding content to the 'powers' tab, which requires pixel art that's 16x16. I'm way too unskilled with pixel art to be trusted with making my own, so I want to use some of the stock art. Particularly stuff in TileSheets/Craftables.png. The shame of it is that those things are all 16x32 and, like I said above, it looks like PowersData takes a sheet and a point, not a point and a size. I think I'm clever enough to do some cut&paste and a resize, but that'll be kinda nasty. Is there a way I can still use the same art and let the game do the resize? Or is there another PNG file that has all those craftables in 16x16 form?

uncut viper
#

there is no way around making the game use 16x16 sprites for it

brittle pasture
#

use the output item sprite instead of the craftables?

#

slice it in half?

#

open an art program and squish it with a hydraulic press

devout otter
#

I see, so basically you use Fields to pinpoint-change one entry.

drowsy pewter
#

kinda

uncut viper
#

are the sprites in TileSheets/Craftables not their output item sprites?

gaunt orbit
#

ask chatgpt /jk

drowsy pewter
#

its like entries but the top level thing isnt deleted, only the levels after that

brittle pasture
#

as in wine instead of keg, or jelly instead of jar

uncut viper
#

whats the output of a snowman

drowsy pewter
#

you can also combine Fields and TargetField i believe

uncut viper
#

you can!

brittle pasture
#

I'm assuming they're adding powers corresponding to Junimatic machines

devout otter
#

Is there a use case of Fields that TargetField can't do?

drowsy pewter
#

if you have a specific circumstance where listing multiple stuff in Fields is possible whereas youd have to split it into multiple blocks for TargetField (as its one level further down)

uncut viper
#

i dont think you can TargetField into something thats just like, a string

drowsy pewter
#

im pretty sure i did that at some point

uncut viper
#

or an int

#

like it wouldnt make sense to TargetField into an item's Price

drowsy pewter
#

but you would targetfield into the object entry and then use Entries Price

#

Ah! Imagine changing the price of 500 objects in one EditData block. You can do that with Fields

devout otter
#

Ah okay! I get it now. Thank you, all.

drowsy pewter
#
            "Action": "EditData",
            "Target": "Data/Objects",
            "Fields": { 
                "301": {
                    "Price": 300
                },
                "302": {
                    "Price": 300
                },
                "303": {
                    "Price": 300
                }
            }
        },```
#

aw you got it

devout otter
#

Aw, I appreciate your example all the same.

dreamy cedar
brittle pasture
#

funny you mention crab pots since it's one of the only machines that's 16x16

dreamy cedar
#

lol

safe trout
#

@gaunt orbit@brittle pasture It worked! Thank you guys! I just had to add a comma to it. But I have another question. I use UI Info Suite and it has the option to show the scarecrow range. Should that automatically apply to this or do I have to figure out a way to do that myself?

brittle pasture
#

I think it should be automatic

#

someone here had problems with UIIS2 lagging when using their 300 tile radius custom scarecrow

safe trout
#

It's not showing up at all for me

oblique frost
#

Is "Cant_Sleep.000" not a valid Id for a string? Because my other strings work for dialogue in the schedule, but this one doesnt. The Npc just says "string" and then when I click again, they say the path.

ivory plume
uncut viper
#

last i checked UIIS2 had a bug that prevented it from detecting custom scarecrows that was fixed in the dev branch at the time but not in release. it might still be unreleased

#

bc it only checks for "arecrow" in the name (which vanilla does too) and not the "crow_scare" tag

brittle pasture
#

yeah I remember now too

oblique frost
brittle pasture
#

I think you suggested just adding "arecrow" to the internal name as a workaround lol

uncut viper
#

itd work i think. or just wait for the bugfix. i dunno when UIIS2 releases things

#

im remembering now its not in a dev branch actually just on their local machine uncommitted, so maybe itll be a while

#

(i also wouldnt suggest changing the internal name of an existing item tho)

safe trout
ivory plume
oblique frost
light bramble
#

does anyone know the footprint for the tractor garage?

ivory plume
#

Same as the stable: 4 tiles wide and two high, with two tiles at the front walkable.

light bramble
#

Thanks, making a smallish modding tool for myself, needed to add some buildings from mods I commonly use

rocky anchor
#

But no dice - CP says the hats.json doesn't exist

#

Probably a misunderstanding of how all of these files talk to each other, so appreciate your patience with me

dreamy cedar
#

Err, dumb one. What's the magic word to say that you want the springobjects.png as the source texture? I tried:

                    TexturePath = "Maps\\springobjects.png",

and that didn't work out well.

uncut viper
#

if you're loading an asset in C# and not using one of the Game1 constants then it doesnt have a file extension

dreamy cedar
#

OIC, I want to do:

                        TexturePath = Game1.objectSpriteSheetName,

?

uncut viper
#

i dont know, i dont know what the constant is off the top of my head

#

(technically not a constant but yknow what i mean)

dreamy cedar
#

Trying it now. It's constant enough for me.

uncut viper
#

it shouldnt be an actual const. theres just a texture2d field on game1 somewhere

#

there might be a const for it but if you just need the texture, it already exists and is loaded somewhere

dreamy cedar
#

Got. Thanks!

ivory plume
# rocky anchor Trying to follow this as a foundation, I've created an `add-hat.json` and then t...

To clarify:

  • You say you added an add-hat.json file but include hats.json? If that's not a typo, the filenames should match.
  • What do you mean by including the hats.json file from your Fashion Sense content pack? (It would need to be a Content Patcher pack for Include to work.)

Note that the add-hat.json is just a way to repeat the patches for each hat. If you're just trying to add a Content Patcher hat to Fashion Sense, you only need a patch like this:

{
    "Action": "EditData",
    "Target": "Data/PeacefulEnd/FashionSense/HatData",
    "Entries": {
        "{{ModId}}/Hat/ExampleHat": {
            "Author": "Your Author Name",
            "PackName": "Your Mod Name",
            "PackId": "{{ModId}}",
            "FromItemId": "(H){{ModId}}_ExampleHat"
        }
    }
}
rocky anchor
#

Sorry, I should have been clearer!

My mod pack has a CP folder and an FS folder; inside the FS folder there's a hat.json (which was what I was using to dynamically change the hat appearance when inside/outside). I wasn't quite sure how to link it up with the CP, so I tried to call hat.json into my add-hat.json

ivory plume
#

If you already have a Fashion Sense content pack, I don't think you need to do this? This approach lets you have a Content Patcher pack only, and add the Fashion Sense-specific info through Content Patcher.

rocky anchor
#

Ah! Understood!

#

Well, sort of ๐Ÿ˜… I'm learning!

#

Thank you

ivory plume
#

Welcome! Feel free to ask if you have other questions.

light bramble
#

Question, if you made a seperate map that was like an extension to the farm but on a different map, would using the map property for IsFarm allow you to plant in it?

brave fable
light bramble
brave fable
#

for reference, all farms + greenhouse + islandwest use CanPlantHere: true in their location data entries

latent mauve
#

Friends, would this work correctly for loading the assets for a custom NPC?

        "LogName": "Load Urbosa Sprites and Portraits",
        "Action": "Load",
        "Target": "Portraits/Urbosa, Characters/Urbosa",
        "FromFile": "assets/{{Target}}.png"
    }```
#

Mostly wondering if {{Target}} is correct to save me from having to rewrite the name and location of the file, if the structure is identical in my mod folder, except within an assets folder at the top.

devout otter
#

Yeah, if your assets are in assets\Portraits\Urbosa.png and assets\Characters\Urbosa.png respectively, that's correct.

latent mauve
#

Awesome, thank you!

wispy gale
#

hey all, need some advice for dialogue mod, including compat. it solely uses <season_day> dialogue keys, so if i want the dialogue to run any year, do i need to also include _2 for year 2+? like have "spring_1" AND "spring_1_2" for every line of dialogue? or would i use conditions in like, the content.json, to apply to everything?

latent mauve
#

I'm sleepy, so I want to make sure I am understanding correctly: You are asking if you need years on the end of your keys if you have dialogue that is the same every year?

#

(as far as I know, if your dialogue is valid in any year, you don't need to include the year in the key at all)

#

You would probably only add the year to dialogue keys if you want specific years to have different dialogue.

wispy gale
#

Ooohh okay, yes that's what i was asking, ty! this makes it easier for me then heh

#

basically, i want it to run regardless of if players add the mod in year 1 or 2+

#

and yah same, i gotta sleep lol

ancient marten
#

whats the ID for regular mayo pls i need it so badly

#

nvm

normal trout
#

Hi, y'all. I'm doing a two map custom farm map mod for the first time (a secondary area accessible by a pathway that warps you to the new map). I know I have to set up the data for the new map (pointers on how to do that/helpful examples or links are also welcome), and I was wondering about the warps, specifically. The map property is Warp | [<int fromX> <int fromY> <string toArea> <int toX> <int toY>] and I'm not sure how to handle the toArea. Would it be the actual name of the .tmx map file? Would it be the name as specified in a certain part of the JSON files? ON the secondary new map, would it be to 'farm' or to the special name of the farm map I'm making? Please @ me so I can make sure I see your responses. Thanks! ๐Ÿ™‚

latent mauve
#

The toArea is the location ID defined in your Data/Locations entry

#

For the secondary map, unless you are editing an existing location, you will need to define the map in Data/Locations as a new entry with its own ID, which you can name whatever you want

#

@normal trout

normal trout
#

Okay, thanks! I'm going to have to hit the wiki to figure out the Data stuff in its entirety, so I'm sure I'll have questions about that lmao. Honestly I've only ever done replacements for vanilla map types, so this is a big project of new things ๐Ÿ˜„

mighty ginkgo
velvet narwhal
normal trout
hallow prism
rocky anchor
#

Who's excited to help me troubleshoot?!

cyan marsh
#

good morning everyone

rocky anchor
cyan marsh
normal trout
#

Oh no, you know you've stayed up too late when people on discord start wishing you good morning ๐Ÿฅฒ

cyan marsh
#

lol i'd still be asleep if my cats were not trying to destroy my desktop

normal trout
# cyan marsh I'm adding this in as a Variant for the spring time music. What do you think (I...

I am Very Particular โ„ข๏ธ about the sounds that enter my ears. So take this or leave it. I'm the girl who always turns my game's music volume down to a sliver on the slider ๐Ÿ˜… BUT my thoughts are that it's really pretty, very Spring-y, but feels a bit... fast? Can you slow the tempo (no idea if that's the right word, I don't do music things) down a bit? I'd be curious to hear it slightly slower!

cyan marsh
normal trout
#

I didn't even know it was based on an original. See how much I have a right to a musical opinion here? ๐Ÿ˜‚

cyan marsh
#

this one was edited ugh.. hang on

#

blah nvm.. you get the idea

#

I am pulling nostalgic game music into SDV.. I do hold some liberties of course, but they are made to resemble the original as much as possible

blissful panther
#

(Anyone got the money to commission Smooth McGroove to cover all of Stardew's music and make a music replacer? SDVkrobusgiggle /j)

cyan marsh
#

Now I should do a music fix for distant thunder... that thing is far too loud

blissful panther
#

It definitely sounds like the original, though... which is obviously very spring-y.

rocky anchor
#

Omg I just got a big red time out! Are there certain file types we're not allowed to share?

cyan marsh
#

already starting โค๏ธ

#

what did you try to share?

rocky anchor
#

A zipped copy of the mod I'm working on

#

Just has ,jsons and .pngs

cyan marsh
#

well.. what kind of mod are you working on?

rocky anchor
#

Content Patcher and hopefully integrating with Fashion Sense

#

Which is the part I was hoping for help with haha

#

I also tried to send my SMAPI log as a masked link - maybe that was it

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 7 C# mods and 1 content packs.

cyan marsh
hallow prism
#

Sometime discord doesnt like some symbols in messages

cyan marsh
#

I know nothing about your plight as 90% of the mods on my SDV are literally my own

slender badger
hallow prism
#

Ah yes masked links are banned

rocky anchor
#

Ah, thanks crew! Won't be trying to pretty up my messages again

slender badger
#

Rather than uploading your entire mod though, you're better off just uploading the relevant code file you'd like help with to https://smapi.io/json and sending the link instead

rocky anchor
#

But the EditData action seems to not be sending anything to the FS data path, at least from what I can see from a patch export

#

I can upload them each to JSON validator if that's easier for checking?

rocky anchor
#

I have been working on this all day, so I have a bit of the brain scramblies

frigid hollow
slender badger
cyan marsh
#

I feel attacked by this image

gray bear
gray bear
cyan marsh
rocky anchor
slender badger
#

Oh! Didn't realise you were on Discord as well ๐Ÿ˜„

rocky anchor
#

I'm vying for that sweet Mod Author role now

#

But in the mean time, trying to learn how to, um

#

Do it all โœจ

cyan marsh
slender badger
#

Congrats on the new releases last week, by the way! They're both very cute

cyan marsh
#

or do you mean in Nexus

rocky anchor
#

I have a couple more ready to go, I just thought "I'd better update my old mods before getting carried away"

#

And now I've been trying to fix the stupid rain hood for a week

slender badger
#

I'm not much help on the FS side of things, sorry, but a few other random bits:

  • Are the dynamic tokens leftovers? They're not needed in their current form since you can just use the CP token directly, and SMAPI will also complain about them since it's possible for the token to not match any conditions and thus not have a value
  • You could use a dynamic token for the shop conditions if you wanted instead of needing to duplicate the EditData code. Just have an initial fallback token with "Value": "", so that SMAPI doesn't complain
  • The second trigger action has the same conditions as the first. I assume it's meant to be a fallback for players who install the mod mid-save, but you can just do one trigger action with WORLD_STATE_FIELD WeatherForTomorrow Rain in the Conditions instead
rocky anchor
blissful panther
#

(Masked links and other Markdown are unfiltered for the farmer role and up right now! Making it less lax has been a bit of an experiment, but so far it seems to be going okay.)

slender badger
#

You're welcome, though you don't need to ping me on reply when I'm actively chatting ๐Ÿ˜…

rocky anchor
#

Ah, sorry! I do it out of habit to keep my comments in context

#

Busy Discord servers are so overwhelming ๐Ÿ˜…

#

Ohhhh but take the ping out! Got it

slender badger
#

Yeah, the reply is fine, it's just the bright background on the reply ping that's the issue ๐Ÿ˜†

blissful panther
#

Yeah, some day Discord might allow the super basic feature of having it default to off. We can certainly dream.

slender badger
#

Also whatever's going on with the FS/CP code might also be related to there not being a default condition SDVpufferthinkblob I assume it's meant to be hood down when inside and on sunny days, hood up when it's raining? Try removing the When check on the hood down code and move it so it's the top code block, that way it should always apply as a baseline and get overwritten by the hood up code when the conditions are met

rocky anchor
#

Literally in your display name too - sorry!

#

Okay, I have a lovely list of checks to start with tomorrow - it's 10:30pm here

#

But keep the feedback coming, if you have any more!

slender badger
#

Nothing more from me, sorry ๐Ÿ˜† Get some sleep though and come back to it fresh in the morning

rocky anchor
#

Okay but I'm just going to launch ooooooone more time

#

Then bed!

proper bobcat
#

Question, is a way to change the text dialogue sound/chirps?

#

Or is that hardcoded?

rocky anchor
#

So I did a patch export of Data/PeacefulEnd/FashionSense/HatData and my location-based patch just doesn't seem to... well, patch!

#

If anyone can see what I've missed, I'd be bloody delighted to hear it haha

#

Really is bed time now, though! Feel like I've done a full day of work ๐Ÿ˜‚

#

Have a good day, northern hemisphere-ites

slender badger
#

A patch export or a patch summary?

#

A patch summary should tell you info in your log about why something's not patching (although Includes will always say the patch isn't applied in a patch summary even if they're working)

#

(but come back to it in the morning SDVpuffersquee )

outer cedar
#

for some reason when i try and add custom objects to spring objects they just show up as a circlecrossed out, anyone know what to do

#

if i edit the prexisting objects sprites they do show changes i make to the sprite

gray bear
#

384x624 sounds like... a lot

#

!json can you share the entire code?

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.

slender badger
#

Don't add extra sprites to springobjects, that's just asking for incompatibilities. Create your own custom tilesheet and use that instead

slender badger
gray bear
#

i may be a silly worm saintworm

hallow prism
#

yeah creating your own tilesheet is pretty easy and will be wayyyy simpler for a lot of stuff

gray bear
outer cedar
#

hats.png is just that one hat

slender badger
outer cedar
#

This is just part of a custom NPC mod I'm making with Content patcher

slender badger
#

The Lorax? There's an existing mod that adds him as an NPC in case you weren't aware

outer cedar
#

so in the event i want it show the hat with the addobject command

hallow prism
#

(although i don't think calcite would be against two cakes as long as none of her stuff is used?)

hallow prism
#

so you want to make a hat object to show in an event? you may be better to use a temporary animated sprite for that but it's also a bit complicated

slender badger
#

Not saying you can't do your own take on it, just letting you know

outer cedar
#

i mean my mod isn't the lorax it's the onceler SDVpufferheart

#

but the lorax is in it for like two events i just drew my own sprites

hallow prism
slender badger
#

For the event, I'd recommend just doing a temporary actor with the same sprite rather than addObject

outer cedar
#

thats the risk you take if you use an established character but i did study other unrelated custom npc mods to learn how to do stuff but definetly didn't copy anything

hallow prism
#

oh yeah temp actors are way simpler than animated sprites

outer cedar
#

i'll try temp actor then thanks ๐Ÿ‘

#

wow yeah you're right this is way more simple you just have to load the tempactor in characters

hallow prism
#

the issue with objects is that then they exist, which means that you need them to have like, data and stuff

#

and manage things like excluding them from perfection

outer cedar
#

mmhm that makes sense, i mean the hat is already an object as in its wearable but i couldn't figure out how to addobject (hat) and im assuming that doesn't exist because all the boots and ring pickups are just in objects, no hats

calm nebula
#

Lol I have a save like that too

mellow karma
#

Hey guys, first time posting her. I tried my first Mod and added a custom seed. I have no errors in SMAPI but still 2 Problems: 1st: the price at the shop is doubled from what i thought i set them and the bigger prblem 2nd: with the seed in hand i cant plant them like other seeds, i dont see a parameter or something for this... any help?

brittle pasture
#
  1. is intended, shops by default have a 2x markup from base price
    as for 2. can you post your code?
#

!json use this site

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.

brittle pasture
#

the name of the entry in Data/Crops must be identical to the name of the seed object

#

you're currently using {{ModId}}_Avocado_pflanze for the crop and {{ModId}}_AvocadoKern for the seed

mellow karma
#

oh i see, didnt know that

#

worked, thank you

#

so i tested it and i wanted it to regrow after 2 days but when i harvest the whole plant is gone, is it more than just set RegrowDays ?

brittle pasture
#

what does your sprite sheet look like, maybe it's invisible

mellow karma
ebon mesa
#

What coding language is used to make mods?

iron ridge
#

json for content packs

#

c# for else

drowsy pewter
# mellow karma

for a regrowing crop with less than five GrowthPhases the spritesheet must be formatted like this

#

It always uses the 8th slot for the regrowing sprite no matter what

#

then after it regrows it uses the 7th slot regardless of where the finished harvest sprite was in the first harvest

mellow karma
#

ah ok thanks for the info

analog notch
#

hello
can i ask for assistance in a matter?

brittle pasture
#

if it's related to making mods

analog notch
#

yes

slender badger
#

You don't have to ask if you can ask, just ask your question directly

analog notch
#

i want to make a translation of the game for toki pona.. can i get a short(ish) guidance on how to do it?
i never made a mod before, but i have programming experience. also, for the paths, i use linux

drowsy pewter
#

You'd be making a Content Patcher pack

#

You can use the stardew Thai translation mod as an up to date example as you look through the wiki pages

analog notch
#

ooo

#

tysm!!

safe trout
#

Hey! I was on here last night asking how to make the Lawn Flamingo behave like a scarecrow using Content Patcher and was able to do that. Now, I want to change the description of the Lawn Flamingo to have the same description as the scarecrow and I'm struggling again. I scoured the Content Patcher author guide and can't find anything on changing descriptions for existing objects.

slender badger
#

You just edit the item but editing the specific description field instead of the item as a whole

brittle pasture
#

remember when you tried to use Fields? That should work for the Description, since it's just a top level string

analog notch
#

how to install xnbcli?

calm nebula
#

(you can also edit the field it points to on strings/objects)

#

why install xnbcli?

analog notch
#

hum

#

to pack n unpack xnb files

calm nebula
#

@ivory plume okay, stupid questions time. Who is "Github-sysadmin" on the mod compat repo?

#

is that "some dude with that name"

#

or "github some bot"?

#

I assumed (b) but looking at previous pull requests, maybe (a)?

#

some dude who looks at recently updated mods?

iron ridge
#

looks like a real person

acoustic summit
#

Im trying to test an NPC's spouse area behavior but they just... never seem to be going there. Does them going to the spouse area have to be specified in their daily schedule? Or is it built in like them sometimes being in their spouse room.

iron ridge
calm nebula
#

it's hardcoded to marrigeduties

drowsy pewter
#

im not that familiar

analog notch
iron ridge
#

stardewxnbhack is a command line program

analog notch
#

hum

#

wait a sec

drowsy pewter
#

its also better at unpacking some of the edge cases iirc

iron ridge
lucid iron
#

what mod are you hoping to make?

drowsy pewter
#

ah okay, i was just checking the thai mod files

iron ridge
drowsy pewter
#

They're making a language mod

analog notch
#

oo okay

#

i will use the former

#

thanks!

iron ridge
ivory plume
drowsy pewter
#

HAHAHA

calm nebula
#

I....legit assumed at first they were a bot

#

Legit

gentle rose
#

Same

#

Kinda shocked they aren't

calm nebula
#

"Oh that's cool, Pathos has a bot on Nexus updates"

#

"Oh that's a person?"

rough lintel
acoustic summit
#

Just spent like 2 hrs moving all the dialogue, display text, event stuff to an i18n and then referencing it. Putting it off to do after is not the play v-v

slender badger
#

I'm guessing you weren't aware of Nomori's i18n-ifier app? SweatSmileIan

acoustic summit
#

omfg

whole raptor
slender badger
#

!i18n We gotta use the !i18n bot command more often, it has a link to the converter

ocean sailBOT
#
Creating Translation Capability

So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!

  • How to make your mod compatible with other languages: stardewmodding.wiki.gg

  • The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".

  • If you're converting from an older version of the game, there's a converter for ease-of-access.

Not to be confused with {{DynamicTokens}} since these require the specific {{i18n:<KEY>}} modifier

slender badger
#

Probably also worth tweaking the wording there since it's not just for converting from older versions ๐Ÿค”

latent linden
#

dont know if this is allowed, but i wanna practice making farmer replacement mods for both pc and switch, but i have no motivation. would anyone like a custom farmer? furry, human, anything (just lmk if you want it as switch, pc, or both)

#

itll be free just i want smth to reference for this

hallow prism
#

i don't think it's forbidden but i'm not sure i would offer to do switch mods knowing how risky they are

rough lintel
#

^

hallow prism
#

hmm

#

i have an old mod that worked properly before, and i believe it worked fine even when i changed content format to 2.0.0

#

but now CP latest update (i think) has an issue with some formatting

#
[Content Patcher] Ignored Lumisteria Festival Additions > WillyStandRY2Graphic (Festivals): the When field is invalid: invalid named argument 'WillyChanges' for Random token, expected any of 'key'.```
```json

        {            
            "LogName": "WillyStandRY2Graphic",
            "Action": "EditImage",
            "Target": "Festivals,Maps/Festivals",
            "FromFile": "assets/WillyFish.png",
            "ToArea": { "X": 464, "Y": 55, "Width": 48, "Height": 57 },
            "When": {
            "Year": "3, {{Range: 5, 10}}",
            "Random: {{WillyStand}}": "01",
            "DayEvent": "stardew valley fair",
            }
        },        ```
WHich use a dynamic token as follow :
```json

        {
            "Name": "WillyStand",
            "Value": "01, 02 | WillyChanges",
        },```
#

since it mentions a key, it may just be that since then the random stuff need the key part to be specifically formatted?

#

(in which case it's possible it's the format change that caused the issue, i'm just surprised i then missed the wall of yellow several time but this is in the order of possible at the moment for reasons)

calm nebula
#

Weird

royal stump
#

I've never seen that formatting for random keys myself, I thought it required 01, 02 |key=WillyChanges

calm nebula
#

How the heck did it get that

hallow prism
#

as said it's a pretty old mod

calm nebula
#

Ah, yes

hallow prism
#

i'm pretty sure the first version of random was using implicit keys

calm nebula
hallow prism
#

then | evolved to be more versatile

calm nebula
#

That said

royal stump
#

could be true, yeah, I didn't use CP for quite a while

hallow prism
#

so in theory it should be as simple as copy pasting key= in all the right places

#

thanks

#

no more attack of yellow, i'll have to test it (eventually) but it looks better at least ๐Ÿ˜„

latent linden
# calm nebula Just release it and users will comd

that.. isnt what im making. im turning someones character into a mod. even if i was making a mod thats generic i have nothing to go off of hence why im asking if anyone would like a free mod done with their character

rigid musk
#

So you're asking if anyone has a mod concept for you to make for them?

latent linden
latent linden
rigid musk
#

ohh

hallow prism
#

switch modding is risky, if you aren't aware of how, don't offer mod for switch

latent linden
#

dude i have 4 modded switches

hallow prism
#

no, i can't answer the details of the risk of modding switch

#

yeah good, you'll offer them to people having issues i bet

rigid musk
#

most people dont mod the switch though because it can be risky

latent linden
#

ik how its risky, just modding stardew a mainly offline game has no risks. the only risks are if you commit crimes like tax fraud

rigid musk
#

personally i wont mod mine because i dont want to have my stuff t posed on by nintendo xD

#

You know im not even going to ask...

#

you can look at uh... oh whats the link

latent linden
#

the xnb mod warning? it doesnt change the game files

#

the mods for switch

rigid musk
#

this for mod ideas

latent linden
#

ic

rigid musk
#

i dont know if it will have what you're looking for but :D

latent linden
#

i wanted to make someone a personal mod but alr

rigid musk
#

this is for people who are already doing the mod making so for the most part theres not really people asking for others to do it for em ... unless they get misdirected

royal stump
#

SDVpufferlurk okay yeah, re: nameless keys* earlier
{{Random:hood, jacket, raincoat | outfit}} worked from formats 1.11.0 to 1.14.0, then stopped being supported in 1.15.0 (around 2020, when named keys were added)

hallow prism
#

thanks for digging ๐Ÿ˜„ so it's likely the format change that broke stuff and i didn't notice it, rather than the CP update in itself

iron ridge
iron ridge
hallow prism
#

it's not what i said however ๐Ÿ™‚

iron ridge
#

" i'm not sure i would offer to do switch mods knowing how risky they are"

hallow prism
#

i'm not interested in discussing it further

iron ridge
#

they aren't offering to mod switches, the offer is to maek a sprite replacer an xnb as well

elder mountain
#

And is it possible to use location data like 689 .35 682 .1 for fish? They write that this type is no longer used, but many vanilla fish have only such data, that is, there is nothing written about them in Locations

elder mountain
hallow prism
#

fishes that aren't in location

elder mountain
#

Well, such as sturgeon, for example, are not used

hallow prism
#

they are

elder mountain
#

Where? I didn't see anything about them in Data/Locations

hallow prism
#

      {
        "Chance": 1.0,
        "Season": null,
        "FishAreaId": null,
        "BobberPosition": null,
        "PlayerPosition": null,
        "MinFishingLevel": 0,
        "MinDistanceFromShore": 0,
        "MaxDistanceFromShore": -1,
        "ApplyDailyLuck": false,
        "CuriosityLureBuff": -1.0,
        "SpecificBaitBuff": 0.0,
        "SpecificBaitMultiplier": 1.66,
        "CatchLimit": -1,
        "CanUseTrainingRod": null,
        "IsBossFish": false,
        "SetFlagOnCatch": null,
        "RequireMagicBait": false,
        "Precedence": 0,
        "IgnoreFishDataRequirements": false,
        "CanBeInherited": true,
        "ChanceModifiers": null,
        "ChanceModifierMode": "Stack",
        "ChanceBoostPerLuckLevel": 0.0,
        "UseFishCaughtSeededRandom": false,
        "Condition": "LOCATION_SEASON Here summer winter",
        "Id": "(O)698",
        "ItemId": "(O)698",
        "RandomItemId": null,
        "MaxItems": null,
        "MinStack": -1,
        "MaxStack": -1,
        "Quality": -1,
        "ObjectInternalName": null,
        "ObjectDisplayName": null,
        "ToolUpgradeLevel": -1,
        "IsRecipe": false,
        "StackModifiers": null,
        "StackModifierMode": "Stack",
        "QualityModifiers": null,
        "QualityModifierMode": "Stack",
        "ModData": null,
        "PerItemCondition": null
      },```
#

(i copied some of the data of location for VMV, before i believe there was the way to just borrow fish data, so i know some of them are here)

latent linden
hallow prism
#

(her and her disagreeing doesn't mean she needs to be explained to, thanks)

elder mountain
#

I seem to have been looking for data the wrong way all along ๐Ÿคฆโ€โ™‚๏ธ

iron ridge
hallow prism
#

that's ok, it's not super obvious

royal stump
#

the fish data wiki page still references "slash-delimited data from Data\Locations.xnb" for some reason, but yeah, the fish data sections like 689 .35 682 .1 are labeled "unused" now & fish are just controlled by the new locations format

hallow prism
#

and possibly the mine fishes are indeed not here

#

(i don't remember ๐Ÿ˜„ )

calm nebula
elder mountain
hallow prism
#

i think it was discussed recently but i don't remember if it was "solved" as something doable

royal stump
#

(the rest seems accurate to 1.6 though)

teal bridge
#

I could swear I just explained this yesterday about the fish. Only ubiquitous fish like the Ghostfish are in location data. Level-specific fish like Stonefish and Ice Pip are hardcoded in MineShaft.

royal stump
#

yeah, the mine fish are still added via code based on floor number and such; you could probably use CP conditions to add floor-specific fish, but not remove the vanilla ones

#

not familiar enough with the new data/loc to be sure or know where you'd put that, though

hallow prism
#

default with condition as a GSQ maybe

teal bridge
#

Yeah, the location is UndergroundMine and you can add to that list, though the actual chance you specify will be affected by the hardcoding. If you need to limit it to floors, use a GSQ condition, but I don't think there is a vanilla GSQ for "mine floor" (although as Atra said the other day, it seems the floors are straightforward suffixes like "UndergroundMine50" and so on).

cyan marsh
#

here's an interesting query; If someone downloads 2 music mods that edit the default music.. will it conflict or mix together

#

(i assume conflict but I should ask anyways)

teal bridge
cyan marsh
#

hang on I'll show you what it looks like

wispy gale
#

hey folx, i have a dialogue mod compat question - if this code is the only Change in my content.json, does it mean my mod will ONLY run if a player has either CFE or DSV?

#

(the "RKAB_Alex_Dialogue" file has the Change, EditData code in it fyi)

cyan marsh
#
                "spring1": {
                    "ID": "spring1",
                    "Category": "Music",
                    "FilePaths": [
                        "{{AbsoluteFilePath: Music/Spring/thunder.wav}}",
                        "{{AbsoluteFilePath: Music/Spring/thicket.wav}}"
                    ],
                    "Looped": true
                },
``` If someone made a similar patch would they conflict
teal bridge
#

If you're replacing the entire spring1 entry then yes. If editing the FilePaths then no.

wispy gale
#

okay ty, that's what i thought - how would i...make it compatible regardless of a player having either mod?

teal bridge
#

Mods that add to dictionaries or lists have compatible edits. Replacing entire keys is not compatible.

lucid iron
#

u can target field into there i think, and just append ur music

teal bridge
#

FilePaths is a list so it could be compatible, but you may not be doing it that way.

wispy gale
#

i've done it before with Koda's help w/ CFE compat, but it was for a SebMarriageDialogue.json...not sure why it's not applying to Alex Dialogue

cyan marsh
#

well.. i don't know what people have done on their own.. sooo I did it basic

#

<.< also my music mod will probably cover a lot of things overall eventually

teal bridge
#

It's not a question of what other people have done. If you add to a list, your mod is compatible with any other mod that adds to that list. If your mod replaces the entire key, it is likely incompatible with any other mod that touches any part of that key, unless one of them adds to the list and the stars align in terms of which mod gets priority.

cyan marsh
#

meh..

teal bridge
#

If you want compatibility, don't replace entries, instead add to lists/dictionaries. Otherwise compatibility is at best a gamble.

cyan marsh
#

the answer went further than I needed.. but good to know.. Momma is a selfish musician

analog notch
#

i want to say that i did something

sly lantern
#

Hey everyone I'm new to making mods and I was trying to make a new greenhouse map, does anyone have any suggestions of tilesheets I can use? All the ones I seem to find have nothing really related to a greenhouse

lucid iron
#

town interiors

#

also CarolineGreenhouseTiles

#

rmbr to start from the vanilla Greenhouse.tmx and keep all the existing tilesheets

ivory plume
mighty quest
#

Am I drunk, or how the hell is this possible?

Context.IsWorldReady = false but the program fell out of the if block..

sly lantern
mighty quest
#

And why the hell is Farmer.forceCanMove running before the game window is even launched?

merry rampart
#

is there a framework mod that lets me adjust the lighting of certain maps without the use of C# coding?

ivory plume
lucid iron
#

It behaves a little weird between day and night tho

mighty quest
lucid iron
#

R u on a thread that isn't main

teal bridge
#

^ was just going to ask that. I remember you were talking about BG thread stuff yesterday.

mighty quest
#

wait a minute

teal bridge
#

If it's on a background thread, the value could have changed between those statements.

mighty quest
#

actually I think Pathos is onto something

merry rampart
mighty quest
#

this block is not part of the project being debugged

#

so it had not been rebuilt..

#

my bad everyone

feral oar
ivory plume
acoustic summit
feral oar
uncut viper
#

if you want other content packs to be able to edit your sprites, you should load them through the content pipeline

calm nebula
#

Traditionally for that...button got there first

uncut viper
#

then other people can target them through their content pipelines either via SMAPI or CP

calm nebula
#

Gmcm has an example

uncut viper
#

nowadays you dont really need to make your own custom content pack format because CP can handle a lot of it, and doing so means someone cant use CP features for your content pack format either (bc they cant make both a CP mod and a custom framework mod in the same one if they both need a ContentPackFor field)

ivory plume
lucid iron
# feral oar No, essentially I'm looking for a way to let other modders customize some sprite...
Stardew Modding Wiki

Framework mods refers to C# mods that add new functionality to the game's code, and allows content mods to make use of them without having to make their own C# component. They usually work by reading custom data set in content mods and then apply their changes accordingly.
This page details the various...

#

a example of this type of framework mod is extra machine config

wispy gale
#

like this?

feral oar
#

Alright, I'll see if I can make it work this way, thanks all for the help! What would be the best way to expose some mod state that could be used to choose which asset to replace with? I'm thinking something like a custom game state query that then can be used by CP's "When" field, but just want to make sure

lucid iron
#

hm im not sure what you mean here

#

usually it's best to just have the user put all needed data into the model once, rather than do any elaborate reloading on content patcher side

#

you will have to explain your usecase

uncut viper
#

editing the same keys inherently means one is going to overwrite the other

uncut viper
wispy gale
uncut viper
#

its not a maybe, its a certainty. you cannot have two identical keys that have different content in them.

#

you can have two patches that edit those keys differently under different conditions, which may make one patch apply and another not, but they cannot both be applied and seen at once

wispy gale
#

ohhh conditions could factor in okay, and dang

feral oar
oblique frost
#

I have that file already loaded in through content.json and another dialogue key is working, but not that one.

rare orbit
#

hey! there's a way to make say the wedding ring functional in stardew right?

uncut viper
#

what do you mean functional

lucid iron
rare orbit
lucid iron
#

or custom fields pointing to the texture

#

then ppl can decide what do DokkanStare

rare orbit
#

in vanilla you can equip it still but it's kinda there for decoration

#

when equipped i mean

uncut viper
#

as with all things, anything is possible in the land of C#. which iirc is still needed for custom ring stuff. or a framework to do the C# for you. but it really depends on what you mean by functional

ivory plume
lucid iron
#

here is a example of me using custom field for the custom hoe dirt texture

rare orbit
#

i dunno just an idea that's been rattling in my knoggin

lucid iron
#

the limitation of custom fields is that u can only put a string

uncut viper
#

(some exceptions apply!)

lucid iron
#

if u want a proper data model with fields then do the full custom asset setup

rare orbit
lucid iron
#

i infer that this is for the animals need water mod, but i never played with that one so idk what info is needed to provide support

oblique frost
rare orbit
#

the texture won't change but i want to add some stats! maybe it activates after giving your in game spouse/roommate the first kiss/hug for the ingame day

#

though i assume for that it wouldn't be a simple content patcher mod right?

ivory plume
uncut viper
#

it would not, no, i think you'd need custom C# for that regardless

lucid iron
#

still rather than reload texture conditionally, i think it's better to always load the texture, but conditionally draw it by your own mod's logic

rare orbit
#

oh boy ;w; this is gonna be a field day

ivory plume
latent mauve
#

Open the file at that location and then copy/paste what's inside it to the json parser ๐Ÿ™‚

oblique frost
#

Forest.000 works when I reference it, but the other does not

rare orbit
#

speaking of? is there a ring framework for stardew valley??

feral oar
uncut viper
#

you dont want to access the files of a content pack directly if you are not making yourself a ContentPackFor framework

#

(or rather, you cant get them directly, by design)

#

the person making the CP pack Loads their textures to a custom asset. you then load that asset name via SMAPI's content pipeline stuff

#

if, in my CP pack, I load dirtOveride.png into the Target MyMods/DirtOverride, then you, from your own mod, can Game1.content.Load("MyMods/DirtOverride") to get the texture i loaded

#

so if in the customfields someone writes the name of a texture asset e.g. MyMods/DirtOverride, you know what to load

ivory plume
oblique frost
ivory plume
#

Welcome!

lucid iron
#

yea what button said basically

#

this is how the content pack would provide the dirt

    {
      "Action": "Load",
      "Target": "Mods/{{ModId}}/FarmCaveHoeDirt",
      "FromFile": "assets/{{TargetWithoutPath}}.png"
    },
    {
      "Action": "EditData",
      "Target": "Data/Locations",
      "TargetField": [
        "FarmCave"
      ],
      "Entries": {
        "CustomFields": {
          "mushymato.MMAP/HoeDirt.texture": "Mods/{{ModId}}/FarmCaveHoeDirt",
        }
      },
    },
feral oar
#

Alright, this seems like the cleanest way to do this, thanks!

lucid iron
#

it is one extra step compared to contentpackfor, but it has advantages like allowing a recolor mod to edit this dirt

#

(very unlikely anyone would but u know, maybe if someone makes volcano recolor)

uncut viper
#

and lets people actually use Content Patcher

#

which is a huge plus unless you want to reimplement content patchers tokens and conditions system yourself

wispy gale
lucid iron
#

hrm i just thought of something though LilyDerp

uncut viper
#

Wed4 and spring_10 are different keys. there is no conflict there. its just a matter of the games dialogue precedence order in which it checks for dialogue

lucid iron
#

should the water spot be tied to the map?

#

in case ppl make barn/coop interior edits

uncut viper
#

it will not play them one after the other. the game chooses one dialogue to load for an NPC every day. you can only talk to an NPC once

#

at that point, its not a mod priority thing, you're just using the dialogue system

lucid iron
#

lots of ways to do things pick what feels good sleep

dense void
#

Hi everyone, can someone tell me if I'm on the right track?

{
"Action": "EditData",
"Target": "Data/Shirts",
"Entries": {
"1040": {
"HasSleeves": false
},
"1041": {
"HasSleeves": false
}
}
}
I just want to edit the "HasSleeves" of these shirts to false, without changing any other fields, and I also wanted to know if this would support conditionals. I wanted to make some specific shirts lose their sleeves in the summer.

uncut viper
#

using Entries will reset every other field that you arent changing to their default values

#

however shirts that are already spawned in the world wont have their fields updated when the condition changes

#

(there are mods that can make that happen but it depends on how many dependencies you want if any)

dense void
uncut viper
#

that looks fine to me

dense void
wispy gale
#

gah okay thx for ur patience, Button! it's just killing me, cuz it did happen once while testing. first it played CFE and not mine. then i changed something in content.json, maybe from "EditData" to "Include" or vice versa, or "When": "HasMod" conditional, closed the game, re-ran it, and it played CFE and then mine right after...on the same day with the same NPC. which made me think it was possible. like HOW SDVpufferweary

normal trout
# sly lantern Hey everyone I'm new to making mods and I was trying to make a new greenhouse ma...

Late to the party but I have thoughts! ๐Ÿ˜„

I'm not sure if you want to add any kind of requirement / prerequisite mods to your greenhouse edit, but I'm in LOVE with some of the grenehouse furniture mods available on nexus right now. The one I'm thinking of in particular is https://www.nexusmods.com/stardewvalley/mods/20139, which is a resource specifically for modders rather than an independent mod in its own right. Their art is GORGEOUS and has a lot of great tiles you could use! When I make my next greenhouse mod, I'm going to use them. Just wanted to send you that link. I'm catching up on messages for the day, so apologies if someone later down the thread already suggested this to you.

But yeah as someone else said, start with the ACTUAL greenhouse file, and it'll tell you what tilesheets you HAVE to copy into your folder to use to start with (and then remember to delete those after the fact - only custom tilesheets remain in the mod folder when you package it, because the tilesheets included with the mod overwrite any vanilla tilesheets, and make recolor mods that act on those vanilla files do nothing for your map!). Then add assets from there.

If you need any help or have any questions, feel free to ping me specifically! I literally started modding this game with doing a bunch of greenhouses years ago, and while my 1.6 knowledge is a bit rusty, I know a lot of tips and tricks for the basics of the greenhouse specifically ๐Ÿ’œ Happy modding! Hope you have fun!!!

#

(as a matter of fact, you've inspired me - I'm literally going to start the greenhouse mod I've been tossing around in my brain for a few days now lmao. Thank you! ๐Ÿ’œ )

fathom epoch
#

Hello all!! New mod creator and a llittle stuck. I am writing a mod for some horse skins for content patcher and have everything written out (coded), assets completed etc but loading it into the game the skin (no matter which I choose are not working. I get "Can't apply image patch "Shadowmere > Horse" to 'Animals/horse: the fromfile file 'assets\horse_oblivion.png' doesn't exist". But everything is there.

#

I have already wrote another horse skin mod and done testing and that one wors fine.

tender bloom
#

The slashes look weird

#

Idk if thatโ€™s a problem

#

Also is it definitely a png?

#

Instead of a jpeg or webp or something

fathom epoch
#

Let me triple check

#

Yes png

#

May I share my content informatiion?

rough lintel
#

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

drowsy pewter
#

can you screenshot your png in the fild folder

#

like so

fathom epoch
latent mauve
#

Can you turn the file extensions on?

drowsy pewter
#

should be png since (some of them) are transparent

#

hmm

fathom epoch
drowsy pewter
#

you dont have two copies of the mod do you? Maybe share your content.json with the link above and your log as well

#

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

drowsy pewter
#

!fileextensions

ocean sailBOT
#
Hidden File Extensions

Windows and Mac hide most file extensions by default. If you are creating or updating mods, it's helpful to show file extensions so that you can be sure all mod files are named correctly.

To show file extensions on your computer:

On Windows 10, open File Explorer, click on the View tab, then check the File Name Extensions box.

On Windows 11, open File Explorer and click on View > Show > File Name Extensions.

On Mac, open Finder, and in the menu bar, click on Finder > Settings (or Preferences) > Advanced, then check the Show all filename extensions box.

drowsy pewter
#

Because I see you're editing the mod on your desktop

#

unless your desktop is set up to be your mod folder that wont work

fathom epoch
#

I am using virtual studio code t creat the mod

drowsy pewter
#

wherever the mod is, it's in a folder called Desktop

patent lanceBOT
#

@light bramble: make a map modding tutorial (2d ago) [Requested by wopr1234]

drowsy pewter
#

if its not in your mod folder, it wont be added to the game

#

you may have one copy with the code and no images in your Mods folder and another copy somewhere else, which has the images

fathom epoch
#

I was in my mod folder. I had moved it to my desktop since I thought it would be easier to share anything from there

#

I can definitely move it back. ๐Ÿ™‚

drowsy pewter
#

Ah okay

#

can you please share your content.json and log then?

#

(according to the bot messages linked above)

rough lintel
drowsy pewter
#

If you want you can also zip the folder for your mod and send it here or dm it to me

fathom epoch
#

This what you mean?

drowsy pewter
#

a little easier to resolve mysteries like this

fathom epoch
ocean sailBOT
#

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

drowsy pewter
#

yup

fathom epoch
#

I've sent you the zip 6480

#

DM'ed it

drowsy pewter
#

Great! Will look

sly lantern
fathom epoch
#

My other little horse skin mod works great so I am not sure why this is being cranky. I would love to get these two fleshed out so I might hopefully put them on Nexus for others to try if they wish

drowsy pewter
#

I would just check again that the version on your desktop is the same one being loaded in your mods

#

Other than that I did change the Format field to 2.4 because I was too lazy to install CP 2.5

gaunt heath
#

Ahg I did that exact song and dance for like an hour once

#

"why are NONE of my changes doing anything!?!?!?"

fathom epoch
drowsy pewter
#

It looks like a pretty straightforward mod

#

if you want you can send another screenshot of the image files, this time in the folder path Stardew Valley/Mods/[CP] Shadowmere/assets

#

but I just can't answer why it doesnt work since I dont have access to your computer

patent lanceBOT
#

anytime, n3rdgirl64 xD

drowsy pewter
#

you can also try changing Format to 2.4 if you want to replicate everything I did

#

might as well rule it out

fathom epoch
#

It's working. lol

drowsy pewter
#

Lol

fathom epoch
#

All four skins load to my test farmer

#

Game is like She's sending it to professionals. Let's work now. lol

drowsy pewter
#

If it works, it works ๐Ÿ˜‚

fathom epoch
#

Right. So is it ok to post a mod like this to Nexus? With the name being Shadowmere? I don't want to get in trouble. I wouldn't think anyone would care but.

drowsy pewter
#

Yeah people make fandom stuff all the time

fathom epoch
#

Y'all are amazing. I don't now what I would've done with out the help

#

Thank you so much for the help

drowsy pewter
#

No prob. I'm glad I could help by doing... nothing ?

wispy gale
#

alright, i yam still troubleshooting this dialogue key compatibility thing - is there a reason why the game would run dialogue on a day not related to the dialogue key?

#

i'm trying to pick keys different from CFE without bothering/pinging Koda if anyone else has done this with CFE specifically

#

here's mine, summer_15

#

i reloaded the game to test again, and it played CFE on the same day

#

so i did "Find in Files" in Visual Studio code, and this was the key "fallSat6"

#

i am so confused SDVsobastian

lucid iron
#

@ivory umbra re comment on trinket tinker (way to force random idle animations to play at least 1 full loop)
random clips are rechecked when 1 anim completes, could you send vid of what you see?

median dune
#

I have a question, is there a way to get the data of each crop object on the farm somehow?

outer cedar
#

can you have a npc give the player a custom item in a heart event, or does it strictly have to be through mail?

outer cedar
median dune
outer cedar
median dune
#

As in every crop growth stage, the tile it's on etc. The things defined in crop.cs

rancid temple
#

I'm doing something with all the terrain features in every location so this isn't an ideal solution if you only want crops but I'm sure you can find a way to make it more efficient as terrainFeatures is a dictionary:

foreach (var feature in location.terrainFeatures.Values) {
  if (feature is HoeDirt soil && soil.crop != null) {
    CropData data = soil.crop.GetData();
  }
}
#

All the different fields provided in the data are accessible from CropData then

wispy gale
#

oh hi Koda SDVemoteowo sorry, i tried LOL

#

any recommendations? i am now just baffled

serene tapir
#

no worries! i enjoy helping (although i am learning a lot myself and apparently not good at spotting errors in other peoples code yet haha)

wispy gale
#

tyyy, lol we're all ~in process ~ SDVpufferheart

rigid musk
#

For the square_x_y feature in scheduling- should square_0_3 theoretically work so that they just move back and forth horizontally? or does there also have to be an x value?

#

when I left it at square_0_3 it didn't seem to do anything and then i changed it to square_1_3 and now they move like.. in the vertical direction but not at all horizontally still which is... weird

serene tapir
median dune
wispy gale
#

i knowww SDVsobastian SDVsobastian SDVsobastian which is why i'm at a loss

calm nebula
#

Y is vertical

wispy gale
#

like that's what you're seeing in the picture right? it's summer 15, but dialogue is fallsat6

rigid musk
serene tapir
#

are you using any other dialogue mods?

#

maybe someone else moved that line when cfde and their mod are both installed, our permissions allow that

wispy gale
#

Saph's New Introductions and some DSV dialogue has played during my keys too

#

Ohhhh that's a thing??

serene tapir
#

hmm neither of those should be a problem

#

yeah as far as im aware the only mod i've seen doing that is the haley's coming out stuff and I think they changed that with their newer update but it's allowed and I don't know every mod's code

rigid musk
wispy gale
#

right? should i share the log? idk how else to pick different keys

serene tapir
#

uh, yeah let's see a log and if you could also just give me your mod as it is rn that'd help too

wispy gale
#

okie thank u so much! ik how to share logs, but how would i share the whole mod?

serene tapir
#

a zip file ๐Ÿ™‚

#

altho idk if people at your tier can do that in this server, if not there are file sharing sites like... litterbox? i think? is what it's called?

wispy gale
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 44 C# mods and 45 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

wispy gale
#

did it...work?

serene tapir
#

hmm do you know what's causing those smapi errors?, and could you load that save again and use patch export characters/dialogue/alex and patch summary gizzymo.canonfriendlyexpansion for me?

#

looks like it!

wispy gale
#

yes will do!

serene tapir
#

okay so! Looking at your files, I think i see a solution to the problem your code is having (even if i don't understand what my own code is up to lol)

wispy gale
serene tapir
#

your content.json looks like this:

        {
            "Action": "Include",
            "FromFile": "Data/RKAB_Alex_Dialogue.json"
        },
        {
            "Action": "Include",
            "FromFile": "Data/RKAB_Alex_Dialogue.json",
            "When": {"HasMod |contains=AirynS.DSVE, gizzymo.canonfriendlyexpansion": true} 
        }

    ] ```

this doesn't actually do anything as far as I can tell, because youre still loading the same fromfile either way and there are no dynamic tokens or conditions on the alex.json side either. Instead, just use the first changes block, and add to your manifest a false dependency for cfde and dsv to make your mod load after them
wispy gale
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 44 C# mods and 45 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

serene tapir
#

yup! thank you

wispy gale
#

oh yah, my bad, meant to take out the second one - i was thinking they'd cancel each other out?

#

okie lemme try the dependencies in my manifeset

serene tapir
#

hmm my patch summary looks right and the blip doesnt seem to appear in the wrong spot in the patch export so... I have no clue, and since it's not immersion breaking I think i don't have to care

#

if someone with more skill than me knows why my fall_sat6 heart dialogue is displaying outside of season that'd be good info to have tho

wispy gale
#

like this yah?

serene tapir
#

i can't promise that's the right uid for dsv but otherwise yeah looks right to me ๐Ÿ™‚

wispy gale
#

lul yiss i gotta a spreadsheet xD

#

gonna run summer_15 twice and see what happens

#

appreciate u so much for taking a look!

gaunt heath
#

Are you sure that's the right mod ID?

#

DSVTeam.DiverseStardewValley is in my files for the DSV content patcher portion

#

That looks to be the ID for the diverse Stardew Valley Expanded pack

#

And not general DSV, unless that's what you're aiming for

wispy gale
gaunt heath
wispy gale
#

Oooo u right, just looked at their manifest too

#

thank u!!

serene tapir
#

thank you kailey i knew that looked off!

gaunt heath
#

There's way too many people on the DSV team for an AirynS id to make sense anymore lol

#

Not that we don't appreciate the heck out of airyn! SDVpuffersquee

serene tapir
#

right! but he's really proactive about making sure everyone involved gets credit so that uid wouldn't really follow

wispy gale
#

ahhh gotcha, i think i pulled it from an older dialogue mod i have

lucid iron
#

Airyn and Gang

gaunt heath
#

The Assorted Gays

lucid iron
#

On other big collab mods they usually just list everyone no?

#

SVE has like 5 names

gaunt heath
#

Not in the uniqueID lol

#

But yes

wispy gale
#

summer_15 checks out SDVpufferprideowo Koda, if i come across anything else similar as i test, would u like me to let u know?

normal trout
#

Hmm. Anyone around that can explain how DayTiles/NightTiles works these days to me? I haven't used them since like... <SDV 1.4 ish. Can I take a custom tilesheet and make a light using the property on a custom greenhouse map?

lucid iron
#

Do you want a glowing light

normal trout
#

I do yes

#

LIke a garden lantern

#

Rather than the overall ambient light property

lucid iron
#

Or like a lamp tile that changes texture to look like it glow

normal trout
#

Hmm. Both?

#

I have a day and a glowing version of the tile.

gaunt heath
#

I think the wiki has an updated guide on DayTiles that includes lights

normal trout
#

But I also want it to emit light at night

gaunt heath
#

One sec

lucid iron
#

For the former u use the light bulb looking Path tile

normal trout
#

The wiki is... very low on detail when it comes to map modding. That or I'm just too autistic, and the map properties section confuses me more than helps half the time ๐Ÿฅฒ

lucid iron
#

Or the map property that specify where all light sources are

gaunt heath
#

See here

#

I also reccomend checking vanilla maps where it's used

#

It makes way more sense in-context

serene tapir
lucid iron
#

if you want colored (not yellow) lights u need spacecore or mmap

normal trout
#

Yes I have that open and was looking at it. But it wasn't super helpful. I was confused in particular about teh tilesheet index - can I use a custom tilesheet? Or must it be a vanilla one? I know what tile indexes are, but not tilesheet indexes per se

gaunt heath
#

I think you're good to use a custom one, but only one way to find out

normal trout
#

Like, I've used DayTiles and NightTiles before, on outdoor maps with existing tilesheets. But it was literally years ago. So I wanted to see what changed, and how to go about the custom nonsense

gaunt heath
#

The tilesheet index is the tile index, same same

lucid iron
#

i dont think they changed very much

normal trout
#

The glow will only be added if the location is indoors and the <tilesheetIndex> is 256, 288, 405, 469, or 1224. in particular

wispy gale
#

okie cool, will do! what's best, reporting as a bug on nexus?

gaunt heath
#

Ohhh yeah I forgot about that clause

lucid iron
#

fun hardcodings PecoSmile

gaunt heath
#

Yeah it's hardcoded for windows n stuff

normal trout
#

Yeah. I know it's hardcoded into the default tilesheets, that those tiles will glow.

lucid iron
#

but again u may use a regular ol Paths light

gaunt heath
#

Why not patch your own tilesheet via content patcher conditions at night instead?

normal trout
#

And then they just won't swap tiles at night, correct? It'll just emit light?

gaunt heath
#

For the tile portion. And you can conditionally add lights to the map the same way

normal trout
#

Map Edits via CP are something I'm still trying to get the hang of. In my day (cue old lady voice) we could only do it in Tiled ๐Ÿ˜‚

gaunt heath
#

So make your map with just the day version, and make sure your tilesheet is loaded to Content/Maps and not in the same folder as your map. Then editimage your own tilesheet to turn the lanterns from the day to night version, at night only via content patch conditions. And then use editmap properties to add a light to those coordinates under the same conditions

normal trout
#

Is there a good explanation out there of the Conditions thing specifically? I have been messing around with data more and more lately, and haven't been able to find a good explanation beyond a mention in almost everything I'm trying to do ๐Ÿ˜‚ ๐Ÿ˜…

normal trout
#

Thank you so much! Time to get to reading these links ๐Ÿ™‚

gaunt heath
#

You'll want this one

#

The content patcher docs (the github links) are your friend, they're the textbook

normal trout
#

Yeah they've def been more helpful than the wiki as of late for me

gaunt heath
#

The wiki is for general modding and game data, not content patcher itself

normal trout
#

With map stuff specifically, anyway