#making-mods-general

1 messages · Page 571 of 1

steep viper
#

Could I please have this showcased? SDVpufferwow

#

Have you ever wanted to live in a cave? Or perhaps, take a cave nap? Well now you can without Harvey charging you. This mod adds a sea cave in a second large rock off the east pier.
https://www.nexusmods.com/stardewvalley/mods/42856

Nexus Mods :: Stardew Valley

This mod adds a sea cave in a second large rock off the east pier. You MUST fix the wooden bridge, or have the no clip mod, or swim mod to access this location.

#

thank you 🫶

primal tree
#

So, basically, if I want to make sure it doesn’t extend beyond the toolbar, the solution is—I guess I just have to switch to a different weapon to replace its sprite?

calm nebula
#

Yeah dknt use a dagger

#

Or tbh make your own weapon

hard fern
#

Why are daggers like this

rain inlet
#

small

torpid sparrow
#

This is true they are small

primal tree
#

Well, it looks like I have no other choice. Finally, thank you to everyone who helped me!SDVemoteheart

marsh reef
#

will these correctly render in game where they show up listed in the layers? or

#

and Tiled question, why cant i copy paste a large selection right now? I could previously

ornate locust
#

Are you on the right layer?

torpid sparrow
marsh reef
merry river
#

is it possible to have PerItemCondition check for several conditions? e.g. "PerItemCondition": "ITEM_CONTEXT_TAG Target EXAMPLE_1, !ITEM_CONTEXT_TAG Target EXAMPLE_2"

proven spindle
#

Though it's 'either' not 'all of these', not sure if that's what you're looking for

merry river
#

my idea was to check for all items with that specific tag except for the ones that have the first tag but another that excludes them

proven spindle
#

If it's 'all of these', I'd assume what you posted would work but I haven't tried it

merry river
#

more specifically, I have mushroom_item but I need to exclude some of the mushrooms

brittle pasture
#

[[Modding:Game state queries]] you can list several conditions separated by commas, and they will be evaluated as AND

brittle pasture
#

your initial code should work

merry river
#

thank you! I wasn't sure if the same applied to the PerItemCondition field SDVpufferheart

zealous owl
#

Hi hi, I’m trying to make a game state query that specifically checks if the bridge to the quarry is available but I cannot seem to figure out what to put in for it. Is there an event trigger? I swear I’ve looked the wiki up and down and I’m simply not seeing it. Thanks!

fierce vault
#

Hey all, wondering if I could get an opinion. I'm thinking about making a reddit post about my mod, but still have to add in a letter you receive after winter's over. I'll probably fix that in a few days, (maybe even later today) and since only will happen 5-4 weeks after my npc, I'm assuming most people wont get to that point immediately anyway. Do newly added letters from updates send if players update the mod if the conditions were met for it to show up earlier (before it existed)?

#

I think I'll just make the posts, and hope for the best.

fierce vault
#

If I get it done quickly enough anyway, it shouldn't really affect anyone playing normally

brittle pasture
#

it's listed on the mails page

zealous owl
primal tree
#

Here I am again… I was wondering if it’s possible to craft a sword with the Dagger ability using only the Content Patcher? If not, are there any other mods I’d need?

gaunt orbit
#

yes, it is possible

#

have you ever made a content patcher mod before?

brittle pasture
#

I think they already know and they are trying to get around the weird drawing offset of dagger weapons (see posts above)

#

XY problem thing

primal tree
#

Actually, this is my first time creating a mod. If it’s possible, I think I should go back and read the mod documentation to figure out how to do it. Thanks!SDVpufferheart (Just to be clear, what I’m looking for is the dagger’s special attack skill—the one that lets you attack enemies quickly.)

brittle pasture
#

the solution to your actual issue (if I'm inferring it right) probably involves transpiling the weapon draw code

#

MeleeWeapon.drawInMenu

void aspen
#

@fair ravine why you laugh reacted my mod 😭

#

oh I see why ❤️

hardy cedar
#

Hi everyone, I’m new to the discord 👋🏻 and looking for mod creation help. This is my first time ever creating a mod, so please be patient with me. I’ve been using the official SV wiki modding guide pages as well as a few forums and other resources I’ve found through NexusMods, but I’m hitting a wall. Maybe I’ve made my mod idea too complicated as a beginner or I’m just not understanding the guides 😞. Is anyone interested in helping me with my mod idea that’s willing to answer questions, give feedback/criticism, and/or play test? Any help is super appreciated 🤍

void aspen
#

What is your mod idea and what you've done already?

#

First recommended thing to do is creating a custom content pack or a custom map or a retexture so if it's something around that then even I can help

gritty bramble
#

Okay I haven't dipped my toes in this channel yet because I wanted to have my maps made before I deep dived into the more complex stuff, but out of curiosity are the NPC pathways going to be an issue if I change the placement of something (like the fences in town).

And similar to that note, do I have to make sure the puzzle path for the golden Lewis follows the same route for the statue to trigger?

void aspen
#

You can get the statue as long as you have the note, path doesn't matter

brittle pasture
#

NPC uses a pathfinder so unless your fences spots is going to occupy one of their end point it shouldn't matter

void aspen
#

it would be nice to retexture the path note to match your new thing tho

brittle pasture
#

as mentioned the statue isn't affected but your players may complain if their note doesn't match

gritty bramble
void aspen
#

Spouces can walk around your furnished house and farm so any npc can do the same with most map changes me thinks

gritty bramble
void aspen
#

unless you enclose them or mess with said endpoints

gritty bramble
brittle pasture
#

(SVE changes the town map extensively, making it so the Joja truck note no longer matches the roite, and instead of changing the path the author just changed the note to tell the player to go to the Joja truck directly)

gritty bramble
#

I might just make the puzzle path still doable for purists but yah

void aspen
#

Yeah making the same for lewis is as good too

#

was thinking about it

gritty bramble
#

Thank you SDVemoteheart

void aspen
#

Is there a way to turn my 2x3 tmx into a furniture piece like a sofa or a placeable jukebox which can be used without additional to cp frameworks?

#

or I need stuff like spacecore and such

#

since I need tiledata on it

#

oh the essay

lucid iron
#

Sofa you can do but it's not really easy

#

Have to write furniture data instead

#

For jukebox you need to make the furniture and then have something to associate the furniture with a tile action

#

You don't work with tmx files outside of map

#

It's png and data models

void aspen
void aspen
#

igh igh

lucid iron
#

The asset is Data/Furnitures

lucid iron
void aspen
#

jukebox isnt a furniture I suppose oh

lucid iron
#

Vanilla furniture does support sitting but not arbitrary tile action

void aspen
#

not in data furniture at least

lucid iron
#

Nah but there's a jukebox map action you can repurpose

#

So u can make it furniture no problem

void aspen
#

im fine with it being a separate non furniture thing too

#

ill take some wikis anyway

#

ty

lucid iron
#

Making it not a furniture would be harder imo

#

And still not possible with just content patcher

#

I try to recommend what I think is the easiest approach

void aspen
#

Yeah im just scared to use additional frameworks

#

but its totally gonna be the way for my next work

#

my monsters mod is a huge step above what I could do

#

gradually gonna do a more complex stuff

#

once I learn more stuff and practice on my little projects, I will update them to match my skill

#

theres still plenty of space for them to improve

#

Dove its been half an hour of you typing please have some mercy

lucid iron
#

Except the Target is a modded spacecore provided one

void aspen
#

I see

#

so its not complex in a slighest if I understand how to do cp changes

lucid iron
#

So it's really not that different, once u know how to do EditData in general it's applicable

void aspen
#

I see

uncut viper
#

The only real difference between most frameworks and what you're already doing is how good the documentation is for the framework

#

Most however have very good docs

void aspen
#

I suppose the more popular fw is the better its doc

proven spindle
#

That tends to happen naturally as more people ask questions about a framework they want to use

#

So more info and clarification gets added to the docs

#

But for every framework I've seen the author's happy to answer questions on it even if the docs aren't fully fleshed out yet

uncut viper
#

I don't think it's very true either

lucid iron
#

Is just like this

lucid iron
uncut viper
#

To add to what chu says there is no point to the framework existing at all if no one knows how to use it

hardy cedar
# void aspen What is your mod idea and what you've done already?

Thank you! Would love to share my idea 😊 Sorry in advance for the wall of text I’m writing!

I want to add a new coop animal (chicken) with ContentPatcher framework. I always felt there was a huge gap between coop and barn animal profits for mid to late game, so I wanted to create a coop animal mod that fills the gap but feels vanilla- friendly.

My mod adds an egg that can be obtained from Qi’s gem shop which you can hatch with the incubator into a special chicken. I want the chicken to be configurable for two production modes to choose between: 1) produce special eggs with a new artisan product made from them that gives the player a couple buffs, or 2) produce a randomized set of rare items related to Mr. Qi and Ginger Island (items produced in this mode would all be vanilla items, but rare & valuable like iridium ore, cinder shards, etc.).

I already have sprite sheets for the chicken, its eggs, & the artisan product made from the eggs. I recolored base game sprites and made slight tweaks so they are more unique. I also made two custom sounds for the new animal (adult and baby versions) using base game sounds layered over each other.

I’ve got my mod folder set up with JSON manifest & content files, & I set dependencies for Content Patcher and Extra Animal Config (which I want to utilize but don’t know how). The content file has a configuration schema to allow players to toggle whether the chicken produces eggs or rare drops, whether the chicken can eat golden crackers, and if the player wants the special eggs and artisan item to be counted toward perfection or not.

I have folders in the mod for the data JSON files, assets, and i18n for easy translation. In my data folder, I parsed out the data into separate JSON files so I can easily catch bugs or other issues. I have individual JSONs for: the chicken itself, the items (eggs and artisan product), mayo machine input/output, audio additions for the animal, & the patch to add the egg to Qi’s shop.

lucid iron
#

Whether they are better or worse mostly depends on whether i remember to write for non-programmers that day

lucid iron
proven spindle
#

I'm not saying frameworks get published with no documentation

#

Just that they tend to get more fleshed out over time, with stuff like examples and edge cases

lucid iron
#

I think before you get into configs and all that, you should do 1 make chimkin exist in your game, just letting it be buy from marnie is ok

hardy cedar
lucid iron
#

We can worry about the produce w/ EAC and config schema after chimkin exist

brittle pasture
#

nothing you describe so far needs EAC, so yeah I'd focus on getting the chimken to show up first

hardy cedar
native halo
#

hii, ive been looking all over for places where people are doing custom npcs (including their sprites, schedules etc) and most forums just say to ask in here so im unsure if this would be the right channel, but does anyone know any people who commission npcs? thank uu !

iron ridge
#

!commissions

ocean sailBOT
iron ridge
#

there's a non zero chance you're going to get spam dms from saying that btw, ignore anyone dming you asking you to commission them

native halo
#

tysm !

hardy cedar
brittle pasture
lucid iron
#

Have you taken a look at other new coop animal mods?

hardy cedar
lucid iron
#

I recommend this one

brittle pasture
#

that's exactly like what the duck does no

lucid iron
#

For now let's do just eggs for simplicity

hardy cedar
proven spindle
#

It might help to start a bit simpler

#

Create the egg object, have it show up in the game, and add it to a shop

#

Then start setting up the animal after that

hardy cedar
lucid iron
#

The one i linked only adds one animal, which is what you want to do right

hardy cedar
zealous owl
#

Hello again all! I am trying to create a warp totem type object that randomly picks from several possible locations to send the player. Is this something that is possible using the ObjectExtensionData in SpaceCore, or would it require more C# implementation (or secret third thing)?
I know the Eli and Dylan mod has (spoilers?)||the Chaos Totem||, which does essentially the same thing, but that appears to be a custom C# addition to the mod.

marsh reef
#

Anyone know how many tiles, past the player down, you can see max zoomed out?

uncut viper
#

Depends on the players screen resolution innit

marsh reef
analog ivy
#

does anyone know if it's possible to use Content Patcher to edit another mod's content.json? i could have sworn i came across a mod that used a structure like: "Target": "Mods\Folder/assets/example.png", but i cannot remember. anyways, i want to edit a mod's content.json using my own to add more configuration options

uncut viper
#

Not everyone plays at that resolution, so I wouldn't rely on it being consistent

marsh reef
#

Need to know how far off to place a secondary destination

uncut viper
#

Then feel free to launch the game and count the tiles yourself SDVpufferthumbsup I don't have the answer.

marsh reef
analog ivy
# uncut viper You cannot.

hm, i'll have to think of another solution then. i will ponder on it, or just upload files where they can just copy and paste into the orginal mod lol

autumn tide
upper fractal
#

i think im getting a bit closer into finally fixing my npc (hopefully) but im getting an error from content patcher with the gift tastes saying something like i didnt formulate properly the fromfile section but i think i did it right....Can someone check what its trying to say cause i dont understand.... https://smapi.io/log/29c2eb22f4ed45ce81c52edbb6626646

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 20 C# mods and 25 content packs.

tranquil olive
#

With EMC, for the "IngredientConfigs" section, does an item that fits the "ContextTags" entry need to have both, or would it be either or?

example:
"ContextTags": "jazz_item, allium_item"

brittle pasture
#

both

#

if you want either you can add two entries; it should work even if it's only for one ingredient slot

tranquil olive
#

ohh okay, awesome, thank you Selph SDVkrobushappy your framework is so helpful

proven spindle
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.

upper fractal
proven spindle
#

"Target": "Data/gifttastes",
Target should be Data/NPCGiftTastes

brittle pasture
#

also your format is not correct (you're missing the generic gift dialogue responses)

#

the unpacked files has examples

upper fractal
#

i placed it in the dialogues

brittle pasture
#

it still needs the generic responses fields

proven spindle
#

If you're skipping them you'll still need to double up the slashes

upper fractal
#

so should i put it in the same format as in the one from the wiki ?

brittle pasture
#

(as a side note I highly recommend adding {{ModId}}_ to the beginning of your NPC's internal ID, to avoid the chance another person releases an NPC named Heycien and conflicting with yours)

#

yes

upper fractal
#

i tried to put that token but it said something like it didnt exist and stuff so i gave up and erased it altogether

brittle pasture
#

weird, you're probably not formatting it correctly?

#

it'd just be "{{ModId}}_Heycien"

proven spindle
#

You have to make sure it's consistent across all entries that use your npc's internal name

#

If it's missing in any of them then that error would show up

#

(Easiest way is probably to ctrl+f 'Heycien' and replace with '{{ModId}}_Heycien' in all files)

brittle pasture
#

(though don't do it for the display name of course)

upper fractal
brittle pasture
#

it'

#

'd just turn into your actual mod id

proven spindle
#

The {{Modid}} part is a token, it auto adds the UniqueID from your manifest file to ensure the things your mod adds (npcs, items etc) are unique to your own mod and avoid compat issues with other mods

near imp
#

Hey peeps, adding translation to config options. Would one replace true & false with translatable tokens as well, or does this break contentpatchers logic?

brittle pasture
#

you should not change the actual config values

#

you just add new i18n keys

#

if you did that with the existing tokens you should revert those changes

near imp
#

the documentation shows translating config choices like wood or metal, but no example for true / false.

brittle pasture
#

it'd be the same

uncut viper
#

You do not want to translate the underlying values for the same reason you don't translate things like location IDs

brittle pasture
#

config.ConfigName.values.true

proven spindle
#

Answer the last time Pathos talked about it

brittle pasture
#

hah i totally forgot that CP supports checkboxes

near imp
#

(had forgotten in the moment that true and false will be transformed to a checkbox hehe)

brittle pasture
#

still useful if you're doing true, false, and secret evil third thing though

meager ginkgo
#

wait I just realized if I put my truck behind the bus then when it drives back to the bus stop it'll run right through/over my truck :(

#

wait I can just move it back to the grassy area behind the bus GalaxyBrain

void aspen
#

if i get total of 1k DLs by tomorrow im gonna do a new mod

#

or else im just gonna do it anyways lol

#

im in a rabbit hole atp

upper fractal
upper fractal
#

nope the mod still broken,still doesnt move or talk,she just changed directions shes facing

near imp
#

is there any sort of hard coded business involved in gift tastes? trying to remove rabbits foot from Penny's hated gift list but it doesnt appear to do anything ingame. if successfully removed from dislikes she should love it shouldnt she, as its otherwise an universal Loved gift? (first foray into gifting) Or do i need to add it to her Loved gifts as well

brittle pasture
#

(as a general reminder posting code is very useful if you need help)

near imp
brittle pasture
#

I believe you're missing one more entry in Target to enter the hated item field

upper fractal
brittle pasture
#

add "7"

near imp
#

after Penny, or instead of?

brittle pasture
#

as a 3rd entry in the Target list

#

gift taste data is split into multiple segments seprated by slashes, 7 here means enter the segment no 7 (the list of hated items)

brittle pasture
near imp
#

list of hated item ids seems to be in segment 8? segment 7 is the dialogue for the hated gift. unless the first segment is not counted?

brittle pasture
#

the list starts from 0

near imp
#

oh of course, derp SDVkrobusgiggle

upper fractal
near imp
#

my brain is not yet default zero indexed SDVpuffersquee

brittle pasture
#

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

fleet oxide
void aspen
#

Does anybody know why on some festival maps my OpenShop action says "Out of stock" while on some it's totally fine?

#

Desert Festival and night market work as fine, while ice festival and halloween seem to be an issue

void aspen
#

Same tmx overlay, same code, only thing changed is the target map

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 20 C# mods and 25 content packs.

royal stump
void aspen
#

I suppose custom shops also follow that hardcoded reason

fleet oxide
#

thanks! I'll give that a try

#

No luck sadly

brittle pasture
fleet oxide
brittle pasture
#

oh wait I responded to the wrong person SDVpufferchicksweatsip

brittle pasture
upper fractal
brittle pasture
#

show your dialogue and schedule file?

#

I gotta go in a few minutes though, apologies

upper fractal
brittle pasture
#

per the wiki not having "spring" break things

#

try fixing that

upper fractal
#

Ohh okay got it

brittle pasture
#

ok now i go for real

upper fractal
#

Okay byee

meager ginkgo
#

weird question but does marnie butcher her animals at all? or does she raise them purely for what they produce?

jaunty shuttle
#

Can you make a set of textures apply to your mod only if a certain retexture mod is detected?

ornate locust
#

Sure can

jaunty shuttle
jaunty shuttle
ornate locust
#

Just do a Hasmod conditional on your texture load

jaunty shuttle
#

Awesome, i'll definitely be back here with a million questions later yappy_PufferThumbsUp

whole prism
#

..I wonder..who was the first person to toast bread SDVpufferthink

jaunty shuttle
#

Why did that actually get to me for a sec SDVpufferwaaah

hard fern
#

Duh

torpid sparrow
#

yummy maillard reaction

heady crest
#

this is a text here from 2022, but this isnt the case anymore right? how do i make my npc spawn at the saloon in a specific date?

ornate locust
#

That is still the case

hard fern
torpid sparrow
#

LOL

heady crest
ornate locust
#

Then it's an unrelated problem

tiny zealot
#

zero schedules don't work for npc spouses, i believe, since marriage duties runs after the zero schedule and they get shunted back to the farmhouse. so it could be that

heady crest
#

of course

#

thanks lol

ornate locust
#

oH it's a spouse

ornate trellis
#

spacecore could help with that, i think

marsh reef
#

can someone lmk what this means?

fierce vault
#

hey, anyone know if having these many days of the month would act as a back up incase any players have gotten past the first day it triggers? (due to having not downloaded the update this will come in right away)

#
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
            "{{ModID}}_SantaLetter": {
                "Id": "{{ModID}}_SantaLetter",
                "Trigger":"DayEnding",
                "Condition":"PLAYER_HAS_SEEN_EVENT Host parcy.jack_lastHi, SEASON Spring, DAY_OF_MONTH 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28",
                "Action":"AddMail Host parcy.jack_santaLetter tomorrow"
                }
            }
        }```
torpid sparrow
#

!tilesheetlimbing

#

fuck

#

!tilesheetclimbing

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"/>.

torpid sparrow
marsh reef
#

ohoh its that again, okok

#

ty

#

question about warps. If within the mod I'm heavily modifying for me, teleporting to a certain warp is "Draylon.ForeverFallsBeachCave" can I call on it like that warping from other places like from the forest by maries? or is it different? bc right now I have it set as that and it still goes to the normal farm :/

gaunt orbit
#

I'm not sure I understand your question

marsh reef
#

i might be trippin, one sec checking smthn

gaunt orbit
#

Are you confusing locations with maps?

marsh reef
#

hmm mm

#

oh, chat, hold on

#

got it, nvm

brittle pasture
#

is that the intended effect

fierce vault
#

oh

brittle pasture
#

if you need days played use DAYS_PLAYED

fierce vault
#

I wanted the mail to happen between the first day, or any of the others I listed incase they download the update late

#

Doesn't days played track total time?

#

would that be thing I look into for this?

brittle pasture
#

I don't quite get what you want apologies

fierce vault
#

sorry

#

I'll try to explain it better

#

I want the mail to ideally arrive on the 10th. Does mail arrive later than its set date (in the same year) if a player downloads the mod update adding said mail later than they should have?

tiny zealot
#

you control when your mod's mail arrives

fierce vault
#

This is what I'm trying to account for

uncut viper
#

Your mail key would need a very specific format to be sent automatically, otherwise its up to your trigger actions

#

The condition has to be true for it to send it, regardless of when it was installed

fierce vault
#

Yeah, I have a trigger

uncut viper
#

Your condition up there currently requires it to be spring

tiny zealot
#

(please don't use specific mail keys to get specific send times. use a trigger action)

fierce vault
#

I'm not sure I know what you are refering to?

uncut viper
#

(I would personally allow the cooking recipe letters though since those (SHOULD!) be inherently namespaced)

fierce vault
#

I don't think I'm doing that?

uncut viper
#

(But I would still do tractions anyway. But it wouldnt cause issues)

#

You're not, ichor is just adding on to me saying that you can format letters a specific way for auto sending

tiny zealot
#

i'd still use a trigger for recipe letters, since then you can have the letters be specific to the recipe instead of generic and reused

uncut viper
#

You can do it for dates, but you shouldnt

#

Tbc I'd also still recommend tractions 10 out of 10 times for everything regarding sending mail

fierce vault
#

I did not know that was a thing. Interesting

uncut viper
#

It would honestly be easier if you pretended you still didnt

fierce vault
#

what horrors must this cause?

uncut viper
#

But it is still useful to know so that you don't accidentally do it when copying vanilla

tiny zealot
#

before trigger actions, specific keys for dates etc. was the only way to control mail in the base game code, so we needed MFM and maybe other frameworks to do more complicated stuff and/or avoid conflicts. but now trigger actions are here, and they're good, and please everyone use them thank you

uncut viper
#

Well, vanilla uses the date format for quite a lot of its mail. But it must be formatted like spring24 or whatever. Nothing but the date

#

So, if two mods want to send mail on spring 24th using that format, then... yknow. Incompatibility

fierce vault
#

ah, ok

#

I saw those now that I think of it

#

in the unpaacked

#

so, this is sending the mail in summer huh?{"LogName": "Send Santa Letter", "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "{{ModID}}_SantaLetter": { "Id": "{{ModID}}_SantaLetter", "Trigger":"DayEnding", "Condition":"PLAYER_HAS_SEEN_EVENT Host parcy.jack_lastHi, SEASON Spring, DAY_OF_MONTH 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28", "Action":"AddMail Host parcy.jack_santaLetter tomorrow" } } }

uncut viper
#

No, that's still requiring Spring in the condition

fierce vault
#

does it pick the first day?

uncut viper
#

I'm not sure what you mean.

fierce vault
#

does it pick the 10th as its first choice for sending the mail, and then the rest in order if it fails to trigger?

uncut viper
#

It's not picking anything. Every time a Day Ends (DayEnding), it checks if the condition is true. If its true, it does your Action and marks this trigger action as done, so its never checked again. If it's not, it doesn't.

fierce vault
#

Oh, ok. that sounds like what I want it to do I think

#

I'll go test my mail ingame now that I've changed some stuff

#

trigger actions are pretty cool

#

tractions

calm nebula
#

Do u want to require spring

fierce vault
#

I mean, not really now that I think about it since the mail would not send before seeing the necessary event

#

I guess I can remove that

#

thanks!

fierce vault
#

Hey, so Si helped point me in the right direction with looking at vanilla mail earlier, but just incase I've misunderstand or forgotten something, do guys think this all looks right?{"LogName": "Send Santa Letter", "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "{{ModID}}_SantaLetter": { "Id": "{{ModID}}_SantaLetter", "Trigger":"DayEnding", "Condition":"PLAYER_HAS_SEEN_EVENT Host parcy.jack_lastHi, DAY_OF_MONTH 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28", "Action":"AddMail Host parcy.jack_santaLetter tomorrow" } } }in the default json:"Mail.parcy.jack_santaLetter": " removed for spoilers^ -Claus[#]Santa's Letter" in the dialogue json: {{i18n:Mail.parcy.jack_santaLetter}}",Because I can't get the mail to show up still. Si mentioned I'll need two i18n fields per letter, (one for the body of the letter, one for the title) because the [#] (and any other commands) in between have to be in the entry, they can't come from the i18n file (similar to events)

I guess I'm not sure if that actually means a whole other separate key though, because I'm not sure how I'd even format that. Just a little confused.

tiny zealot
#

i18n is a text storage and retrieval system for mods (that happens to be driven in part by what language the game is set to)

#

there's very little "have to" in how you set up your keys and values. it's up to you

#

Si is probably making those recommendations because putting syntax about the mail (the [#] and so on) in the i18n text runs the risk that translators for your mod will fuck it up and break your mail

fierce vault
#

Oh

tiny zealot
#

important to stress here that the game never sees your i18n files, just like it never sees your content patcher tokens (indeed, CP does i18n for mods by using a token!). content patcher evaluates its tokens before handing the data off to the game

fierce vault
#

Wow, you can actually separate that bit of code? Interesting. I was wondering if my set up was wrong because my letter will still not show up even though I should have met the conditions. Is what I have here supposed to be working at the base level?

tiny zealot
#

typically i set up mail in CP something like this (please forgive errors)
"{{ModId}}_WhateverMailId": "[letterbg whatever]{{i18n:mailId.textcontent}}%item or action or w/e %%[#]{{i18n:mailId.title}}",

#

so the "code" parts are baked in to the actual mail data and the text is pulled from the i18n

#

the best way to test whether your conditions are working is debug gq "paste your query here" in the situations where you think it should be true/false and see what the game tells you

#

if you've been debugging this for a while, you may also be in a state where you have run this action already, so it is not firing for that reason (remember actions are by default run only once per save)

fierce vault
#

Oh, I'll start a fresh save then

tiny zealot
#

that situation is especially likely if you are testing a DayEnding traction, since it will run right before saving the game

fierce vault
#

Oh, I don't even know if I need this one to be a dayending check. That was just copypasted from my other traction

tiny zealot
#

for sending mail i prefer DayStarted/AddMail Now over DayEnding/AddMail Tomorrow

fierce vault
#

Ok, thanks

#

I just realized something unrelated-

#

My mod's intro event triggers right after krobus's winter event, and that makes it feel less natural... I didn't really think much about it because I originally had jack's birthday on winter first, so I felt it was necessary, but I changed that to be on winter star instead, so maybe my event should be playing on winter second? Idk, is this a big deal?

#

(Not asking any specific person, just whoever has an opinion on this)

jaunty shuttle
#

Hey! I published my first ever mod last night and wanted to share it SDVpufferheart

I do plan to add a lot more content to it over time, this was a more basic-level release for Modfest. But I'll try to keep updates pretty bundled!

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

Nexus Mods :: Stardew Valley

Adds 7 new types of themed furniture for your children! All very nature-inspired and made to match Vanilla.

fierce vault
#

huh, my npc's not showing up again in this new save. why does this mod do this to me?? I hate it

#

aww

#

want me to showcase it for you?

jaunty shuttle
#

Yes please! I think claude went to bed earlier

fierce vault
#

It should be there now!

jaunty shuttle
#

Also I don’t think it’s a big deal, but if it feels more right to you for the birthday to be on the 2nd then i’d just go ahead and change it SDVpufferheart

#

(Thank you!)

fierce vault
#

I guess the intro is technically his b-day, but it's set to the 25th because his b-day dialogue turns into winter star gift dialogue

#

It also makes it less annoying if you build him on the 5th or something

#

Because then you won't see his birthday as winter 1st

gaunt orbit
gaunt orbit
# gaunt orbit

It does boilerplate for asset handling, gmcm/config stuff, and event registration mainly. It also has helper tools for harmony, dumps translation keys into a strings file, and can merge local jsons into other dictionary assets. Plus a few other useful things like adding the mod id as a global constant.

#

I also have plans to add automatic hot reloading to the asset stuff

hoary flame
#

I forgot to update the version number of my mod in the manifest when I updated it yesterday so I tried uploading a fix on nexus but when I go to download the files again (to make sure it's updated ig) the manifest still has the old version, even tho I KNOW I updated it... is nexus very delayed in making files available for download or something? I can see both the old files in my archive and it's been 10 minutes so idk I feel like I'm going insane lol

gaunt orbit
#

What version is it supposed to be?

hoary flame
#

1.1.0

gaunt orbit
#

That gives me a 404, is your mod published?

hoary flame
#

wait hold on

gaunt orbit
#

Or did you typo the mod id

hoary flame
#

it's the /games/ part of the url apparently

gaunt orbit
#

I see 1.1.0 on files and listed as current version, you should be good

#

Smapi caches version data to avoid spamming the nexus api, so it may take some time for the update checks to show in console

fierce vault
#

ah! my npc won't show when I skip the event again! SDVpufferwaaah

hoary flame
#

ahh okay thank you

fierce vault
#

odd because I have setSkipActions SetNpcVisible {{ModID}}_Jack/ before skippable

gaunt orbit
#

Imagine if it made a request for every mod every time anyone launched smapi. Nexus would get ddosed and launching the game would take even longer than it does

fierce vault
#

Doesn't let me open it

#

Also, I guess my setSkipActions aren't working the best either?

proven spindle
fierce vault
#

ah yeah

#

I forgot about that

#

wait

#

No, I'm not sure whether it's there or not, because I don't know exactly which thing you're referring to

#

I have data, but is it the right kind? Idk

#

But I was looking at the mail from content unpacked earlier

proven spindle
#

You'll want an entry that's

"Action": "EditData",
"Target": "Data/Mail",
"Entries": ...
With the mail in the vanilla format in Entries. That's what the trigger action then references when sending it

fierce vault
#

Ohh, ok, thank you. that makes sense now!

inland rain
#

sorry for the late reply, I was trying (and failing) to remake those mods. The problem with what you suggest is there can be up to four sprinklers per tile; you have to specify the corner as well, which quarter of the tile you are querying. I can add a method that returns the tiles if you give it the tile you want to check, the corner, and the radius (I can add a method that gives you the radius as well)

meager ginkgo
#

where can I find resources for how npc schedules work?

ivory plume
meager ginkgo
inland rain
ivory plume
#

The end result would be the same, but it avoids the mod needing to call the API four times per tile. The API goes through the whole proxy mapping framework, so there's a non-trivial overhead to each API call.

#

I guess worst case I can just call the API four times per tile, and have a longer cache if needed.

inland rain
#

okay, that's understandable, but they aren't really tile based... like there's no sprinkler at x,y, they are each at the intersection of 4 tiles; it seems like it would be weird to query a tile for that, though I could add such a function I think

marsh reef
#

chat does anyone do simple pixel arts or do i gotta solo that lowkey?

meager ginkgo
#

!commissions

ocean sailBOT
gaunt orbit
#

There are people who do commissions but this is also a great opportunity to practice art!

#

I know it's intimidating, but it helps if you think of it less as a skill to improve and more as a way to express yourself and try new things

#

You might produce things you don't like, but that's okay because the process is more important than the result, even if your ultimate goal is to make something you can use in your mod

inland rain
# ivory plume I guess worst case I can just call the API four times per tile, and have a longe...

Does this work?

        public List<Vector2> GetRange(GameLocation location, Vector2 tile)
        {
            HashSet<Vector2> tiles = new HashSet<Vector2>();
            for (int i = 0; i < 4; i++)
            {
                Vector2 cornerTile = tile;
                if(IsObjectAtTileCorner(location, ref cornerTile, ref i))
                {
                    var obj = ModEntry.GetSprinklerCached(location.terrainFeatures[cornerTile], i, location.terrainFeatures[cornerTile].modData.ContainsKey(ModEntry.nozzleKey + i));
                    tiles.AddRange(ModEntry.GetSprinklerTiles(cornerTile, i, GetRadius(obj)));
                }
            }
            return tiles.ToList();
        }
#

I can add that to the API

tiny zealot
buoyant shuttle
#

I need help

fierce vault
#

Anyone know why my mod page is not showing the spoiler text I wrote?

#

It shows that there is a spoiler, but the text is blank!

#

wait, nvm it's actually completely outside the box

#

still bad

#

this is what I have

[spoiler]He reflects on his life and comes to the conclusion that it was meaningful even if it was short. He also gives the player his hat if you reach 4 hearts with him.[/spoiler]

meager ginkgo
#

YAYYYY my npc shows up ingame !!!!!!! now I just need to actually make her do stuff properly (and give her art lmao)

#

ignore the snow in the spring I was time traveling

brave fable
#

my advice would be to unpack the game content with stardewxnbhack and use the game art assets as a base and colour sample

#

it's very based and labubu

proven spindle
fierce vault
fierce vault
brave fable
#

also the spoiler tags don't show in the WYSIWYG editor on nexus so you have to save and check on the published page

gaunt orbit
#

It's simple but more than capable enough

#

also plugins can help a lot

fierce vault
#

I am checking the page, and even after formatting it like this, it's still jumping outside the box

#

Idk why, when the two lines are in the middle

gaunt orbit
#

A rowboat?

marsh reef
#

:3 it'll have a motor on the back but yes boat

proven spindle
fierce vault
#

No, I'm not

#

if it's relevant, this is what it looks like in BB code[b][size=4][color=#fff2cc]Please also keep in mind:[/color][/size][/b][color=#fff2cc] [size=3]That while the story does get sad near the end, it is not all doom and gloom!Small spoiler for what happens when he melts away: [/size][/color][color=#fff2cc][size=3][spoiler][/size] [/color][color=#fff2cc][size=3]He reflects on his life and comes to the conclusion that it was meaningful even if it was short. He also gives the player his hat if you reach 4 hearts with him. [/size][/color][color=#fff2cc][size=3][/spoiler][/size][/color]

#

I know it doesn't need bb

gaunt orbit
#

I can't tell if you're doing this because of the dimness of my screen, but you should use chromatic greys ir pastels instead of straight greyscale shades for the interior, to fit in with stardew's style

fierce vault
#

But neither way works

proven spindle
#

I was actually just about to ask for the bbcode ver lol

marsh reef
#

it's kapp'n's boat

gaunt orbit
fierce vault
#

Oh, I was just using the default buttons for color changes and letter size

#

I guess those mess with the code?

gaunt orbit
#

Your spoiler opening tag is sandwiched between an open and close tag for size

#

If it opens on the outside it has to also close outside, and if it closes on the inside it has to open on the inside

#

If you mix and match like you have it probably explodes the html

fierce vault
#

Ah, ok. so they can stay between the stuff, it just needs to be matching?

gaunt orbit
#

It's like how json brackets need to match, just a little more complicated

fierce vault
#

Ok... well I'll try fixing it again then

void aspen
#

is it required to change every regional tileset in order to make a proper retexture?

#

like cursors for exp

ivory plume
# inland rain Does this work? ```cs public List<Vector2> GetRange(GameLocation locatio...

Yep! If you want to avoid allocating a new HashSet<Vector2> and List<Vector2> on every call (even if there's no sprinkler there), you could also do something like...

public Vector2[] GetRange(GameLocation location, Vector2 tile)
{
    HashSet<Vector2> tiles = null;

    for (int i = 0; i < 4; i++)
    {
        Vector2 cornerTile = tile;
        if(IsObjectAtTileCorner(location, ref cornerTile, ref i))
        {
            var terrainFeature = location.terrainFeatures[cornerTile];
            var obj = ModEntry.GetSprinklerCached(terrainFeature, i, terrainFeature.modData.ContainsKey(ModEntry.nozzleKey + i));

            tiles ??= [];
            tiles.AddRange(ModEntry.GetSprinklerTiles(cornerTile, i, GetRadius(obj)));
        }
    }

    return tiles?.ToArray() ?? [];
}
gaunt orbit
#

Anyways it is very past my bedtime, so I am off for the night, and I will see you all later.

fierce vault
#

thanks, rest well

half tangle
fierce vault
#

Oh, just noticed another typo lol

primal tree
brave fable
mighty ocean
#

Hi! I'm not sure if this is the right channel but i think it is -

I am in the midst of trying to create a mod with JSON Assetts as a dependency, im someone with little to no grasp on modding and the only thing i've done before is make a dialogue mod.

Ive been trial and erroring this mod for like 6 hours and i just wondered if anyone here had a better grasp on how rhe JSON assetts thing works because there'z sometjing that just isnt working :((

i have the sprite for the item i want to add, i tried using a tilesheet...i re wrotr the manifest like 4 times...i truly am stumped.

ornate locust
#

Why are you using JSON Assets?

#

It isn't needed anymore

#

unless it's for an old mod with it as a requirement anyway

mighty ocean
#

boy i don't know i said i have little to no modding knowledge im just following tutorials online 😞😞

ornate locust
#

You must be following an older tutorial then, you don't need to use that

mighty ocean
#

oh. What do i do instead then?

ornate locust
#

What are you making?

mighty ocean
#

dumb littke mod where i give the bachelor/ettes music tastes - adding in "vinyls/cds" which dont have any use apart from gifting to npcs.

ornate locust
#

let me see if I can dig one up

#

I basically figured out items between this wiki page and looking at a mod that added them

#

Oh wait how silly of me

#

Here's a new tutorial

#

It's how to make a pie, that's an item

mighty ocean
#

Oh okay okay so- i can 100% add NEW items into the game - yeah? Because the reason i ended up using JA instead of CP was because a forum told me CP is only for retexturing stuff or something

ornate locust
#

That is old information

#

That was once true IIRC, but later updates opened stuff up a lot

#

I did a NPC mod and it's all in content patcher, and it has several new items like you're talking about that are things you can give as gifts

#

You can do all kinds of stuff in it now

mighty ocean
#

Well damn I feel silly now i was doing it right in the first place 😭 i was using CP fo begin with and moved onto JA when a forum told me to do so - ugh thanks man

ornate locust
#

If someone told you that recently, might wanna tell them their information's old!

#

Hate to see people struggling along with old info

mighty ocean
#

It was some sort of sdv forum site..cone to think of it i think the thread was from 2021 🫩🫩 ugh god ok i'll try doing it this way thanks 4 the help brochacho

ornate locust
#

No problem!

void aspen
#

is there a way to edit image for each of these at the same time besides a manual target set

#

(ignore first four)

uncut viper
#

You don't need to

void aspen
#

I can only edit one?

uncut viper
#

Unless you specifically want language-specific edits

void aspen
#

nope

uncut viper
#

But you probably dont

#

If you just target LooseSprites/Cursors then CP applies it to every language variant

#

So if someone switches to Russian or something they'll still get your edits

void aspen
#

Ohh so its smart

uncut viper
#

You'd have to manually choose to make it language-specific

void aspen
#

I see, tyy!

#

Saved me from doing extra work

#

so it works for language specific tilesets for a Maps/ assets too?

#

yay it works

uncut viper
#

Yes, any asset with language variants

mighty ocean
#

before i go another question i have is to do with dialogue modding;

what do i type to have multiple liens of dialogue appear ifygwim? Like you click on an npc once, the dialogue plays, and you click again, and it contiues..i dont know if i described that well

meager ginkgo
mighty ocean
#

You're a star tysm

faint ingot
#

Hello everyone... I haven't checked in here for a while but finally back to stardew after taking a little break SDVkrobusgiggle I am having some trouble with the appearance system though SDVkrobussad Edit: NEVERMIND I think I figured out what I did wrong

marsh reef
#

Tiled issue, my window of the tilesheets is gone :(

#

got it, we're okay :)

half tangle
#

🦆

#

I also appreciate when this channel just becomes a rubber duck

fossil osprey
#

Hello that's me

void aspen
#

Mod that allows to change the boring default cursors to some silly cat themed ones!
Includes six different styles to choose from. GMCM mod is recommended to have as well for an easier config!
https://www.nexusmods.com/stardewvalley/mods/44336

Nexus Mods :: Stardew Valley

Changes cursor to a silly cat themed one, with six different styles to choose!

#

Can someone showcase it for me pretty please? Cat

marsh reef
#

why is specifically only this tile on all trees with this tile flashing in and out of existence? it does the same thing if i select it too

void aspen
#

im not sure if tiled supports z fighting but

#

what layer is that tile on?

#

as well as the sand tile

marsh reef
#

it's not flashing behind, it's deleting for a sec, and coming back

#

it's on back and always front, sand tree

void aspen
#

I had some issues with tiled where it had ghost selection as well

#

have you tried updating Tiled to the last version?

marsh reef
#

this only just started like 5 mins ago 😭

void aspen
#

Tiled can be like this sometimes

marsh reef
#

eh???? how did it become animated????

#

how do i stop it

void aspen
#

looool

#

okay

#

choose that tile and go to the tileset its from

#

then press this

marsh reef
#

okay

void aspen
#

then choose this tile you have animation on and press on this camera icon

#

delete every frame you have on the left

marsh reef
#

okok thank you 😭 that was so weird

rain inlet
#

this is probably the funniest reason why it was flashing in and out of existence lol

void aspen
#

yet the most logical too

#

have you animated anything on that tileset

#

and mb accidentally touched some extra tiles too

fierce vault
#

Because I'm getting the same problem of the mail appearing but not registering

#

I'll just upload the whole content json too. Don't read the goodbye eval tokens if you care about avoiding spoilers. They're also not relevant to this mail issue. I've got another issue trying to use the mail flag in one of them to change jack's sprites/portraits, but that's definitely lower on the bugs list. https://smapi.io/json/content-patcher/3c1343e4aae54fbb90984bdab8c0dc03

#

I also have the feeling that I may be needing to register what mail background is used?

#

But it should default to the default... right?

half tangle
#

An entry in mail data is sorta three parts:
The key: "mail.parcy..."
The first part of the value: "letter contents"
The second part of the value: "letter title"
Your key should not be an i18n token. The two parts of the value would be two i18n tokens put together with the [#] separator

fierce vault
#

Tbh, I'm second guessing my i18n-ing here

#

Ok, yeah, that makes sense

half tangle
#

"key" : {{i18n:v1}}[#]{{i18n:v2}}
(I think I wrote that right)

#

And yeah, it'll pick the default background if you don't specify

fierce vault
#

so, about the key; is this separate from what ichor was doing about compartmentalizing here? "{{ModId}}_WhateverMailId": "[letterbg whatever]{{i18n:mailId.textcontent}}%item or action or w/e %%[#]{{i18n:mailId.title}}",

half tangle
#

That first part of your value may end up being a bunch of i18n tokens depending on formatting

fierce vault
#

Oh

half tangle
#

What you just posted is a better formatted version of my quickly typed example. You should use that

fierce vault
#

I'm looking at it again, and I realized they are doing the same thing, essentially 😅

half tangle
#

I'm on mobile, so limited typing abilities here

#

Yep!

#

Your key will use the modid token in order to make it unique among all the mail keys added by other mods

#

Your value is what the player sees

#

(plus formatting and actions and such)

fierce vault
#

Ok, yeah, thanks. I'll try this out and hope it works this time

#

for the letter bg pngs on the shared sheet, are they listed from 1-5, left to right?

#

oh, maybe that's in the wiki?

#

I'll check

#

yeah, it's at the bottom of the page!

past loom
#

hii, so I'm trying to make a custom NPC using content patcher and I have a slight issue :'D
Tried to load her using SMAPI but the console said this error and I have no idea why- here is my code for her portraits and stuff, everything is just how the wiki said (at least I think so) so I don't know what went wrong

#

sorry if this is an easy fix but I have like, no coding or modding experience, so this is a first for me ^^,

inland rain
void aspen
#

Interesting

inland rain
#

@ivory plume sooo I ended up remaking the mod after all... I couldn't stop them from disappearing when hoedirt disappears, so now they are tied to the game location instead. I'm still not convinced you should query all corners of a tile at once, but you can with IImmersiveApi.GetSprinklerRange(GameLocation location, Vector2 tile)

void aspen
#

Oh I suppose it's something complex

inland rain
#

it's just a remake of two of my mods into one

#

it's magic, basically

hard fern
#

Many such cases of magic being used to make Stardew mods

void aspen
#

Junimo themselves helped some people with mods me thinks

#

I gotta learn that magic too one day

fierce vault
#

hmm, I have the separate keys now, and the data filled in"Mail.parcy.jack_santaLetter": "Dear @,^^ -Claus", "Mail.parcy.jack_santaLetter.title": "Santa's letter"``````{ "LogName": "Mail Data", "Action": "EditData", "Target": "Data/Mail", "Entries": {"{{ModID}}_santaLetter": "{{i18n:Mail.parcy.jack_santaLetter}}[letterbg 0][#]{{i18n:Mail.parcy.jack_santaLetter.title}}",} },along with my triggr action```{"LogName": "Send Santa Letter",
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModID}}_SantaLetter": {
"Id": "{{ModID}}_SantaLetter",
"Trigger":"DayStarted",
"Condition":"PLAYER_HAS_SEEN_EVENT Host parcy.jack_lastHi, DAY_OF_MONTH 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28",
"Action":"AddMail Host {{ModID}}__santaLetter now"
}
}
}

#

am I missing any other critical components?

hard fern
fierce vault
#

ooh

#

is that it? easy fix if so

hard fern
#

I dunno, i just took a cursory glance and that's what stood out

fierce vault
#

in vscode, it's harder to spot because the underscores are cohesive

#

it just looks longer

#

thanks!

#

yay!

#

letter finally works

#

that was such a pain

inner harbor
past loom
#

ended up fixing it! You are right, it was a missing underscore but I found it ^^ Thanks so much! <3 she finally loads in

inner harbor
#

Nice!

stoic chasm
#

Hello! I need some assistance with figuring out Tiled. I want to make a small custom house for my npc, but I have absolutely no clue how to do that.

hard fern
#

Or are tou asking for line a general tutorial

stoic chasm
#

Just a general tutorial

hard fern
#

Uhh

#

!tiled

ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

stoic chasm
#

Sorry, I should've specified!

hard fern
#

Not sure if there's a tutorial on there or not

stoic chasm
#

I'll have a look, thank you!

ornate drift
#

what's the size sprite of a junimo

#

oh it's 16 x 16

rugged bolt
#

Question, does MissCoriel's NPC Creator 3 still work in 1.6?

tender bloom
brave fable
#

aren't we all 🙂‍↕️

#

the terrain feature, the terror of the theatre
EVIL TREE
[SINISTER ORGAN RIFF]

#

* trees posted in the name of shrub field research

torpid sparrow
#

maybe shes working on a 4th version but idk

#

and its not tagged 1.6 compatible

calm nebula
brave fable
#

incredibly inedible

calm nebula
#

Smh

#

Fresh figs are so good

brave fable
#

(we get them, just not from these trees)

vale holly
#

Is this a known bug, I was patching Object.PlaceInMachine and noticed if the zoom level isn't 100, the probe code runs at the wrong tile, this happens in vanilla too.

elder scarab
#

stardew valley tiled code tutorial Can someone help me? It loads the map, but when I try to step on the map to enter another one, the black loading screen appears, but then it reverts to the map that was already loaded.It won't go to the custom map, can someone help me with this?

fading walrus
elder scarab
fading walrus
#

(That vanished too quickly for me to correctly identify the language but this server is English only!)

barren tapir
#

Yall, I have a serious issue. I can't decide whether I should work on learning how to make animated furniture next, or finally learn Harmony patching next... Plus now I have "I Can't Decide" stuck in my head.

fading walrus
fossil osprey
#

.choose harmony patching, animated furniture

patent lanceBOT
#

Choose result: harmony patching

fossil osprey
#

there you go

barren tapir
#

Rn I'm leaning towards learning Harmony, as I've come to realize that at least 1 other mod I've made assets for will need it (my hyperbolic sapling chamber mod)

fading walrus
#

Harmony it is, lol

barren tapir
#

Dope

#

Gonna make fairy dust do more than just finish whatever potion is brewing

elder scarab
#

{
"Format": "2.0.0",
"Changes": [
{
"Action": "Load",
"Target": "Maps/Farm",
"FromFile": "assets/custom.village.tmx"
},
{
"Action": "Load",
"Target": "Maps/spring_beach",
"FromFile": "assets/beach_custom.png"
}
]
}
Here it is.

#

You can understand, right?

barren tapir
#

Does loading a tmx file also load png files?

#

Also, are you sure the spelling of the tmx file is correct?

verbal glacier
fading walrus
#

Also, have you already defined the warps on the map you warp to your custom village from? Your current content.json only makes the village and custom tilesheet exist Thonk

barren tapir
#

It's custom**.village.tmx and not custom_**village.tmx?

fading walrus
#

I mean, I guess that's obvious since you said you can do it, but I dunno

#

But I think the name might also be a problem?

elder scarab
#

{
"Format": "2.0.0",
"Changes": [
{
"Action": "Load",
"Target": "Maps/NomeDoSeuMapa",
"FromFile": "assets/custom_village.tmx"
},
{
"Action": "EditMap",
"Target": "Maps/custom_village",
"MapProperties": {
"Warps": "10 20 Town 40 10 11 20 Town 40 10"
}
}
]
}

fossil osprey
#

If I'm not mistaken, that warp makes you go from the town to the town, that's your main issue 🤔

elder scarab
#

But when it loads the custom map, which will be a new map, I'll enter the city—I can't specify—I'll teleport to the new map, but when I teleport, it simply...A black screen appears prompting the user to load another map, but it simply doesn't load and reverts back to the village map.

fossil osprey
#

Yeah because your warp lead you to "Town"

#

It needs to be your destination

torpid sparrow
#

ur adding a warp from ur map to town

#

as far as i can tell

torpid sparrow
#

it's not enough to just load a map

elder scarab
#

I'm going to record a video.

ornate drift
#

How many sprites does a normal custom NPC typically have

elder scarab
torpid sparrow
torpid sparrow
ornate drift
#

i mean like

#

is it 30

#

40

torpid sparrow
#

that depends on what u want entirely

#

you have ur base sprites

#

and then any animations u want

ornate drift
#

hm

elder scarab
torpid sparrow
#

idk if thats a thing on mobile

torpid sparrow
elder scarab
torpid sparrow
#

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

ornate drift
#

I'll use them all

#

the thing is base NPCs have like

#

40+ sprites

torpid sparrow
#

it literally does not matter

#

just depends on what u need

ornate drift
#

o ok

torpid sparrow
#

you can make the sheet longer if u need

#

or shorter

gaunt orbit
torpid sparrow
#

i have around 60-65

#

walk, kiss, sleep, dance, wedding, plus reading x2, beekeeping, sunbathing, working out, phone call, drinking tea, laptop, drinking, and a hug

#

some of these are only used in one instance

ornate drift
#

maybe i will add drawing

#

he has to have more hobbies other than just sitting, reading, and baking lol

verbal glacier
#

Do you have a baking animation? could be cute

torpid sparrow
#

like tia told me a while ago, u dont necessary have to show all of the hobbies in scheduling or whatever

ornate drift
#

Nope, but he does have a sprite of him holding a donut

elder scarab
torpid sparrow
ornate drift
#

i have a funny event idea with Vincent in my head

#

Would be a cute interaction

torpid sparrow
torpid sparrow
ornate drift
#

u have like

#

unlimited creative freedok with most stuff

torpid sparrow
#

you could rely on environmental storytelling and events

ornate drift
#

so it can be cluttered

torpid sparrow
#

im just not sure how it affects playability

elder scarab
#

So how do I do this? I've already read this, but how do I implement it in code?

torpid sparrow
#

there is an example on that page

#

scroll down, it will be an editdata patch to Locations

elder scarab
#

I saw an example but I don't know how to do this in my code.

verbal glacier
#

Action: EditData, Target: Data/Locations, entries: your location key

elder scarab
#

Please provide a complete code example.

torpid sparrow
#

is this not an example im confused

gaunt orbit
torpid sparrow
#

i sent that

elder scarab
#

But I want to load the custom map of the busstop. Can someone help me?

gaunt orbit
#

you are asking questions which are already thoroughly answered by existing documentation

elder scarab
#

I couldn't find it.

gaunt orbit
#

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

gaunt orbit
elder scarab
#

Could someone please write the code for me?

gaunt orbit
#

wem already posted an example snippet; if you want somebody to make a mod for you without any work on your part, you can pay somebody for a commission

#

!commissions

ocean sailBOT
elder scarab
#

I wrote the code but I'm still having the same problem.

gaunt orbit
#

did you relaunch the game after making changes?

#

locations are only created when a save is loaded, so you have to reload the save if you want to see changes. Additionally, CP does not auto-update json changes; you need to use the command patch reload MyModID to force it to reload changes you've made to a json file

or you can relaunch the game, which will reload everything from scratch

elder scarab
#

Are you still having problems

clever monolith
elder scarab
fossil osprey
#

Are you adding your warps onto the right map? Maybe you've switched the two

torpid sparrow
#

has anyone had any success adding a rainy day dialogue

#

doesnt seem to be working for me but i think i did the patch correctly

#

nvm i got it huzzah

#

just had to restart

barren tapir
#

UGGH I'M AN IDIOT

#

I forgot to include the LogLevel in the monitor

past loom
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 9 C# mods and 2 content packs.

barren tapir
#

The Cask class overrides the "TryApplyFairyDust" function of the "Object" class.

Is it possible to create a class for a new machine that only overrides this function? And if so, how would one tell Stardew to use that class?

I can clarify if need be, I'm aware this is a bit vague

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"/>.

brittle pasture
#

if you go the custom class route you'd need harmony anyway to make the game create your class when placing the machine down

#

may as well just patch TryApplyFairyDust

barren tapir
merry river
ocean sailBOT
#

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

brittle pasture
#

XY problem strikes again

ivory plume
past loom
fossil osprey
#

Since I learnt XY problem was a thing, I keep noticing how many people fall for that, it's honestly impressive

brittle pasture
#

it's very common, almost no one's immune especially not me

inland rain
marsh reef
#

Tiled question, my tilesheet got farded on lowkey, and the animations are all freaked, is there any way to import another currently fixed one in it's place?

gaunt heath
#

...can you elaborate on "farded on?"

marsh reef
#

🤣 no need, i found out i can open in it cs code and copy paste everything

#

the animations were on all the wrong blocks

gaunt heath
#

But yes, you can directly replace the tilesheets in the software

#

In the bottom right of the main screen you can click the button that looks like a wrench, and then go to tilesheet properties and there will be a field with a file path to the current sheet. You can replace the asset from there.

barren tapir
#

Good news! I got it working!
... Bad news, TryApplyFairyDust isn't the function I was looking for (turns out it gets called whenever you hover over an object 😅).

I'm gonna try and patch performObjectDropInAction instead, see if that works.

vale holly
#

that also gets called when you hover, you need to check the probe parameter

barren tapir
#

Good to know.

#

In that case, TryApplyFairyDust should hopefully work!

vale holly
#

any idea why my patch doesn't get applied in release mode (Smapi does detect that the mod uses harmony), if I build in debug mode or wrap PatchAll in a try catch block the patch does get applied:

[HarmonyPatch]
public static class ObjectPatches
{
    [HarmonyPrefix]
    [HarmonyPatch(typeof(Object), nameof(Object.Method))]
    public static bool Patch(.....
}
public override void Entry(IModHelper helper)
{
    _harmony = new Harmony(ModManifest.UniqueID);
    _harmony.PatchAll();
}
marsh reef
#

but I have it right here :( and it was working last night

barren tapir
calm nebula
vale holly
vale holly
barren tapir
vale holly
#

is it failing to get the current assembly

calm nebula
barren tapir
#

The way I've been doing it (granted, this is my first time trying this) has been to define an ApplyPatches function to my class that then applies the appropriate patches

calm nebula
#

Due to inlining, etc.

vale holly
#

I see, no exception was being thrown so I was really confused.

vale holly
barren tapir
#
sealed class Patcher
{
    //internal static IMonitor? StaticMonitor;

    public static void ApplyPatches(Harmony harmony)
    {
        harmony.Patch(
            original: AccessTools.Method(typeof(StardewValley.Object),
            nameof(StardewValley.Object.TryApplyFairyDust)),
            postfix: new HarmonyMethod(typeof(Patcher), nameof(Patcher.TryApplyFairyDust_postfix))
            );
    }

    // NOTE: This is called whenever the cursor hovers over the object
    private static void TryApplyFairyDust_postfix(StardewValley.Object __instance, bool __result, bool probe = false)
    {
        if (probe)
        {
            // Probe = True when hovering over an item with fairy dust.
            return;
        }
        string name = __instance.Name;
        string id = __instance.QualifiedItemId;
        ModEntry.StaticMonitor.Log($"Hello World from {name} ({id})! ApplyDust = {__result}, probe = {probe}", LogLevel.Debug);
        //return __result;
    }
}
calm nebula
#

I wonder if we could just ask brainz to throw the no inlining attribute onto PatchAll

#

think

#

Hey @ Button.....

tawdry belfry
marsh reef
#

chat what the heckings bros?

lucid iron
#

{{L@Kid}}.Dialogue.Resort

#

Let's say L@Kid is Sarah or something

#

This would look for Sarah.Dialogue.Resort in your i18n file

#

Another thing is that you are using this feature to pick a dialogue asset

"KidDialogueSheetName": "{{ModId}}_{{L@Kid}}_Kid"

But you are still loading to the default dialogue asset name

"Target": "Characters/Dialogue/{{ModId}}_{{L@Kid}}"
#

These need to match up

tawdry belfry
#

i think the i18n is right. the file in the i18n json and the file that pulls the dialogue matches

lucid iron
latent mauve
lucid iron
#

If you don't have specific reason i recommend leaving the dialogue sheet name things at default (i.e. don't set them)

marsh reef
ocean sailBOT
#

@marsh reef You leveled up to Cowpoke. You can now share images in all channels!

latent mauve
#

(I once had floating Master Kohga faces instead of leaves because I patched the wrong tilesheet by mistake)

latent mauve
marsh reef
#

it's not recognizing it's a 3x3

latent mauve
marsh reef
barren tapir
#

Do you think people would prefer having simple machine output price functions or complex machine output price functions?

I'm that weirdo who enjoys math, so I have a rather skewed perspective 😅

tranquil olive
#

How can you have an unflavored item name override for a cooking recipe output? I see this in the documentation

"... with flavored variants named "Apple Jam" or "Grape Jam", but want "Marmalade" for if it's flavored after oranges), you can set the following string keys in Strings/Objects:

selph.ExtraMachineConfig_FlavorNameOverride_(O)QualifiedItemId/FlavorId"

but I'm not really sure how to set that up for Strings/Objects...
my current code just in case:

light jasper
#

today's mood

brittle pasture
tranquil olive
# brittle pasture Strings/Objects is a dictionary of strings-strings; you just edit it like you'd ...

oh I haven't really edited character schedules yet-
um...would it be something like this..? I guess I'm just not sure where it would go

{
            "Action": "EditData",
            "Target": "Strings/Objects",
            "When": {
                "HasMod": "6480.flexiblecooking"
            },
            "Entries": {
                "{{ModId}}_FlowerCookies": "selph.ExtraMachineConfig_FlavorNameOverride_(O){{ModId}}_FlowerCookies/0"
            }

but would that be a redundant key for the flavored version...? or would the 'FlavorNameOverride' line replace what's currently there..? "{{ModId}}_FlowerCookies": "{{i18n:BA_FlavoredFlowerCookies_name}}"

brittle pasture
#

no

#

let me see if I can find an example

#

but the key is literally the string "selph.ExtraMachineConfig_FlavorNameOverride_(O){{ModId}}_FlowerCookies/0", the value is the user-visible text (aka the i18n token)

void aspen
#

someone removed a like from one of my mod 😭

#

I had 24 now I have 23 total likes

torpid sparrow
#

does happen sometimes

tranquil olive
latent mauve
merry river
tranquil olive
#

omg I could cry /silly
I think I'll finally no longer see a space where the ID/flavor should be for these now...thank you again @brittle pasture SDVkrobushappy

also I saw this

Let me know if you want this to also work for machines where the input is different from the output.
If you still was considering adding this, that would be cool SDVpufferaww although, would it be possible for it to work if there's more than one input..? I had a thought of an machine outside machine where you put two things in and get a furniture/object based on them, and realistically it would be nice if you could get the flower back in case you accidentally put the wrong one? but it's not end of the world if that isn't possible o:

ivory plume
brittle pasture
tranquil olive
#

oh!

merry river
brittle pasture
# merry river (bumping so it doesn't get buried)

not related to your question but
"SEASON Winter, TIME 1800 2600"
this won't work, bushes always check their produce at the start of the day; adding this condition just means it will never produce

ivory plume
merry river
past loom
#

is there another way of opening the .tbin files? I can't open them in tiled for some reason, even after enabling the plugin, and I wanted to edit the mountain map

merry river
ivory plume
past loom
#

I used a web unpacker since the stardewxnbhack crashes for me

ivory plume
#

We can probably help you get StardewXnbHack working instead; do you get an error when trying to use it, or does it just exit without showing anything?

past loom
#

it just says that it's loading game instance and then it exits on it's own

ivory plume
#

Can you post a screenshot of the folder where you put the StardewXnbHack.exe file?

past loom
void aspen
#

This path looks much different than mine hmm

past loom
#

really? I used steam to open this up, it's just in a different language

ivory plume
#

Can you try this?

  1. Right-click on the folder background (so no file is selected).
  2. Click the option that looks like "Open in Terminal", "Open in Command Prompt", "Open in PowerShell", or similar.
  3. In the window that appears, enter this command: ./StardewXnbHack.exe.
  4. Post a screenshot of what the command does.
merry river
void aspen
#

I suppose you could try asking someone for a unpacked content zip as is but idk if thats allowed
cp and tsinator should still accept it right?

ivory plume
merry river
# ivory plume Yep!

You understandably have DMs and friend requests turned off, could you add me? SDVpufferblob

ivory plume
#

My DMs should be open (though not friend requests). I can't send you a message though; are your DMs open?

cunning quartz
#

I'm tryna make a mod to just change the clothes but it keeps saying that the manifest is invalid here is the code for the manifest
{
"Name": "New_ShirtsNOT MINEvamphearl",
"Author": "Vamphearl",
"Version": "1.0.0",
"Description": "For me and my friend, not mine",
"UniqueID": "Vamphearl.New_ShirtsNOT MINEvamphearl",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
If you need anything else to help me or understand whats happening just let me know i just don't understand why its not vaild (this is also my first time tryna make a stardew valley mod so bare with me please) I named the file manifest.json like youre meant to aswell and its not saying anything except that the manifest is invaild so as far as im aware thats the only issue

ivory plume
void aspen
#

are UIDs meant to have a space

#

oh.

merry river
cunning quartz
ivory plume
#

That's not the name in the manifest.json you posted; are you sure you're looking at the right file? Can you upload your SMAPI log and post the link here?

ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 9 C# mods and 2 content packs.

agile terrace
#

Someone smack me Feature creep is horrid

cunning quartz
ocean sailBOT
cunning quartz
#

there are other mods but everything else is working except this one im tryna make and the others weren't made by me

hard fern
ivory plume
agile terrace
# hard fern Bonk

T_T Thank you. Trying to figure out what should be sheered off into a new mod and what should be updated to my existing mod is horrible

ocean sailBOT
#

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

hard fern
cunning quartz
#

is there some specific way you have to start creating the mod like on some extension/app or something?

#

also i can just send the manifest file directly if that would help, instead of going through the website

agile terrace
#

This is going to sound rude but I say this from experience: We sure it's a .json?

void aspen
#

I was about to ask

#

if its txt

#

I once did that mistake

#

it was manifest.json.txt lmao

#

be sure to have file extentions visible

cunning quartz
#

i created it using a txt document but it says its a json file

void aspen
#

looks legit hm

agile terrace
#

Yea, looks right so far

void aspen
#

wait are your file extensions show up or thats the file name that has it

hard fern
void aspen
#

like manifest.json.json

hard fern
#

Damnit

ivory plume
hard fern
#

fileextensions

#

Oh no

#

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

cunning quartz
void aspen
#

try that

ivory plume
#

(A misnamed manifest.json file would show a different error: "because it contains files, but none of them are manifest.json".)

void aspen
#

if it allows to remove the .json then its a part of the file name

#

and not the extention

hard fern
#

Your file should be manifest.json, with the json as the file extension

cunning quartz
void aspen
# ocean sail

do this and if it does show up as manifest.json.json then you know what to do

void aspen
ivory plume
#

The "because its manifest is invalid" error only appears if (a) manifest.json exists and is named correctly, but (b) it contains invalid JSON.

void aspen
#

its win 11 for you me thinks

#

also be sure that it doesnt have any letter from other languages that look like english ones too

#

in the file name

cunning quartz
void aspen
#

show us the screenshots of the manifest

#

for us to be sure

cunning quartz
past loom
void aspen
#

hmmmm

#

well its weird then

cunning quartz
#

is the name not allowed to have spaces either?

ivory plume
#

I see the 'unsaved changes' dot in the second screenshot; can you try saving it, closing the tab, then reopening the file from the folder?

void aspen
#

I hate win11 cuz it doesnt ask to save the file on closing

#

messed stuff up for me multiple times

void aspen
cunning quartz
#

how do i save the changes sorry if it sounds like a dumb question

void aspen
#

ctrl+s

#

this icon on the right should be a cross for you

#

it means it has no unsaved changes

cunning quartz
#

I think its working now cause i dont see the error code but im gonna double check in game :D

void aspen
#

well lets see then

#

most likely you had space in your ID and it didnt saved your edit and kept on being an issue

ivory plume
#

(An invalid ID would be a different error though; "manifest is invalid" is specifically invalid JSON format.)

ivory plume
cunning quartz
#

I mean it technically worked but it only changed 1 of the clothes options and it was meant to change multiple LineCry

void aspen
#

well at very least manifest is manifesting now

#

how exactly do you change your things

cunning quartz
cunning quartz
#

2nd image is whats in assests

near imp
#

!json its easier for people to check your json files if you share them through the validator (in the future)

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.

cunning quartz
#

and this is the only shirt that changed

void aspen
#

do you have any other mod that changes shirts

cunning quartz
void aspen
#

0 0 96 64

cunning quartz
#

i dont think anything else that changes shirts though ill double check though

near imp
#

its hard to tell from the screenshot of your shirt asset image, but if that is a partial replacement of shirts, meaning that a lot of blank space is left on the .png where normally there would be shirts, you might also want to change how your new shirt texture is applied, with PatchMode

void aspen
#

Well ideally thats how youd want to change only part of the shirts
You also need to add this after your target
"ToArea": { "X": 0, "Y": 0, "Width": 96, "Height": 64 }

near imp
#

Youre trying to make a mod that replaces some but not all of the default shirts right?

void aspen
#

you do a rectangle, I also retrived the shirts you accidentally deleted by blank spaces

near imp
#

Or specify which area of the image to replace, as Sasha says

void aspen
#

Try swapping the file and adding the line with ToArea

#

and see if it works

#

this way you keep the default shirts and make it compatible with other mods

#

kinda

near imp
#

If their new_shirts.png is the same size as the full default game shirt sheet, they will also need a FromArea, im pretty sure. contentpatcher wont know to disregard all the blank space on new_shirts.png otherwise SDVpufferthinkblob

void aspen
#

oh oh right

near imp
#

alternatively, if they shrink the size of new_shirts.png so its only the size of the replaced shirts, the FromArea can be skipped (iirc)

cunning quartz
#

Sorry im a little overwhelmed and confused where should i start

void aspen
#

You need to do only two things, adding a line to your content to specify which area you want to edit on the original texture by adding this after the Target line
"ToArea": { "X": 0, "Y": 0, "Width": 96, "Height": 64 }
and then you also need a proper png for your new shirts file, the one I did here should work as fine

#

(you could also do two different rectangles but this works too)

cunning quartz
#

so replace the last image with the one you sent?

void aspen
#

generally yep

#

your file is too big and has blank spaces which game doesnt recognise and basically removes almost all textures for other shirts

cunning quartz
#

i see now that ive done that just try and relauch and see if it works?

void aspen
#

yep

#

would be nice if you dont use other shirt replacing mods that could mess yours one up for a testing period

#

but thats on you

cunning quartz
void aspen
#

you could just movethem somewhere for a while but Ig that works too

cunning quartz
#

im not worried about the other shirts i kinda just want these ones anyways

#

its still just the one shirt

void aspen
#

💔

cunning quartz
#

do i need to change something in the content.json

void aspen
#

are you sure you choose the right ones in the menu

void aspen
cunning quartz
#

yeah i did that

void aspen
#

can you show it rq

cunning quartz
void aspen
#

okay huh
try moving ToArea line after FromFile

#

and dont forget to add a coma after from file line

cunning quartz
#

like this?

void aspen
#

should be it

#

This works for me on my mod

#

should work for you

#

try again now

cunning quartz
#

It's working!!!!

void aspen
#

yayy can we see it?

cunning quartz
#

thank you so much :)

#

you wanna see the code or the shirts?

void aspen
#

how it looks in the game!

cunning quartz
#

cute little off the shoulder moment

void aspen
#

perfectt

void aspen
cunning quartz