#making-mods-general

1 messages · Page 525 of 1

jaunty shuttle
#

Hover over or hold down on a message, and it's the arrow next to the reply thingy (pointing right instead of left)

lucid egret
#

oh yes i know how to do that, im not sure how to do the one where there's a blue highlighted button that you can click to go where the message is

jaunty shuttle
#

Ohh, yeah you have to click on the channel(s) or person(s) you want to send it to first

devout otter
#

So I downloaded your newest upload on Nexus to test it and apparently that one tries to edit Strings/maps instead of Strings/StringsFromMaps.

#

So maybe you uploaded an incorrect version?

opaque cobalt
#

Do you use the entry name or ID name for a weather type in regards to appearance modding conditions? I would manually test, but unless I missed a command, I don't know how to force modded weather types.

finite ginkgo
#

The ID, but ideally the "entry name" (I assume you mean the key you used in your patch?) would match the ID

lucid egret
devout otter
#

Whoops, I pinged the wrong person. Sorry, TL13...

lucid egret
#

omg what is happening im so serious it says Strings/StringsFromMaps on mine

hard fern
opaque cobalt
#

Fooled me, I thought I just missed some huge letter sign that was the equivalent of "USE THIS DUM DUM or bring me gum gum". Then I red the entries and realized was something completely different...

lucid egret
#

WHAT IS HAPPENING

opaque cobalt
devout otter
lucid egret
#

No it's literally always been Strings/StringsFromMaps, even in the original mod

#

Okay no matter where I try to open my maps.json every version displays Strings/StringsFromMaps

tacit nimbus
#

Is it difficult to make mods for stardew? What types (if any) are easy, and which are hard?

hard fern
devout otter
tacit nimbus
royal stump
hard fern
#

I guess something "easy" would be a simple patch to change one thing, like an item sprite, changing an item description, or a crafting recipe

lucid egret
#

What kind of mystery is this??

hard fern
#

my advice would just be to look at the relevant documentation for what you want to do and go from there

lucid mulch
#

!log run patch summary "supert.adventureguildexpanded" and then upload your log (don't need to turn off stardew)

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.

eager mural
#

Hiiii I'm trying to create a map for the first time and I want to use https://www.nexusmods.com/stardewvalley/mods/10448 to create my outside, I'm using Tiled but I'm not sure how to open it and upload this tilesheet to create a new map, just need a hand getting started, this is my first time modding Stardew

Nexus Mods :: Stardew Valley

This mod is a resource mod for map modder adding a new tilesheet containing various buildings to use in their map. Pls read the instructions to know how the mod works !

devout otter
#

This part "danielsMessage": "{{i18n:MapStrings.danielsMessage.{{Random:00,01,02,03,04,05,06}}|i18n={{danielNPCnamedisplay}}}}",

#

is invalid, making the whole Maps/StringsFromMaps patch not running.

lucid egret
#

oh

#

crud

#

im guessing its because i tried to put in |i18n={{danielNPCnamedisplay}}

devout otter
#

Looking at your default.json, I don't think that part is needed, actually. What are you trying to do?

lucid egret
#

One of my translators told me that when they talked to that NPC when he showed up in the guild, his display name wasn't showing up as translated. Since that version of him are map tiles I assumed that I could feed the name display through there to get it translated

#

SDVpufferthinkblob apparently that...doesn't work

devout otter
#

Aa, so danielmessage is actually all Daniel's dialogue?

lucid egret
#

Yep

devout otter
#

Where is he located?

lucid egret
#

you mean his map tiles? or where he shows up in the game?

devout otter
#

His map tiles, yeah.

lucid egret
#

Should be in Assets/Maps/Daniel.tmx

devout otter
#

Hmm, if you have Daniel already loaded as non-social NPC, this should actually work as long as his display name field is {{i18n:danielNPCnamedisplay}}.

#

You shouldn't need the i18n={{danielNPCnamedisplay}} thing.

lucid egret
#

huh. alright then SDVpufferthinkblob It was an issue on the translator's end then I suppose...

devout otter
#

(My NPCs are all map tiles so I should know. 😆 )

lucid egret
#

I did try to test it out after I added in the |=i18n:blablabla thing and it still worked so I assumed it was fixed but idk...weirdness happens

#

i'll push out an update when i can. Thank you again Naira SDVpufferheart

devout otter
#

Yar no problem.

lucid egret
#

I still wonder why it showed up as Strings/Maps for you though SDVpufferthinkblob is that the effect from the danielsMessage entry being invalid?

lucid mulch
lucid egret
#

Sorry, didn't see that message

#

also I go by she/her

dusk mulch
#

Will it cause any problems if I delete the unpacked json files in Data for other languages?

vernal crest
#

Nope

#

The unpacked files don't do anything, they are just there for your viewing pleasure

dusk mulch
#

Cool, ty!

hard fern
#

the unpacked files do bring pleasure to my viewing

dusk mulch
opaque field
#

I cannot and no one can make me

#

Unpacked my beloved

lucid iron
brave fable
#

what do we want? stardewxnbhack param to omit files with locale extensions! when are we going to PR it? not now!

patent lanceBOT
lucid egret
sullen frigate
#

Hello everyone~
Sorry if I am asking something wrong. This is my first time in this chat :/

I am trying to make a modification on the price for upgrading the tools at Clint's. I have tried to follow the documentation here as well as look through the unpacked files to make sure the names of the stuff are correct. However once I load into the game it doesn't work...

This is my current code: (Using CP)

    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Tools",
            "fields":{
                "CopperHoe" : {
                    "UpgradeFrom": [
                        {
                            "RequireToolId": "(T)Hoe",
                            "Price": 5000,
                            "TradeItemId": "(O)334",
                            "TradeItemAmount": 25
                        }
                    ]
                }
            }
        }
    ]
}```
Stardew Valley Wiki

← Items

brittle pasture
#

you also need to null it out

sullen frigate
#

Ohh I see! Thank you! ❤️

inland rain
tranquil surge
#

Hi there! Hopefully this is the correct spot to ask this. I'm working on making myself a custom farm map, but for some reason the map isn't spawning the ores or foragables as they should. I'm fairly sure this is an issue with my code on the content.json but I'm not certain. Would someone be willing to help me figure this out?

brittle pasture
#

how are you spawning the ores

#

I think you need FTM/SpaceCore unless you're directly patching a vanilla map?

red basalt
#

Is there a way to access the content patcher ConfigSchema using C#?

tranquil surge
tranquil surge
#

Would it just be easier if I posted the code for you guys to look at?

brittle pasture
#

!json yes

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
tranquil surge
#

That's the file in question. I don't have nitro, so I can't just copy-paste it here.

brittle pasture
#

use the link above to upload your file and send the link here

red basalt
#

I mean, is it possible to access those settings from C#? That way I can do things like: if option A is enabled, then do this.

brittle pasture
#

is this your own mod or another mod
if it's your own mod it's probably easier to just have the settings in the C# component and expose tokens for the CP mod instead of the other way around

lucid iron
#

if own mod u can also just not use content patcher Dokkan

brittle pasture
lucid iron
#

directly do content edit as you like

brittle pasture
#

if this is FTM code it has to be in a separate FTM content pack

brittle pasture
#

(but that doesn't look like FTM code either)

tranquil surge
brittle pasture
#

aside from the map loading literally none of it is valid whatsoever

tranquil surge
#

I also took a look at the modding guide on the Stardew Valley Wiki, and used some of the values from there.

brittle pasture
#

if you're just guessing what to put in here then pls dont

brittle pasture
#

I would start over and read the documentation for how to make an FTM pack

#

you can also see other existing maps that spawn forage for examples

#

(and if by any chance you were using AI, pls don't; it doesn't know anything)

tranquil surge
#

I mean, I started from the base of other existing modded maps with foragables and worked from there to fit it to my map. And no, no ai.

#

There was a point when this was working on my personal save, but that was a few updates/patches ago and idk what changed to make it stop working.

brittle pasture
#

I would be rather surprised if this worked at any point

uncut viper
#

what existing mod did you base it off of?

tranquil surge
uncut viper
#

Was it using Custom Farm Loader and not CP/FTM?

tranquil surge
uncut viper
#

this appears to be Custom Farm Loader format

tranquil surge
#

But wait, doesn't CFL use CP/FTM folders?

uncut viper
#

CFL uses (or at least used to?) use its own content pack format

brittle pasture
#

ah yes this is indeed CFL format; thanks button
but CFL uses its own format AFAIK

#

and you cannot drop these fields as is into a CP mod

uncut viper
#

they're not interchangeable or mixable formats

brittle pasture
#

in fact I think if you use a CFL pack you would not use a CP pack at all

tranquil surge
#

Okay, I looked at my nexus history. I took elements from Magic Starry Foraging Farm and Grandpa's Grove Foraging Farm.

uncut viper
#

im not familiar enough with CFL to know if there's good reason to use it over CP and/or FTM in a post 1.6 world

#

it certainly wouldn't be a common choice at the very least, which may affect the help you could receive if you choose to stick with it

#

(because people may not know it)

tranquil surge
uncut viper
#

the name of the folder is irrelevant

tranquil surge
#

Oh, gotcha.

#

As I said, I originally wrote this code when 1.6 first released.

#

And at the time, all the mods I checked that were similar to what I wanted required the CFL mod to operate if my memory serves me.

brittle pasture
#

yeah CFL was the main framework of adding custom farms in 1.5 (I believe it was made to backport some native 1.6 features to 1.5)

#

since CFL still works if you don't want to start over you can take what you have and try to put it in a proper CFL content pack

tranquil surge
#

I mean, I have the 4 files required for CFL to operate as my memory serves. The .tmx of the map itself which I made using TileSheets. Then the Manifest, Content, and Farm_Name JSON files.

As I mentioned, I'm fairly sure it's only the manifest file that's incorrect.
But if I really have to start from scratch, I guess I don't have much of a choice since I don't know what's wrong with my file.

#

Wait, could it simply be the version number? The JSON validator says I need to update that...
I'm going to try that out really quickly.

uncut viper
#

you said you took things from other mods and adapted them, if some of those things were from mods that arent CFL mods then they will not work whatsoever no matter what you do to your file

tranquil surge
#

As I said, it was working last time I used it, so I think I did something right, lol.

#

Okay! Just checked, and it seems that all that was wrong was the version number! Yay!
Thanks for your help @brittle pasture and @uncut viper! I appreciate it!

#

Not gonna lie, I'm honestly breathing a sigh of relief at not having to learn and do everything from scratch again, lol

lucid iron
#

doing it with not CFL does have various benefits i feel

#

but u can always look at that if u make a new farm

tranquil surge
lucid iron
#

the tmx part doesn't really change Bolb

tranquil surge
lucid iron
#

still gotta make that in tiled

#

the parts that change is you use content patcher to edit in additional farm data and location data, so that it can be a new farm option

#

compared to CFL the main benefit is that more ppl have content patcher installed Dokkan

#

but also i am tokens enjoyer

uncut viper
#

content patcher is also nigh but guaraneed to work in future versions of stardew

tranquil surge
#

Oh, are you talking about sharing the mod to others? So far, this has just for my personal use.

lucid iron
#

cfl works in 1.6 tho, hence why i dont see reason to change now unless you make new farm

tranquil surge
#

Fair enough. If I do end up making a new farm one day, I'll give that a look-see. Thanks!

lucid iron
tranquil surge
dusk mulch
#

Do I need to make all 6 portraits for an npc or just 1?

vernal crest
#

You should probably have portraits in all 4/6 spots, especially if they're romanceable, but there's nothing stopping you from just putting the same portrait in all the frames

dusk mulch
#

Alright, I'm not too sure what I want to do with the npc yet in terms of "story" so i'm just making sure it works and refining it

brave fable
#

the wizard has 2 portraits. marlon has 1. be lazy

devout otter
#

I usually write the dialogue first and just draw any necessary expression to go with the dialogue.

dusk mulch
#

Problem... It's a junimo... Do junimos ever speak in vanilla gameplay or is it just writing?

devout otter
#

"Oh I feel like she's say this line bashfully. I guess I'd draw a shy expression then."

dusk mulch
#

Oh wait they do speak

#

When you complete a bundle

ornate locust
#

but you should just start with 1 and add the ones you need

#

Otherwise you'll end up with faces you worked on and don't even use

brave fable
#

on the flip side it's fun making oddball portraits and then finding places to use them

#

inshallah i shall make use of these half dozen eating portraits

ornate locust
#

This is true, if you WANT more, definitely go for it

#

I made most of mine before I started my mod because I kinda got into a groove and realized it was fun

#

(I still ended up making more as I went)

hard fern
#

i like thinking about what kind of faces my npc would make

#

and then making the dialogue accomodate it

ornate locust
#

I started with a handful and then it just kept kinda snowballing

#

"no this one doesn't fit this dialog" "this one's slightly too annoyed"

vernal crest
#

I struggle doing facial expressions so I haven't done any of my planned additional portraits yet

brave fable
#

the only expressions i recognise are sandwich burger and noodles

fierce vault
#

I like doing portraits before making dialogue. I like doing a lot of the art first though.

#

Anything to push off the massive amount of writing and event making I have left. I'll even work on odd little json projects before getting to that. 😆

dusk mulch
#

when is that?

gentle rose
#

cc completion

dusk mulch
#

i know they squeak frequently

#

oh

inner harbor
#

The one in the joja ruins also talks

#

Note that they do not baby talk.

tranquil surge
#

Is there a way to, on a custom map, have two separate ponds where one pond has all the ocean fishing options in it, and the other has all the freshwater fishing options in it? I'm specifically wondering if it's possible to save time and effort with some kind of blanket-statement without having to copy-paste the values and percentages of all the different kinds of fish that fit into that category.

inner harbor
#

(Thats just a mod added incliantion started by Apples)

#

(Who is baby)

dusk mulch
old edge
#

Hello is it possible to start an event by talking to an npc?

devout otter
#

Yeah, there's a dialogue action for that.

hard minnow
#

I am a Korean. I used a translator, so the readability might be low.

I successfully designated the Dwarf as a roommate and brought them to the farmhouse.
However, even though I wrote dialogue for the roommate, the generic marriage dialogue is being displayed instead.
​Is the target Characters/Dialogue/MarriageDialogueDwarfRoommate incorrect?
​Or is there another reason for this?

inner harbor
#

Well, if it helps I don't think Flashshifter will accuse you of anything.

dusk mulch
devout otter
old edge
#

oh this is new

hard minnow
dusk mulch
inner harbor
#

Did you Load the MarriageDialogue or use EditData?

hard minnow
inner harbor
#

You need to "Load" first.

#

It cannot edit something that does not exist.

dusk mulch
#

I completely forgot that the dwarf didn't have default marriage dialogue

inner harbor
#

Most of us load a blank json file (just with { }

#

(I made a Dwarf roommate mod)

hard minnow
#

okay

devout otter
#

Yar, so you do something this "Action": "Load", "Target": "Characters/Dialogue/MarriageDialogueDwarfRoommate", "FromFile": "blank.json" with the blank.json only containing { }

inner harbor
#

(I cannot find the text in the strings files sadly)

devout otter
#

And then underneath you put your EditData for Characters/Dialogue/MarriageDialogueDwarfRoommate.

dusk mulch
hard minnow
inner harbor
#

(getting called out by Luma)

hallow prism
# tranquil surge Is there a way to, on a custom map, have two separate ponds where one pond has a...

you can :

  • have one area with one kind of fish and the other another
  • have fishes that are based on what you can catch on another location

i don't think you can have the full list of ocean fishes and the full list of non ocean fishes like that, but since vanilla ocean fishes are mainly beach + some part of GI, using beach pool + main GI pool + adding the few that may be missing should cover pretty much most of the fishes.
For non ocean, you may have to grab more areas and add more exceptions

harsh mountain
#

I used this animation from Shopkeeper Leela mod, but I'm not allowed to do so... could I replace this animation?

#

also this from Sunberry Village...

#

but I tried to not perfectly copy this phone animation

#

but still feels like I stole this phone animation from Sunberry Village

#

because there's no downside phone animation in Vanilla game

hallow prism
#

If you feel you're crossing the line of referencing and are copying instead, reach to the author to ask for permission

#

And if you cant do that or the author says no, redo animation differently

low marlin
#

For HMK - If I have children that are 2+ years old (most of my children are born years apart from another in my main save) - Would they automatically be turned into HMK kids immediately?

And, if the children are born from different parents - Can HMK content pack delineates which kid are which spouse/ex-spouse's child or not (it would turn ALL children to children of the current spouse)?

tiny zealot
#

@lucid iron afaik HMK stores stuff in child's ModData so it probably remembers a bunch of things, but i would get chu's input about it

lucid iron
#

If u did have hmk installed already when kids are born then I do store the npcparent yea, you can see mod data in game with looking datamining fields on

low marlin
#

So that means it would turn ALL children into a specific unique child - spouse-based or not?

So in that save, I am married to the Wizard, so if I have a HMK custom Wizard kid content pack - It would turn ALL children into Wizard kids?

lucid iron
#

Yeah up to the number of kids available

low marlin
lucid iron
#

Mod can't know about things happening b4 it's around to see stuff

#

Each custom kid is only allowed to exist one time, e.g. if you married wizard, had 4 children, made 2 wizard kid packs (or 1 pack with 2 kids)

#

Then you get the 2 custom kids and 2 generic children

low marlin
#

So TL;DR:

  • I have 10 children born to 4 previous spouses + 2 more from the current marriage with the Wizard
  • I make a custom HMK content pack for the Wizard-born children ONLY and then install HMK...
  • The content pack would be universally applied to all children (since HMK is installed AFTER all the kids are born)?
lucid iron
#

Honestly you are presenting a niche scenario that I can only guess about SMCPufferjail

#

What I believe is that

  • since all kids are born prior to hmk being installed, it has no knowledge of who the npc parent is for any of these kids
  • thus it'll probably assume that they are your current main spouse's kid
low marlin
#

Currently, in my main save - All my kids rely on Unique Children and Unique Children Talk.

tiny zealot
#

if your mod isn't running when the kid arrives, there's no way to know who it was (and even then it can be tricky, if e.g. poly mods)

low marlin
#

So it is likely that HMK would turn ALL children into either generic children or custom content pack-added children (in this case, a custom Wizard children content pack)?

golden basin
#

@lucid iron i have a question aout petshops

"Price": 2000,
"Id": "PetAdoption1",
"ItemId": "mushymato.LivestockBazaar_PET_ADOPTION {{ModID}}_ArcanianDog T true false",
},
{
"Price": 1000,
"Id": "PetAdoption2",
"ItemId": "mushymato.LivestockBazaar_PET_ADOPTION {{ModID}}_Shevit T true false",
},
{
"Price": 3000,
"Id": "PetAdoption3",
"ItemId": "mushymato.LivestockBazaar_PET_ADOPTION {{ModID}}_GuineaDog T true false",
},
{
"Price": 3000,
"Id": "PetAdoption4",
"ItemId": "mushymato.LivestockBazaar_PET_ADOPTION {{ModID}}_Miniphant T true false",
},  ```
is this corret? fo the shop entries and if not how is it written?
lucid iron
#

I'll have to indent it first to tell you lol

golden basin
#

i only ask cause my aopatbles arent showin now

#

adoptables*

#

whats indenting lol

lucid iron
#

It's hard to read nested stuff when things at different scope isn't indented

golden basin
#

ooo ok

#

so am i doing it right? the entry for that, idk if its the way i wrote it but the adoptables pets arent showing i have the ability unlocked too

lucid iron
#

The args are correct and you can debug iq to test

golden basin
#

thank you ill test right now

lucid iron
#

debug iq mushymato.LivestockBazaar_PET_ADOPTION {{ModID}}_ArcanianDog T true false

#

But replace the modid with your actual mod id

vernal crest
#

What is iq? Item query?

golden basin
#

the debug came back as this That query did not match any items.

golden basin
vernal crest
#

You can't use CP tokens directly in SMAPI outside of the patch parse command

golden basin
#

i know i repalced modid with my own id

#

but its still reading it as nto matching any items

vernal crest
#

I was confused because you replied to chu's message about replacing it with your mod id to ask if it was being read so I inferred that you didn't know to do that

golden basin
#

its okay no worries

#

i mean, the game isnt reading my item a matching or being there so i was confusing

#

typing is hard today my fingers are so cold lol

lucid iron
#

Yeah so it means no pet matched the id

#

I don't know your pet data section but i would double check that

golden basin
#

weird do i need to write it without the mod id token maybe?

lucid iron
#

Yes that's what i said already

#

You cannot use tokens in console commands

golden basin
#

nooo i mean in my shop entry not the command

lucid iron
#

Well debug iq has to work first

#

If it doesn't work shop also won't work

vernal crest
#

The command chu got you to do should find any animals that match it, so it should've opened a screen showing your arcanian dog

golden basin
#

oooh i see

#

let me see then

#

thats so weird maybe i wrote the id wrong for my momd i have so many different ids lol

golden basin
#

its working in my other shop

lucid iron
#

Does your other shop sell the same pets?

golden basin
#

yeah it does

#

does it have to be different ids?

lucid iron
#

No

#

But double check if you wrote the same things i guess

golden basin
#

i just opened up the pet menu in that other shop, the pets are gone????

#

like the menu opens with the supplies under adopt a pet but theres no pets

#

so its def my pet code thats...weird

lucid iron
#

Well then something borked between last testing and now

#

You can do patch export on pet data to see

golden basin
#

it is showing in the patch export

vernal crest
#

It looks like you can convert an existing pet to one of your pets to see if that works

#

There's a console command for it on the wiki page

golden basin
#

yeah it works

vernal crest
#

So it sounds like it's your shop data that is wrong

golden basin
#

my shop data

#

pets

#

they seem to match to me so idk whats up, the shops are also working besides the pets

vernal crest
#

You can sell pets in regular shops?

golden basin
vernal crest
#

So what is not working? If the pets are there?

#

Or is that an old screenshot or something?

golden basin
#

No its a new one, the issue is its not appearing in a custom pet shop im making

#

i dont want the pets at marnies

vernal crest
#

Oh so "her" means Marnie

golden basin
#

yeah! sorry im not very clear im sorry

vernal crest
#

Why are you adding the plant shop to mushymato.LivestockBazaar/Shops twice?

golden basin
#

chu told me i need both a petshop one and a shop one

vernal crest
#

Oh, you just have two separate patches to add ShopId and PetShopId instead of doing them in the same patch, for some reason

golden basin
#

did i do it wrong

vernal crest
#

You are adding the same shop ID to both fields, but you need two separate shops

#

Well, it's just unnecessary to edit it twice instead of editing it once to add both fields.

#

But from what I can tell from backreading, they shouldn't both contain "{{ModID}}_PlantShop"

#

You should have two different shops with different IDs

#

And have the items in the supply shop and the pets in the pet shop

golden basin
#

oh hm im still confused how that should look....is it possible to see a example? are their mods that do this too

vernal crest
#

Do you remember chu telling you to patch export mushymato.LivestockBazaar/Shops so you can see how it's set up for Marnie?

#

And then to copy that?

golden basin
#

ill try

vernal crest
#

I'm not otherwise sure how to say "split your current {{ModID}}_PlantShop entry in Data/Shops into two entries. Give the second one a different ID. Put the pets into the second one. Then change your first patch targeting mushymato.LivestockBazaar/Shops so that its ID is the new shop ID instead of {{ModID}}_PlantShop"

lucid iron
#

Livestock bazaar provides a custom item query that filters the pet license

#

Atm i think clown has to check the Data/Pets keys

#

To make sure they all match up with the arg

golden basin
#

im sorry im looking at marnies patch export and im just more confused because there is no pet entries in there. and the pets work we checked it in marnies regular shop

vernal crest
#

You told Clown to set up two shops

#

Which they have not done

golden basin
#

because im confused

lucid iron
#

Well it's 2 Data/Shops entries

#

So yes a pet shop is a regular shop on the inside

#

But right now it seems like the problem is that the item query is not fetching the expected pets

vernal crest
#

Yes, and she only has one shop entry, with both the items and pet licences in it

#

I have checked the pet IDs and as long as the mod IDs are correct, they match

lucid iron
#

Either way one step at a time Dokkan

#

I'm gonna be away so I'll summarize real quick

#
  1. Make sure the item query itself actually shows the expected pet licenses
  2. Make a new entry in Data/Shops, and put the pet license item queries there, separate from the item shop
  3. Put the id of this new Data/Shops entry in PetShopId
golden basin
#

shop*

lucid iron
#

If u still have problems in 8hrs then I can check your actual mod but im gainful employment rn bye

vernal crest
#

Have a nice work chu I am going to sleep

harsh mountain
#

well... I have a question... how can I choose specific artisan goods? I mean what is should made from. I need that tag.
e.g. Dried Starfruit

brittle pasture
#

what is the context (machines, shops, etc.)?

harsh mountain
#

item

brittle pasture
#

where

#

every dried fruit is the same item, and they're only distinguished via their "flavor" in the item spawn fields; consequently, contexts where item queries or context tags are not supported cannot distinguish them

harsh mountain
#

ohh...

#

I hope we'd see flavor tags in the next update

brittle pasture
#

[[Modding:Item_queries]] if you need to spawn them look at the FLAVORED_ITEM query, assuming the context you're spawning them in supports item spawn fields

harsh mountain
#

or...

brittle pasture
#

[[Modding:Context_tags]] if you need to distinguish them, every flavored item has an autogenerated context tag that denotes their flavor, and assuming that you can combine it with their item id you can identify them

harsh mountain
#

I want it for gift tastes

brittle pasture
#

then you doomed

harsh mountain
#

it's not possible?

brittle pasture
#

gift tastes only support one tag at a time, so you can only make your char like all dried fruit, or all starfruit-flavored items, not starfruit-flavored dried fruit specifically

shut edge
#

so i'm lookin at my map data a bit

harsh mountain
shut edge
#

most of the tiles are 0s or three digits, but some are 2147484056

harsh mountain
#

what's that tag?

shut edge
#

is that like normal

brittle pasture
#

the description is slightly misleading; this works for every flavored item

harsh mountain
#

ok thanks

golden basin
#

I got the pet shop menu to open!

#

now just gotta add my pets to it

shut edge
#

eh too early / late in my day to think about maps i feel

umbral edge
#

Sorry i know this isn’t a mods general place, but does anyone know of the new mod that came out not to long ago that lets you transfer stuff from an old save to a new save?

calm nebula
tranquil surge
# hallow prism you can : - have one area with one kind of fish and the other another - have fis...

I was hoping I could use the second option, have the water be based on what I can catch in other locations, but it doesn't seem to be working in CFL. I know the following is super simplified, but should something along these lines work assuming I don't want to add anything extra and that I have included the coordinates of where I want the water to be?

"Location": "Ocean", "Chance": 0.6,
"Location": "MountainLake", "Chance": 0.4

Also, what is GI? I'm not familiar with that abbreviation...

golden basin
# lucid iron 1. Make sure the item query itself actually shows the expected pet licenses 2. ...

When you're able to! I know you're very busy. I've successfully gotten the pet adopt menu opening.

The new issue is, the actual pet licenses for my custom pets aren't appearing. I've tested the pets as adoptables in Marines shop. It works perfectly. I think I might be writing the item entry wrong? I was wondering if I could have an example of it written out? My pet ids I swear are correct within my item entry but maybe I'm just missing some thing?

#

mushymato.LivestockBazaar_PET_ADOPTION Fellowclown.TAE_Miniphant T true false

I have it written like this is that even the correct way to write it?

lucid iron
#

You haven't shown me your pet data yet so I have no idea if that's correct

golden basin
lucid iron
#

Please send me your EditData for pets

golden basin
#

Thank you chu I know this must be annoying

#

I'm studying that document too but I struggle understanding things on my own

lucid iron
#

{{ModID}}_Miniphant

#

Your mod id is definitely Fellowclown.TAE yeah

golden basin
#

Yeah it's that

lucid iron
#

Can you try this

debug iq mushymato.LivestockBazaar_PET_ADOPTION Turtle T true false
#

The expected result is that you see the turtles

golden basin
#

Okay let me try that

golden basin
lucid iron
#

Well at least the item query itself is normal

#

Can you patch export Data/Pets

golden basin
#

yep let me do that

lucid iron
#

Hrm the id is indeed Fellowclown.TAE_Miniphant NotteThink

golden basin
#

That why i thought maybe it was something else? like how i wrote the item query or whatever cause the ids do match

lucid iron
#

Ah you wanted to ban this from Marnie right

#

ignoreCanBeAdoptedFromMarnie (default false): setting this to true makes this query ignore the CanBeAdoptedFromMarnie field, which allows you to ban this pet from Marnie's PetAdoption shop but still access it through this item query. If no arguments are given then this behaves identical to PET_ADOPTION.

golden basin
#

yeah and have it only appear in the custom shop

lucid iron
#

Your 4th argument is false rn it needs to be true

#

I thought I was pretty clear about that but again if I can reword it to be more explicit then I'll do so

golden basin
#

that was it!

#

its not you i promise

#

I have a pretty bad learning disorder

#

Like I was diagnosed as a kid and I literally need extra help my entie school life because of it, the hand holding was constant cause i just cant quite understand text on my own

#

I need straight forward examples, like images or videos most of the time lol

#

So just saying, youre doing wonderful if its def me

blissful panther
#

(You're both doing great. So there! SDVkrobusgiggle)

golden basin
#

SHSSHHSSHSHHS

#

DH you fiend

#

well its finally working great thank you chu

lavish terrace
ornate drift
#

i wish there was a recent mod that allowed you to recruit NPCs to follow you around

#

there used to be two mods like that but theyre super outdated

brittle pasture
lavish terrace
ornate locust
#

There are like two recent mods that do that as well, though someone else is gonna have to dig up the names because I am dealing with insurance on the phone and can barely keep my own name straight right now

#

I know one was something really weird like THEY FOLLOW YOU

brittle pasture
#

look at the fields + the unpack

#
  • the map files
lavish terrace
#

can do, ty!

ornate locust
#

Oh it was "They Stay With You"

#

and The Stardew Squad

#

they put me on hold :V

#

@ornate drift this was all re you btw

ornate drift
#

huh?

ornate locust
#

There are two mods that do what you want. They Stay With You and The Stardew Squad

ornate drift
#

ohhh

#

ima search those up

#

this is chinese though

#

i think

ornate locust
#

It is. but it works apparently. Stardew Squad is the other one, and it's in English

urban patrol
#

if you want, it's possible to make an NPC-shaped trinket with trinket tinker

timid halo
#

Hi, im trying to add a new farm to the game, does anybody know if there are any video guides? im having trouble following the documentation on the wiki.

lucid iron
#

stardew squad is the plug and play one

old edge
#

you can use an existing farm mod to create your farm as a base

lucid iron
#

As in you install it and can then go recruit whomever, some have custom dialogue via content

lucid iron
#

It is more customizable from mod author side

old edge
#

I have yet to try this mod but it seems like it may helphttps://www.nexusmods.com/stardewvalley/mods/41213

Nexus Mods :: Stardew Valley

Stardew Valley Map Creation Utilities ModDesigning maps for Stardew Valley can often feel tedious, especially when it comes to copying animations, setting up layers, or fixing tilesheets. This mod is

ornate locust
ornate locust
#

I don't know why anyone would want an option to just break your maps with absolute paths anyway

old edge
#

hmm ill have to try it ot

#

isn't that just for when the tilesheet load order is messed up or somehting

ornate locust
#

I mean, that's always going to break your map and you will always have to fix it

#

because it's an absolute path, it goes from C or whatever to where your file is

#

Game will complain and not load the map

#

To be somewhat fair, it was labeled! but it was also otherwise identical to Tilesheetinator menu options and right beside them and my keyboard was messing up at the time, so I hit that instead of the keyboard shortcut. And I don't know why you'd ever use it

lucid iron
#

Did u give feedback about that

brittle pasture
#

why is that an option SDVpuffersweats

#

(not a mapmaker)

urban patrol
#

i was excited about the copy/paste options but haven't tried it out yet

ornate locust
#

I held off mentioning it because... well, I mean, they made the function, they probably have SOME use for it, right?

#

but just be warned, do not click that if you don't have a use case of... I dunno, whatever you'd use that for

golden basin
#

is anyone else having issues assigning pond data to custom fish? for some reason my fish keep asking for like bait

harsh mountain
#

I planned to create my own events, but I need to choose free (not used) event numbers. How can I do it?

ornate locust
#

Don't use numbers

#

If a guide tells you to use numbers, it is an old guide

harsh mountain
#

really?

ornate locust
#

Do something like {{ModID}}_WhateverEventName

harsh mountain
#

woooow

#

that's better than numbers

ornate locust
#

Yeah recent updates mean you don't need numbers

#

Which yep, is way better

brittle pasture
brittle pasture
golden basin
#

I wasnt really sure what to put there, do i make them up or?

brittle pasture
#

RequiredTags = if the fish has these tags they're eligible

#

use the autogenerated item id tags

golden basin
#

oooooo

brittle pasture
#

id_o_youritemid

#

it's a list of strings, but for specific fish you just need one

golden basin
#

thank you i appericate your help

pale river
brittle pasture
#

you still can

autumn tide
#

oh yeah the author's super chill about permissions/expansions

pale river
#

I can, but I don't really know how to learn how to do the npc movement parts, harmony etc

#

I got all the mod entry cs stuff down

brittle pasture
autumn tide
#

hm, what exactly do you want? to learn harmony etc through this, or to do this project

brittle pasture
#

because the latter is 100% not allowed

autumn tide
#

ohhh okay

pale river
brittle pasture
#

with enough update tick events you can override npc behavior yes

#

bigger hurdle is probably mp compat

#

but telling mp users "non" is always valid

pale river
autumn tide
#

hmm do all content packs (like FS and AT stuff etc) need CP?

brittle pasture
#

no

autumn tide
#

gotchaa ty!

#

wanna update the !startmodding command to have more resources/be more clear, I'll be posting drafts and such here for review ofc

lucid iron
#

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

lucid iron
#

The list of framework mods page does cover whether the framework works via CP or not

autumn tide
#
Making mods can be broadly divided into two categories:
Content packs are formatted text files, and don't need any prior programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the wiki tutorial for Content Patcher, (aka CP, Content Patcher is the framework used for [idk, like editing vanilla assets? I'm not sure how to put this]), the Content Patcher documentation on Github, the and the list of framework mods. The SDV wiki's Modding Index contains explanations for many [no clue how to put this- features maybe?]. There's also a modding wiki with specific tutorials, though it should be noted that the modding wiki may not be as up-to-date as the regular SDV wiki. [needs revision for clarity]

C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.

Usually it’s easier to start with making content packs, since you don't need to learn C# programming.
To use this command, type !startmodding.

alr first draft, things surrounded by [] are where the text needs to be fixed, as much feedback as possible would be appreciated

#

ALSO- should I plug button's json tutorial? i found it very helpful

#

should ask permission first

bold cairn
#

Apologies as I'm rusty at setting up Visual Studio for SDV modding:

I'm trying to follow the steps here:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/extensibility.md#access-the-api
to begin creating custom tokens for Content Patcher in my C# mod.

I've added a new IContentPatcherAPI.cs class to my project with the listed code copied in, however it is not recognizing / finding ContentPatcher.Framework or IManagedConditions or IManagedTokenString

Am I missing an additional step, such as importing a package for Content Patcher into my project for those to be recognized? (Although I'm not finding anything under "Content Patcher" with the VS NuGet Package manager)

lucid iron
autumn tide
lucid iron
#

Like what's the thing u hope to solve

brittle pasture
autumn tide
autumn tide
#

!startmodding og command for ref

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.

bold cairn
brittle pasture
#

the api file is listed under the ContentPatcher namespace

lucid iron
brittle pasture
#

you wanna reference its types you import the namespace with using, or write out the full type name including it

#

or you rename the namespace

autumn tide
#

I think it should include more resources, more info about which resources to use when, and more explanation of how modding works

bold cairn
# brittle pasture you wanna reference its types you import the namespace with `using`, or write ou...

Ah oh wait, within my own mod's ModEntry.cs for example? Yeah I have
using ContentPatcher;
in there, and the
var api = this.Helper.ModRegistry.GetApi<IContentPatcherAPI>("Pathoschild.ContentPatcher");
I have in there is being recognized fine.

It's within the IContentPatcherAPI.cs itself (which I just copied verbatim from the supplied file in the documentation) where I'm getting the errors about things not being found / not existing

#

Including one of it's own using statements:
using ContentPatcher.Framework.Tokens.ValueProviders.ModConvention;
having an error for "Framework" not existing in the namespace "ContentPatcher"

uncut viper
brittle pasture
autumn tide
#

gotcha! thanks for replying so fast SDVpufferheart

uncut viper
#

json is not strictly a modding related concept* i meant to type

calm nebula
#

Also remoce the fancy token parser api line

brittle pasture
#

also if you're only using the simple registertoken function you can remove all the other function signatures and avoid importing all the types they need

#

beaten by atra but i'll submit anyway

calm nebula
#

Just use the single register token that is the simple version

#

Dont worry I'm dumb and just got out of a meeting I shouldn't have been in

bold cairn
# brittle pasture hmm try just removing that line

Ah OK, I hadn't gotten further in the steps to determine which parts of IContentPatcherAPI.cs I wasn't using and would thus comment out, I guess I just assumed I must have done something wrong if I was getting errors already.

brittle pasture
#

99% of the time you only need the simple api

calm nebula
#

It's a little fussy b/c back in the day u had to directly reference CP to use part of the API but not the rest

#

And that isnt clearly communicated

#

It was on my list to see if that was still true after....crap

#

What was the bird's name again

#

Pelican? Pigeon?

#

Pintail

lucid iron
#

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

lucid iron
#

Unknown bread

calm nebula
#

Not a cat picture

lucid iron
#

Disappointmenting

uncut viper
#

its a thread in this channel so you can just click on it to know it

#

from the last time the json command was discussed

lucid iron
#

Yes i see bolbthinking

uncut viper
#

and was generally (by those at the time including myself) agreed it should not go in !json

calm nebula
#

Smh no threads

#

We hate threading except in rust

#

(Sorry. I'm punchy)

lucid iron
#

There is a good point about linking to validator being a separate command

#

I feel like ppl do gloss over the whole thing often and not understand that ppl want them to post json via this website

uncut viper
#

to be fair they should read

lucid iron
#

!jsonvalidator

Please share modding related JSON file via this website: https://smapi.io/json
autumn tide
#

maybe just !validator?

lucid mulch
#

Jsoncheck

lucid iron
#

I can live with a longer command if it means lesser screenspace take up

calm nebula
#

!fuckingsharecodeplz

autumn tide
#

hehe

lucid mulch
#

I just know I will typo validater

calm nebula
#

I'm retired chue

#

Please observe my stupidity

lucid iron
#

!jsonsite maybe

uncut viper
#

i feel it wouldnt make sense for typing the command itself to be just as long as typing "go to smapi.io/json"

autumn tide
#

yeahh but links are hard to get right

calm nebula
#

Also frankly I dont care how the code is shared

lucid mulch
#

Command has more authority

autumn tide
#

..for me

calm nebula
#

Gist, git, json validator

#

Skywriter

uncut viper
#

a command has less authority to me and more dismissiveness the less text the command actually has in it

lucid iron
#

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

brittle pasture
#

upload your code to smapi.io/json right now or suffer the sevenfold curse

lucid iron
#

Yeah log is long as hell and it is analog of !json in many ways

quasi crow
#

Does updating the compatability list require pull requests now or am i missing something?

brittle pasture
#

yea

lucid mulch
#

It would be nice to have a !logshort or something

The main log command does need all of those lines when used with support

autumn tide
#

(still drafting the command writing just takes me years)

royal stump
quasi crow
#

ah

calm nebula
#

Tbh most of the time in this channel u can just ☆logplz☆

uncut viper
#

(whatever the case, given that !json was important enough for a junimo made discussion thread in the first place, no one should be just changing it or any of the other 2 "main" modding commands without strong junimo approval, imo)

autumn tide
lucid iron
#

To have people help you with your modding issue better, please share your work in progress JSON. To do so:

  1. Open this page smapi.io/json
  2. Paste or upload your JSON file
  3. After uploading, copy the resulting URL and post it here to share.
#

This would be proposed new command

lucid mulch
#

For json the other option is a bot command /json <paste> and have the bot give us a json link

lucid iron
#

Like have gov upload json files posted here?

lucid mulch
#

Yeah

lucid iron
#

That'd be nice too yea, who do I bug for this scope creep

lucid mulch
#

Gov already detects raw pasted logs and makes log links though doing that specific behaviour for json would have a bunch of false positives

lucid iron
#

Can we limit that to just this channel

uncut viper
#

it would probably be fine if it only did it if they directly uploaded the .json, like it does for logs

#

like the file itself dragf and dropped into discord

lucid iron
#

Yeah that's the usecase here

uncut viper
#

i dont think i ever see anyone do that except when theyre supposed to upload to the validator anyway

west thunder
#

God, making portraits for the denim cats is draining.

#

But they look surprisingly good, so I'm happy with that.

inner harbor
#

color me intrigued

lucid iron
#

Do it for kot

#

Are u working on jean rn

west thunder
#

Mhm.

#

Head's 100% done.

#

Now I've got the base of the body made.

autumn tide
#

yayyyy!

west thunder
#

Yippe.

#

forgot the second e fuck

#

Progress is in the art channel, as per usual.

bold cairn
# bold cairn Ah OK, I hadn't gotten further in the steps to determine which parts of `IConten...

Actually after reading through the documentation I just had the thought before I get too far into this:
Will a custom token I add through the "simple" method (denoting the current config setting value) somehow automatically update its value each time the C# mod's config is changed (e.g. through GMCM), or will I still need to set up some sort of system to instruct it to update any time the config is changed/saved?

#making-mods-general message

calm nebula
#

Um

#

No-ish

lucid iron
#

You are registering a delegate that returns the value(s) of the token

calm nebula
#

The token value updates but you need to force updates on the patches

lucid iron
#

Content Patcher decides when it's going to call your delegate for data

calm nebula
#

Every third person had to go write reflection/emit code to force a CP context updates lol

uncut viper
#

what? You don't have to force a context update

autumn tide
#

arrite this is what I got so far- hopefully the formatting's correct and the info is all good:

Making mods can be broadly divided into two categories: content packs, and C# mods.

Content packs:

Content packs are formatted text files, and don't need any prior programming knowledge. They rely on frameworks, which are mods made with C# that enable other mod authors to create a variety of content.
The most common framework mod is Content Patcher (aka CP). It's used for editing/adding to most vanilla assets. It can add/edit NPCs, maps, items, sprites, shops, and much more. To get started, see the SDV wiki's guide on Content Patcher, the Content Patcher documentation on GitHub, and the SDV wiki's list of framework mods. Note that some framework mods are extensions of Content Patcher, and will still require Content Patcher to run.
For further resources on creating content packs, check the modding index of the SDV wiki. There's also a dedicated modding wiki with specific tutorials, though it should be noted that the modding wiki may not be as up-to-date as the regular SDV wiki's modding index.

C# mods:

C# mods (also dubbed SMAPI mods) use programming code to change fundamental game mechanics. See the SDV wiki's guide on getting started with C# modding.

Usually it’s easier to start with making content packs, since you don't need to learn C# programming.
-# To use this command, type !startmodding.

#

dammit the link thing didn't work

calm nebula
jaunty shuttle
calm nebula
#

Because there is not actually a way to force CP to re-evaluate if the user changes the GMCM on your c# side

autumn tide
#

ohh

#

ty mailia SDVpufferheart

#

(I am fucking clueless)

uncut viper
jaunty shuttle
#

Yw, I am fluent in little discord tricks

autumn tide
#

-# ..they are touching-

#

-# OHHH NVM

lucid iron
brittle pasture
#

I guess as a workaround you can manually invalidate every asset you know your CP component touches

lucid iron
#

I think what I done in the past is to set a mailflag instead of cp token

uncut viper
#

invalidating an asset doesn't update a token

autumn tide
#

-# yayyy

lucid iron
#

And then use entirely content based conditions to do my config things

jaunty shuttle
#

-# supervibecat

uncut viper
#

otherwise using {{Time}} in a non-timechanged rate patch would still update every time the asset got reset

brittle pasture
#

oh yeah you're right, nvm, i got my wires crossed

lucid iron
#

But that is also another benefit of doing all your own data edits in C# (if it's something relatively simple Dokkan )

#

I don't really know what your mod is doing full picture so I got no opinions on this

brittle pasture
#

but yeah there doesnt seem to be a clean way to have a config that's changeable live mid-save and accessible with a token that changes immediately

bold cairn
# lucid iron I think it's just up to you like do you care for immediate updates on all this

Yeah I'm considering that...

Basically my big goal at the moment is to convey to the player what this feature does (allow crackers to sometimes spawn when farming), and when it is enabled.

Since the player might disable / enable the config setting which controls that feature mid-day ingame, I was thinking I'd want the Farming Mastery description (which I want to edit to reflect the new feature) to always be accurate whenever they read it

autumn tide
lucid iron
#

Oh i thought you did that edit in C# already ConfusedAnime

bold cairn
brittle pasture
#

no that's not how it works

lucid iron
autumn tide
#

gotchaaa okay

#

I defer to you all LOL

brittle pasture
#

the token doesnt get changed until the next time CP decrees it so, and CP would just apply the old value

lucid iron
#

Again I'm not clear on what the new version hopes to fix

bold cairn
autumn tide
#

I just found the og one pretty unclear when I was new, but then again I'm autistic and it takes me a long while to learn things

brittle pasture
#

clearly we need a CP API function to immediately reload every patch and tokens, this surely wont have any unforeseen consequences whatsoever

lucid iron
#

Pls gib a 1 page summary and open a jira ticket by eod thx /j

calm nebula
autumn tide
#

gotchaa, I just personally need and benefit from highly specific step-by-step instructions with a lotta resources and careful, slow explanation, but ofc that's not for everyone (which I honestly forget from time-to-time like wdym people are neurotypical!? /hj)

fierce vault
#

I'm assuming that if I remove the view port clamp on the bus stop through a patch it'll make certain events/actions like riding the bus janky, but does anyone know for sure if that's the case?

autumn tide
#

hm, do you think there's any worth in it being a seprate command?

uncut viper
jaunty shuttle
lucid iron
#

If you can point out the bits you particular like over current version that is also a support for the change AquaThumbsup

ornate locust
#

????? pulls up tilesheet

#

why does the vanilla tilesheet not have wood marked for the wood bits I used?

autumn tide
#

LOL, I think I'll just see if other ppl find any worth in it and then maybe make a post in server-suggestions

#

gotcha! so I need to back up my claim LOL

granite bluff
#

hey i have a question : ) if i want to include some mapstrings but not as seperate strings file, just directly into the content.json, what action do i use? its not "include"?

autumn tide
#

just edit!

#

..i hope

granite bluff
#

aah thx : D

ornate locust
#

I didn't forget, I just used vanilla so I thought it'd just... work right LOL

#

the steps are marked wood fine...

autumn tide
#

-# please be right please be right please be right

granite bluff
#

xD

autumn tide
#

that's weird- ofc still no pressure to change or fix etc!

#

I would offer to send over my map strings but they're not working SDVpufferwaaah

urban patrol
bold cairn
lucid iron
urban patrol
#

Include just means "pls copy paste the following patches into content.json"

autumn tide
#

-# yayyy I wasn't wrong

#

-# for once

hexed sand
#

Hi! Does anyone know how I can make my custom NPC send an email? I want to use it to activate the 8-heart eventSDVpufferowo

autumn tide
#

do you mean a letter?

lucid iron
#

you can make the letterbg look like an email if you want

#

assuming you drew assets

autumn tide
#

I'm assuming using the phone for phone calls would require C#

lucid iron
#

u can add incoming phone calls

brittle pasture
#

it is subject to the hardcoded 1% incoming call chance + you'll compete with other phone calls

#

so not the most reliable method

#

from a thematic standpoint the farmer doesnt use a computer or anything aside from the farm computer

#

we living that #disconnect life

lucid iron
#

the farmer seen enough computers in their past life

ornate locust
#

alright I have added wood foot sounds to both the vanilla tiles I use on all my patches in both mods SDVpufferchickcry I'll put it up maybe tomorrow.

autumn tide
#

omg i'm sorry-

ornate locust
#

it would bug me if I noticed it myself anyway, the real villain is Concerned Ape for not making those vanilla wood tiles have wood steps shakes fist

patent lanceBOT
uncut viper
merry river
#

I was today years old when I learned that vanilla Stardew has a telephone

ornate locust
#

I never use it, but it does have one

ocean wave
#

... its not from a mod????????

brittle pasture
uncut viper
#

yes thats literally in the data model

brittle pasture
#

wait you ca

#

yeah literally noticed it the same tick lmao

uncut viper
#

ignore base chance and control it via your conditions instead and you can reliably get the phone to ring

ornate locust
#

Alright, I WOULD say a concern about phone calls is the number of people admitting they had no idea one was in the game, so they would just miss your NPC's 8h event altogether

uncut viper
#

you dont have to compete either if you just null out the rest of the phone calls when you wanna guarantee yours

merry river
#

I have seen people talk about phones and assumed it was about a mod

brave fable
#

well there is also a mobile phone mod, but that's neither here nor there

#

that's a lie actually, it's there. just not here

uncut viper
brave fable
#

if you'd like an equally niche event starter you could have a trigger on checking the calendar to make the farmer suddenly remember a date

#

specifically the calendar farmhouse furniture that doesn't tell you it's a functional calendar

brittle pasture
#

i was literally there last time this was brought up how did i forgot smh my head

patent lanceBOT
ornate locust
#

Or they can just use mail since they initially wanted "email" and may have just meant mail in the first place

fierce vault
#

Hi, to anyone else familiar with using the tilesheetinator, I’m having some trouble repairing the tilesheets from another mod (downhill project).

I set my unpacked folder, opened the tmx, and then pressed repair tilesheets, but all that happens is that it changes the broken file path to Tileset image, and none of the tiles appear.

I know I’m misunderstanding something. 😅 Help would be appreciated.

brave fable
#

did you set the vanilla maps folder?

#

ah you did mb

ornate locust
#

IIRC Downhill needed special attention when I was doing compatibility for it, they did the thing where the tilesheet name has a . on the beginning

fierce vault
#

oh noo

ornate locust
#

I had to go into the maps and remove the . first in a text editor

brave fable
#

yeah for my own mod i had to first rename the tileset in tiled before deleting the vanilla tilesheet images and then fixing the tilesheets with tilesheetinator

gentle rose
fierce vault
#

Oh hi!

gentle rose
#

did you manage to fix it?

brave fable
#

tilesheetinator update to ignore leading periods when comparing filenames SDVpufferpleading

fierce vault
#

I didn't want to bother you with this directly 😅

gentle rose
#

I don't see why not tbh

ornate locust
#

yeah the leading periods are throwing it

gentle rose
#

it's fine! I also just happened to be here right now haha

#

do the leading periods not break it for the game too?

ornate locust
#

No, that was some... thing a bunch of mods did for some reason, I forget why

fierce vault
#

So, is what I'm trying to do not going to work with other's mods in a simple way? I'm kind of confused-

uncut viper
#

leading period makes smapi ignore it

#

but tiled still sees it

#

so you can leave sheets in the folder but still use the ones in the content pipeline when the game runs

fierce vault
ornate locust
#

Vanilla tilesheets

gentle rose
ornate locust
#

yes, yes

brave fable
#

yep sorry, comparing tileset names to filenames

ornate locust
#

that is the problem

fierce vault
#

sigh

ornate locust
#

It's looking for .spring_town instead of spring_town because of an outdated map creation trick

gentle rose
#

what was the trick, by the way?

brave fable
#

you mean an advertised map creation feature SDVdemetriums

lucid iron
#

is it outdated if it still works

fierce vault
#

Ok, so my issue is specific to downhill then?? I'll test another map...

ornate locust
#

I mean, it may work, but also it causes problems with the thing that works better

lucid iron
#

that seems like irocendar's problem

uncut viper
#

thats not an outdated trick

brave fable
ornate locust
gentle rose
#

I think I'm going to end up having to just test downhill myself haha since I'm already working on the other thing

lucid iron
#

as in i do think tools should try their best to support vanilla workings Dokkan

#

while we at it iro can u strip the locale names too

brave fable
#

while we at it iro can i get a cappuccino no sugar

fierce vault
gentle rose
fierce vault
#

I'm going to test a not .tileset

merry river
#

water with extra crunch

gentle rose
ornate locust
gentle rose
#

sounds like a tilesheetinator update is in the works though, yeah

fierce vault
#

It worked on the vanilla assets for another modded map!

ornate locust
#

Did they have dots on the beginning of the filename? because that is the problem

uncut viper
#

(its also not like a filesystem type hack on SMAPI either it has specific code for looking for the leading period. it does the same thing with mod folders)

lucid iron
fierce vault
hexed sand
ornate locust
#

the dot thing has always annoyed me because I ended up with two copies of the tilesheets in my folders while working on compatibility stuff for maps that didn't use it and maps that did, but that is a me problem.

fierce vault
#

So, does tilesheetinator make it any easier repair modded tilesets?

gentle rose
#

my vote is yes but I'm a tiny bit biased

brave fable
#

depends on how they broke don't it

fierce vault
#

Do tell!

uncut viper
#

my vote is no but i like to specifically be a contrarian to iro for fun

#

bc i know iro will react with the doge kek whatever emote

fierce vault
uncut viper
#

(my real vote is ofc that tilesheetinator is invaluable in all aspects)

brave fable
#

you'd rather have the online map fixer tool if there's invalid tile gid errors, or move to nepal to live as a monk if you've got tsx gid errors, but it will make it easier to view mod maps in their own mods folder without moving files around

#

as well as overall making the map creation process way simpler and smoother by not having you add and remove copies of vanilla tilesheets whenever you edit or deploy the map

uncut viper
#

(honestly im like 85% the tile gid error is a bug in Tiled itself even since i feel like i recall at one point reading a changelog or something that said it shouldnt forget tile ids and whatnot and yet, here we are)

#

(so the true ideal for that is someone PRing in a fix)

lucid iron
#

i never ran into that but i made 2.5 maps

brave fable
#

i hope to meet this 'someone' sometime

gentle rose
#

I also need to explain the features properly but for now they'll be Hidden Features

fierce vault
#

So, should I use haru's for plugin for fixing a mod's custom tilesets by putting them in the same folder as the tmx then?

uncut viper
#

im surprised blueberry hasnt been that someone for the unpacker, since blueberry hates localization so much

brittle pasture
#

something that could be valuable is ensuring that some vanilla sheets keep the wacky "untitled tile sheet2" names
(thoughts spurred after watching someone here pull their hairs out fighting the game's island farm hardcode)

uncut viper
#

im not sure how you'd foolproofly track that

gentle rose
#

(for example, it fixes animation copy paste)

brave fable
gentle rose
#

I made a whole thing just to check that once haha

ornate locust
uncut viper
brave fable
#

thank you. that means a lot to me

brittle pasture
fierce vault
uncut viper
#

good point. i think something that would be valuable in iro's plugin would be something that prevents any errors from being made in the first place

#

get on this, please

lucid iron
#

iro just needs a research team and five years

uncut viper
#

i would also like the plugin to know where i want to place my TileData

ornate locust
fierce vault
#

o h?

gentle rose
ornate locust
#

yeah, Tilesheetinator's whole thing is so you don't have to put the map in the same location as the tilesheets

#

I don't know what there is to fix if it's in the same location

fierce vault
#

so, I use haru's for the other features then I guess??

ornate locust
#

Again, I have no idea about Haru's, I uninstalled it after hitting a button and it put all my tilesheets at absolute paths

stark ocean
#

hey y'all, i'm needing some help if anyone is knowledgeable on the subject. i've created a custom room in Tiled and I have a piece of paper on the floor that, when clicked on, i want to be pulled up as a note with a paper-like background. kind of like how the notes in the library show up. what should i put in the code for that to happen?

fierce vault
ornate locust
#

I don't know why you'd want tilesheets at absolute paths and I don't know what "Automatically repairs tilesheet paths when the image is located in the same folder as the map." even does

brittle pasture
#

👆 + JoshHouse has an example

#

the letter from alex's parents

gentle rose
fierce vault
#

No problem if you didn't want to get into that

stark ocean
stark ocean
fierce vault
#

I'm going to ask this last question at the risk of repeating earlier ones, because I didn't competely understand one of the answers. After repairing vanilla files, I'm left with blank tileset images instead of broken paths on my computer for the custom ones. The locate file option when on the blank tileset itself appears the same as before tilesheetinator. Am I missing anything that makes sifting through my folders to get to those custom tilesets any easier?

My folder always seems to bring me to the folder that I have some other open projects on tiled sitting in. Is having other projects open related to this?

ornate locust
#

Did you do "manage tilesheet mods" and set the locations of those tilesheets?

#

thisun

fierce vault
#

Oh, I did not. I'm guessing I do that once for all the mods custom tilesets I want to edit right?

quasi crow
#

hotfix, realize you missed something different, hotfix again, repeat twice.
bleh. 🤦‍♂️

ornate locust
#

Yeah, you only really need to set it once and when you work with new mods with tilesheets

fierce vault
#

Like if I was doing sve patches... I grab every png/tileset in all the folders so sve is never a problem again right? Thanks

ornate locust
#

You just need to set the locations. mine is pretty extensive

#

It'll grab any tilesheet in the folders you list

#

I've done a massive compatibility push though, so mine is huuge

fierce vault
#

Thanks, but I don't have that many I think I need. Downhill has been my only major encounter with something else trying to change the same location I am. I think there's one recent npc mod that's incompatible with DH which probably means issues for me as well, and there amy be a few smaller mods that mess with the location.

ornate locust
#

Yeah just pop in the folders you need and it'll work

fierce vault
#

Probably aesthetic mods haha

#

I'm still pretty lucky with compatibility I think...

#

DH is repaired SDVpufferparty

#

Thanks for the help everyone!

calm nebula
#

Oh no what broke @blissful panther

stark ocean
autumn tide
#

helloooooooo can i18ns have tokens like {{Random: a, b, c, d, e}}

royal stump
#

yes, though I think it's conventional to put them in your non-i18n files if translators don't need direct access to them, for simplicity on their end

autumn tide
#

YAY okay, thank you so much Esca!! tokens and i18ns still confuse tf outta me-

royal stump
#

like if the whole i18n value is inside one big random, you might be able to break it up into "your_i18n_line_1", "your_i18n_line_2", etc
(and use a random token in the spot where you use those)
depends on context though

autumn tide
#

i18n-ifying my token values rn :)

royal stump
#

...oh, right, I said "yes" because the link did, but it's technically a separate system (you swap tokens with values yourself)
I'm not sure if it actually supports tokens with args like random from outside SDVpufferthink

uncut viper
#

if you mean using something like {{Random}} inside the i18n itself, no, it doesnt

#

its not a content patcher token

#

once its inside the i18n its a SMAPI translation token, which is effectively just a string.Format() style substitution

royal stump
#

yeah, I wasn't sure if it had an implementation for stuff like that

autumn tide
#

oh shit

#

welp, time to put the random thing in the i18n's ...implementation?

uncut viper
#

inside the i18n, {{Random}} is just like the {0} you sometimes see in strings

#

only you are telling it what the 0 is

autumn tide
#

idk what to call it-

uncut viper
#

(which means it being called "random" would also be meaningless. you can call it anything)

autumn tide
#

soo.. it wouldn't work?

#

(it takes me a long time to learn things, sorry SDVpufferfush )

uncut viper
#

im not 100% sure what you're trying to do as i have no idea what either your i18n or your editdata's look like, im only explaining that content patcher tokens arent a thing inside an i18n file

autumn tide
#

okay

royal stump
#

the thing I mentioned with multiple i18n lines should still work, you'd use something like this to reference it
{{i18n: your_i18n_line_{{Random: 1, 2}}}}

uncut viper
#

and that you can only pass values into the i18n via the {{i18n}} token

royal stump
#

but yeah, using tokens with arguments like Random inside an i18n value wouldn't work

autumn tide
#

got it! is there any way to add tokens into i18n strings other than by referencing in the og line? chu tried explaining LocalizedText to me a few times but my brain is verrrry slow-

ornate locust
#

Localized text worked for me for stuff like gender swaps

uncut viper
#

you dont add tokens but you can tell the i18n what values to replace your {{ }} things with

autumn tide
#

oh!

#

I thought that was a token

uncut viper
#

you dont add content patcher tokens*

royal stump
#

i18n tokens just let you swap values, like if the i18n file says
"example_key": "hi my name is {{name}}"
you can use this to swap that with something else, like
{{i18n: example_key |name={{PlayerName}} }}
or
{{i18n: example_key |name=Bob }}

ornate locust
#

Yeah that's passing it through

uncut viper
#

within SMAPI itself these things inside i18n are also called tokens, yes, but they are not the same as content patcher tokens, not at all

autumn tide
#

I'm aware of those! I just have a monsterous amount of tokens I wanna use in dialog-

#

got it

uncut viper
#

those are the answer to the question you just asked

ornate locust
#

Localized strings are really good for stuff like that

uncut viper
#

they are also separate from localizedtext

autumn tide
#

..oh..?

royal stump
#

there're a few similar but separate text parsing methods, yeah SDVpufferdizzy
but for what you're doing, CP tokens work outside i18n and that swap-token stuff works with i18n

ornate locust
#

If you want localized text string examples, I got some in Pelican Town Municipal I can point you at? Stuff that lets me do [LocalizedText Strings/MV.Municipal:RasGenderHim] in an i18n string and it automatically goes Him or Her for Rasmodius or Rasmodia

autumn tide
#

okayyy I think I got you..

autumn tide
#

yes please I am a very slow learner-

ornate locust
#

I can try to walk you through it, I got time

autumn tide
#

my learning curve is a fucking cliff I gotta scale with no climbing gear-

#

AAA tysm SDVpufferheart

ornate locust
#

It took me a minute to get it too, I needed solid examples. But once I got there, it's been great

lucid egret
#

that reminds me I need to add Rasmodia compat SDVpufferthinkblob

autumn tide
#

lemme show an expample of what I'd like to do..

lucid egret
#

good luck with the learning-teaching process you two SDVpufferheart

autumn tide
#

for example one line: "i18n_Dialog.Krobus.Gift.Reject.DwarfScroll": "Oh, is that a Smoluanu scroll?$3#$b#I'm fascinated, but.. I think {{dwarfnameKrobus}} would enjoy this much more than I could.",

#

(ignore the huge key I am neurotic about formatting)

ornate locust
#

I assure you mine are longer LOL

lucid egret
#

What are you planning to put in {{dwarfnameKrobus}}?

autumn tide
#

YAYYYY

ornate locust
#

What changes DwarfNameKrobus?

autumn tide
#

uuuhhhhh, it's a dynamic token that depends on whether or not an event where dwarf tells krobus their true name has occured

ornate locust
#

Okay cool, I have one of those

#

So I'll go to that one

autumn tide
#

omg tysm-

ornate locust
#

If the event has happened, BillHusband says "Menawa". If it hasn't, he says "My husband"

#

To use that in an i18n, I do this:
[LocalizedText Strings/MV.Municipal:BillHusband]

autumn tide
#

oooh tysm! I don't quite get it yet but prolly after a few reads

#

ahh

ornate locust
#

Just slot that in where I want "Menawa" or "my husband"

uncut viper
#

be aware that you cannot do this in mail

ornate locust
#

That is important, doesn't work in mail

autumn tide
#

OHHHHH and that leads to the strings which leads to the i18n!!

ornate locust
#

Yes!

#

Exactly

autumn tide
#

omfg tysm-

ornate locust
#

And another trick, I can capitalize the first letter of the phrase like so:
[CapitalizeFirstLetter [LocalizedText Strings/MV.Municipal:BillDaughter]]

#

So I don't need a key with and without it capitalized

autumn tide
#

that's amazing! again tysm for this-

ornate locust
#

No problem, I had a hard time following the chain of what was going on too

#

But it's really nice not having to pass through stuff for tokens

autumn tide
#

it's always nice when it takes you forever to learn something and then you can explain it really well after (my entire existence LOL) SDVpufferheart

ornate locust
#

Content Patcher has Uppercase (ALL caps) or Lowercase (ALL lowercase), which didn't work for what I needed

#

Because my tokens are a name and then a generic way to refer to them, so the name always needs a leading capital

autumn tide
#

mhm!

ornate locust
#

so I found "CapitalizeFirstLetter" and angels sang LOL

autumn tide
#

heyyy awesome!

#

how's you discover this-

ornate locust
#

Getting elbow deep in the documentation once I got the basics figured out

autumn tide
#

oh, for SMAPI?

ornate locust
autumn tide
#

YAY

uncut viper
#

LocalizedText is a vanilla concept

#

(and CapitalizeFirstLetter. theyre b oth tokenizable strings)

autumn tide
#

perfect!

uncut viper
#

to be clear also, any tokenizable string is not usable in mail. not just LocalizedText

ornate locust
#

one day, mail will be free... until then, it's passthroughs or variants

autumn tide
#

..okay

#

OH, and stuff like questions/textabovehead?

uncut viper
#

all dialogue and events have tokenizable strings parsed

#

in the case of events, they wont remove the need for surrounding quotes, if applicable

autumn tide
#

perfecttt okay that's how I can fix that one problem- thanks so much guys SDVpufferheart

#

I feel like i just unlocked the secrets of the universe (learned a modding thing)

brave fable
#

oh, mail. please change 🙂‍↕️

autumn tide
hard fern
#

I've written like... Actual mail only once?

#

It's scary

autumn tide
#

..you mean irl or for modding-

uncut viper
#

turning mail into a data model would be nice

#

if maybe a tiny bit overkill

autumn tide
#

ahem 1.6.16

uncut viper
#

likely too significant a change for 1.6.16

calm nebula
#

Oh wait

uncut viper
#

the only data modelification in 1.6.16 is for Achievements, which are largely unimportant for modders, otherwise all the data modelings are in 1.7

#

(largely unimportant for the game too, likely, for achievements. not too much to rework there)

autumn tide
#

(imagine if my mod takes so long 1.7 is out by then)

hard fern
#

!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

hard fern
#

This is for you, spirit

autumn tide
#

I have zem as a friend I think I get summoning perms SDVkrobusgiggle

#

@ocean wave

ocean wave
#

AAAAAAAAAAAAA

autumn tide
#

i hath summoned you

ocean wave
autumn tide
#

apologies 🙂‍↕️

hard fern
#

Everything you want to change about maps you can do it with tiled. (Obviously impossible things excluded)

ocean wave
#

nah dw i needed that ping- i have no ping in my name cause people would ping eply WHILE i was in convo

ocean wave
hard fern
#

Well things you can't do in tiled

#

Like.. i dunno

autumn tide
#

keeping your sanity while making maps

#

creating a perpetual motion machine

ocean wave
#

i just wanna make the rooms even,, surely i dont fuck things up

autumn tide
#

time travel irl

hard fern
#

Eh tiled has a bit of a learning curve

autumn tide
#

you prolly will, but that's the modder's way

quasi crow
#

anyone want to check some math code for me?
pretty sure i got it right this time xP

hard fern
#

I don't think there's anyone who hasn't fucked something up spectacularly in tiled

#

Math code?

quasi crow
hard fern
#

You can just send it and hope someone here knows

quasi crow
#

true. well here it is


if (who.CombatLevel == 0)
    levelMultiplier = 0;

else if (Config.PerLevelDamageMultiplier > 1)
    levelMultiplier = 1 + (who.CombatLevel * (Config.PerLevelDamageMultiplier - 1));

else if (Config.PerLevelDamageMultiplier < 1)
    levelMultiplier = 1 - (who.CombatLevel * (1 - Config.PerLevelDamageMultiplier));

float multiplier = levelMultiplier * Config.SingleDamageMultiplier;
int flat = who.CombatLevel * Config.PerLevelDamageBonus + Config.SingleDamageBonus;

minDamage = Math.Max(0, (int)(minDamage * multiplier + flat));
maxDamage = Math.Max(minDamage, (int)(maxDamage * multiplier + flat));```
hard fern
#

Ah. Hmm

#

Where are the C# people

autumn tide
hard fern
autumn tide
#

I fucked up my map so bad trying to enter it softlocked my game and my log was like 10mb of repeating red errors SDVpufferthumbsup

hard fern
calm nebula
autumn tide
#

you can lure the C# ppl by setting out some photos of cats /hj

quasi crow
#

well im pretty sure I got it right this time.
...and if not hopefully someone will randomly @ me later and i can fix it then lol

autumn tide
#

arrite time for me to change half my dynamic tokens to dynamic strings-

royal stump
#

(i stepped out to order groceries, but now a store's showing me token problems SDVpuffermlem)

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.

royal stump
#

@\pathos help, it won't let me upload html