#making-mods-general

1 messages · Page 121 of 1

solemn furnace
#

I actually already have it set up as EditImage but thank you!

brittle pasture
#

item queries don't support color for shirts currently.
I'll see whether this is annoying to add

latent mauve
#

Okay! No rush on that, was mostly just curious.

uncut viper
#

Load doesnt support To or FromArea in the first place

latent mauve
#

True, I forgot about that.

uncut viper
#

also Digitalmarker, are you actually changing everything on the tilesheet? like literally every sprite?

solemn furnace
#

I do have one more question, I am just making a personal mod so I don't plan on uploading but my manifest.json file throws up errors on the json validator website so I'm wondering if that will affect the mod

brittle pasture
uncut viper
#

oh if its a personal mod feel free to ignore my question lol

solemn furnace
#

No, I just merged the original tilesheet with the new one so I wouldn't have to code for each item

uncut viper
#

your manifest wont be a valid content patcher json which might be what you're seeing but you'll know if its actually broken if your mod just straight up doesnt load

#

you can change the dropdown thingy to "None" on the validator if it isnt already

brittle pasture
final folio
#

Hi does anyone know what is wrong with this?
````"@...$8 #$b#Como alcalde de Pueblo Pelícano, y portador regional del sello matrimonial, ¡nos declaro marido y... bueno, marido!$6",```

brittle pasture
#

lest you get bug reports from ppl wondering why their item reskins aren't working

uncut viper
solemn furnace
#

haha yeah Its just to make a mod compatible with my mac since the original file code depends on a mod that I cant use

final folio
uncut viper
#

SDVpufferthinkblob whats the other mod?

solemn furnace
#

Lux's Sprite mods, it replaces some crops and cooked food

uncut viper
solemn furnace
latent mauve
#

which requirement can't you use there?

final folio
solemn furnace
#

scaleup isnt working so alot of the sprites are invisible and labled incorrectly

hard fern
#

i thought it was working?

uncut viper
#

huh. apparently a lot of mac users are indeed having trouble with it, judging by the comments. strange

hard fern
#

🤔 i am on windows

#

is mac doing weird things again?

solemn furnace
#

yeah I'm on mac and it does not work at all lol

uncut viper
brittle ledge
#

the latest OS update for mac apparently effed with more than one thing regarding modding

uncut viper
#

also wait, but if those sprites need Scale Up 2 and it doesnt work for you, how are you planning on getting them to look right for you? or are you only including the ones that dont need scaling up?

#

are there any in that mod that arent higher res?

final folio
hard fern
#

the sizes are 32px and 24px, right?

latent mauve
#

[Content Patcher] Data patch "ScaleUpExample > EditData Data/Crops" reported warnings when applying runtime migration 2.0.0. (For the mod author: see https://smapi.io/cp-migrate to avoid runtime migrations.)this seems to be present in the one log I saw for a ScaleUp issue on Mac.

uncut viper
# final folio here StringsFromCSFiles.es-ES

i dont have that line in that file. i looked at just 5379 too, but its not the same dialogue, so im not sure what kind of dialogue line its supposed to be or where your game is getting it from. but, it shouldnt be possible for dialogue to jump from one to the next in the way you're describing, are you sure its not a conversation topic or something thats just overriding yours?

solemn furnace
#

honestly I probably didnt do it right, i uploaded the mod png and springobjectpng to gimp and sized the mod image to the original file then cut out the duplicate sprites

uncut viper
#

well if you scaled it down to match the games original size then itll work, so long as you're fine with the lost detail on the sprites

final folio
solemn furnace
#

oh yeah thats okay, I just want it to work mostly until scale up is fixed and I also wanted to learn a bit about modding in case I actually wanted to make one in the future

brittle ledge
#

iirc Lux's food mod has been pretty buggy from the start due to the scaling issues, so it's probably not just you skaiHug

#

if you can't get it to work you might vibe with the food in Vanilla Tweaks?

uncut viper
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.

uncut viper
#

(scale up 2 also hasnt been updated since december last year and last i checked the mod author is not active (or at least not updating mods atm) so, dont get your hopes up)

solemn furnace
#

a tragedy

uncut viper
#

please use the website from the governor command

solemn furnace
#

mac says StardewModdingAPI is malware and immediately trashes it...

uncut viper
#

i.... dont know what this is

uncut viper
#

is this a mobile thing?

final folio
uncut viper
#

no i know but i mean like, the format of any of this is not anything im familiar with

final folio
tribal gull
#

I back

#

Whats the issue?

uncut viper
#

what are you using to make this mod?

final folio
uncut viper
#

this is not at all usual. if you're making an xnb mod, you should use Content Patcher instead

brittle ledge
uncut viper
#

i dont think anyone in here will be able to help with this format

brittle pasture
#

!cp

ocean sailBOT
hard fern
#

i think CP will be much easier

brittle pasture
#

we haven't done xnb loader style since uh 2018

final folio
uncut viper
#

ah... okay, that is a problem indeed

final folio
#

Why?

uncut viper
#

didnt you say it was PC, though?

hard fern
#

switch modding in general is a problem

uncut viper
#

because switch modding is only possible with xnb mods, and switch modding is- yeah

#

its not easy and theres very very little documentation on it and i only know of like one person who even does it

tribal gull
#

Modding a switch is a very fragile process

final folio
#

yep

tribal gull
#

Namely you can't even mod a switch that wasn't made in its first year(s) due to recent patching

#

You also run the risk of bricking the switch if you take it online at all

final folio
#

Iknow i make mods for hatsune miku mega mix

#

is the same

#

Replace files with new lines

uncut viper
#

modding the switch works differently enough and is a strange and unknown-to-most enough process that i dont think you'll really be able to find much help here, unfortunately. beyond that, i dont know why the dialogue would work that way,and ive no idea if its because of the way switch modding works or something weird about the xnb format or what because it is, of course, unknown to me, sorry

tribal gull
#

I used to but I lost my jig ;-;

final folio
final folio
woeful lintel
#

you should be able to put anything (BC included) in a catalogue since it's a shop entry, if that was your concern

latent mauve
#

Good to know. My concern was that I think HxW Bathroom Furniture already adds the sprites as furniture-type items, so I had intended to tweak them accordingly if that mod was present rather than creating a duplicate object with the same sprite.

woeful lintel
#

possible with FF, I never tested it, but a machine output on a FF furniture with a slot should work properly

solemn furnace
#

IT WORKED

#

the quality is definitely butt, but it worked!

uncut viper
#

could be worse!

solemn furnace
#

so very true

faint ingot
#

I made some changes to a location in my mod which required me to go back and update the first event I ever wrote. And I couldn't help but wonder who wrote this garbage.

solemn furnace
#

Thanks everyone for helping me out!

grizzled rain
#

is it possible to spawn monsters using spacecore or do i need farm type manager to do that?

rancid temple
proven narwhal
#

🫡 may have taken me 5 years but i finally figured out how to edit maps

hallow prism
#

nice 🙂

hard fern
#

?what is this for

#

🤔

#

is this like, custom items/recipes/machines?

#

because you can do it all with content patcher

#

oh

#

hmm

finite ginkgo
#

Custom mechanics how exactly

#

I just wanted to check if you really needed custom C# for it or if there were frameworks for what you wanted, hm, can you chuck the JSON file in the JSON parser it's easier for us to check for errors with JSON formatting

#

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

finite ginkgo
#

The error you described sounds more like a formatting error, but anyways, what does the code look like for loading the data?

royal stump
#

this trimmed version loads correctly on my end, so I'm guessing there's an issue somewhere else, despite whatever the error looks like

final arch
#

!software use VSCode

ocean sailBOT
rancid temple
#

Pretty sure they're making a C# mod

blissful saddle
#

that's why the suggestion to use VSCode I think

#

the command gives both lists

calm nebula
#

Even with c# mods I used to edit the jsons with vsc if there were more than a handfuls

final arch
#

... sry it just looked like a json 😅

#

wait it is a json :p

woeful lintel
#

!embedcode btw

ocean sailBOT
#

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

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

lucid iron
#

Then you can let content patcher do the data loading on your behalf, and let other people make mods using your mod

#

Hm what do u mean?

#

Oh I see, there is a simple way to do it actually

#

If you look at how artisan goods names work u can see they are like "{0} Jelly"

#

I18n has a feature to make localized lists

#

Nvm it was extension in pathos's mod repo

#

I think these r problems you need to deal with regardless of whether it is a framework mod

#

Fun times DokkanStare

#

I thought gift tastes already had context tag though

#

Or was it only category

#

Yeah I was thinking if you could have the item inherit context tag then it might get the gift tastes directly, but it looks like gift taste doesn't support that yet

#

Or it does and it's more info left on migration page blobcatgooglyblep

#

Cake jelly ukimasu

woeful lintel
#

classic dev experience

drowsy pewter
#

Sounds interesting

#

I think

long jungle
#

Stardew Valley Expanded's Balanced Crafting Configuration overwrites the Iridium Band Recipe fom Ring Overhaul.

I am not the mod author of Ring Overhaul but I am curious if there is a way to keep SVE's Balanced Crafting Recipes except for the Iridium Band, which should have Ring Overhaul's recipe.

Is it possible to do?

#

I tried to add SVE dependencies on the manifest.json of Ring Overhaul but it didn't work.

#

I'd like to know the possible solutions for this problem in case I make a mod that also changes item recipes.

hallow prism
#

yes if you're not afraid of manual edits

faint ingot
#

I have a question about using "RandomizedElements" in Special Orders. I am using an example from EastScarp mod as a guide and it has: "RandomizedElements": [ { "Name": "FishType", "Values": [ { "RequiredTags": "season_spring", "Value": "PICK_ITEM Sunfish, Sardine, Flounder, Largemouth Bass, Halibut" }, { "RequiredTags": "season_summer", "Value": "PICK_ITEM Rainbow Trout, Dorado, Tilapia, Tuna, Red Mullet" }, { "RequiredTags": "season_fall", "Value": "PICK_ITEM Tiger Trout, Albacore, Salmon" }, { "RequiredTags": "season_winter", "Value": "PICK_ITEM Squid, Perch, Lingcod" } ] } ],

#

my question is about "FishType": can I use anything there and it is just like a "handle" to reference the picked item?

#

The wiki said something about it being in "SpecialOrderStrings" but I couldn't find anything in the ES code that added it there so I'm a little confused.

hallow prism
#

for the name? yes, i believe they act as token of sort

#

as long as then later you reference them into the brackets

#

vmv also has some including using various custom stuff in the same order

#

(usually the game needs to know the value in text/objective)

lucid iron
hallow prism
#

the sugar? it's vanilla but not used

#

desty told me about how you can add direct items rewards to Special Orders

#

yeah that's really cool rather than dealing with mails+forgetting mails or whatever

#

it also is great for repeated rewards (the items)+unique reward (the mail) AND it's cool for the player to see what is one of the reward before choosing

calm nebula
#

Oh that's cute

drowsy pewter
#

oh good to know

faint ingot
#

I know this is a long shot but would it be possible to limit the friendship reduction from hitting NPCs with a slingshot to once per day?

blissful saddle
#

it would

#

check for Friendship Tweaks how it changes friendship gains/bonus, makes a flag to each npc to detect if they had being hit with a slingshot that day that resets at DayStarted and makes it so the mod restore the friendship lost with a postfix harmony patch

#

the harder thing would be make it compatible with every mod that changes friendship rates

#

and of course, it is all C# doable

faint ingot
#

Good to know it's possible... probably beyond my skill level right now as the only thing I'm doing in c# so far is clearing some debris for my NPC home. Maybe I'll open a commission for it.

uncut viper
#

or just add 30 friendship points back with their hit from slingshot dialogue after the first time

#

that can be done in just CP

calm nebula
#

(What if they had 0 to start with?)

blissful saddle
#

damn... the difference between new and veteran modders are startling

uncut viper
#

theres an If GSQ

faint ingot
#

CP can react to a slingshot event?

blissful saddle
#

you can add things to other things that react to a slingshot event

#

in this case, the slingshot dialogue

uncut viper
#

in this case it is NPC.cs.4392 and NPC.cs.4294 in StringsFromCSFiles that you'd wanna edit

#

also sorry its not an If GSQ its an If action

#

If <query> ## <action if true> ## <action if false>

#

so you'd combine that with the $action dialogue command or w/e it is

blissful saddle
#

funny I understand what it means and I have no idea how I would implement it at the same time

uncut viper
#

admittedly it might actually be kinda weird to check for friendship already being 0

#

because they will lose the points before the dialogue happens, so if it takes them down to 0, im not sure off the top of my head how to properly set up these ifs and actions to account for that, if you even really can

#

while being able to differentiate from just naturally being at 0 points

blissful saddle
#

I know how I would do it with C# though. and maybe how it would be compatible with Friendship Tweaks at least

uncut viper
#

you might also just say "its unlikely that someone would fire a slingshot at someone before they have 30 points with someone, or if thedy do idc if they get a free 30 friendship points bc its an almost meaningless amount"

#

and thus not care

tiny zealot
uncut viper
#

exactly, ichor gets it

#

its less than 1/8th of a heart, so its really not much

faint ingot
#

These, I guess? "NPC.cs.4293": "Ow! I can't believe you would do that to me!$s", "NPC.cs.4294": "That hurt! What's your problem?$s" I'm not familiar with the query/action thing you describe didn't know that was possible in dialogue

blissful saddle
faint ingot
#

I would be able to differentiate between the first hit of the day and the rest?

uncut viper
#

actually theres no way to know what npc it is, is there

#

hm

ivory plume
#

(Note that those keys are overridden by HitBySlingshot in the NPC's dialogue asset if they have that key.)

uncut viper
#

(serves me right for stopping after checking the first two NPC dialogue files and not finding it and then digging for it in stringsfromcsfiles SDVpuffersquee)

#

you could theoretically give each NPC that doesnt already have that line a line for it so you'd know what NPC it is, but that wouldnt account for modded ones

blissful saddle
#

not something I care so much since I don't feel the urge to hit npcs with slingshots now and then

ivory plume
#

(You can also search Modding:Dialogue on the wiki, which covers the main important dialogues.)

blissful saddle
#

I hardly use slingshots in the dungeons

uncut viper
#

(and edit the ones who do ofc)

#

its not a perfect solution but without C# or another framework that does it for you i dont think it can be done perfectly in just CP

blissful saddle
#

C# wizardly seems easier to make for this instead of CP sorcery

uncut viper
#

not for someone who has absolutely no idea how to write C#, most likely

#

someone willing to learn could get it done though for sure, depends on if they wanna take the time to learn for this one mod though

blissful saddle
#

the harder part would be the compatibility issues and tests

faint ingot
icy viper
#

Hi, can I use i18n tokens from other mods? Do I have to add those by myself? Asking because of compatibility reasons.

uncut viper
#

you would just need a prefix on getHitByPlayer

blissful saddle
#

I like the devil mentality of giving people reward for doing evil things

coarse pasture
#

Hello, can anyone help me with a question?
I have a GenericTool and I want to add new methods to it.
I was using the Content Patcher to include the new tool, but I couldn't find a way that I could link my Content Patcher item with my c# tool class

blissful saddle
#

you need to make two mods, one Content Patcher and one C#.

What you can do is making the C# one to check if the CP one is loaded before doing anything, adding the CP one on the C# manifest as requirement, and add the CP folder on the C# project as added item to them be packed together

uncut viper
#

if all you're doing is adding the item with CP, you can just add it with C# itself

faint ingot
#

does advancing the date with world_setday / world_setseason help with expiring a conversation topic? or do I have to go to bed X times? I may or may not have set a conversation topic to last a whole year and now I have to test a condition for the topic not being active

uncut viper
#

you have to go to bed

faint ingot
#

not sure if I can find the remaining duration somewhere in the patch export

#

ah dang

uncut viper
#

in general changing the date doesnt really do much at all, nothing that would normally happen overnight gets affected

faint ingot
#

guess it's time to create a new asdf farmer lol

calm nebula
#

Can you not use debug action to remoce a CT

uncut viper
#

y ou can, i just assumed they wanted to test it naturally expiring, which in hindsight is not a good assumption

faint ingot
uncut viper
#

you use debug action

#

and use the RemoveConversationTopic trigger action action

#

debug action RemoveConversationTopic topicId

faint ingot
#

thank you

long jungle
#

Will it be difficult to update a mod for SMAPI 4.1.7?

Advanced Melee Framework's last update was way back June and the person who picked it up from aedenthorn seem like they aren't planning to update it soon.

uncut viper
#

whats wrong with the one from june?

tardy adder
#

Hm how to coax this NPC to take the NPCWarp to get to town SDVpufferglare

long jungle
long jungle
uncut viper
#

if it worked before 1.6.9 but broke after it then its easier than itd usually be, depending on what exactly broke

long jungle
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 52 C# mods and 37 content packs.

tardy adder
uncut viper
#

seems like its just trying to patch a method that eithr doesnt exist anymore or got renamed, i think

long jungle
uncut viper
#

that said the unofficial update doesnt seem to provide the source code (which im pretty sure is not allowed with the GNU license... ? unless aedenthorn said in here at some point that they dont care) so... good luck

uncut viper
#

oh, its just not on the nexuspage

#

it should probably be on the nexus page... but regardless, that means it should be easy to fix if that is indeed the only issue

brittle pasture
#

yeah 1.6.9 renamed those two protected functions (_OnDealDamage and _OnMonsterSlay) since it made them public

uncut viper
#

seems like _OnDealDamage and _OnMonsterSlay mightve been renamed to - yeah

#

just OnDealtDamage and OnMonsterSlay

#

note the Dealt versus Deal there

patent atlas
#

I wish we could use nameof for non-public stuff 😔

#

or something equivalent

#

would make reflection considerably neater

silver valley
#

Hey guys can I get a bit of help I wanted to mod my game but my SMAPI wont work

uncut viper
#

!mh

silver valley
#

tas_tt_weep idk what to do

ocean sailBOT
#

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

silver valley
#

thanks

calm nebula
#

(Publicizer)

patent atlas
#

yeah

calm nebula
#

(It's great when you can get it working)

patent atlas
#

i haven't had much luck with it

long jungle
patent atlas
#

so i usually avoid it

uncut viper
calm nebula
#

I got it working on monogame no issues but the corelib eluded me

uncut viper
#

aside from the publicizer issue i had due to my own dumb issue from way back in fucking april, i am so happy with using a publicizer now lol. probably gonna refactor CMCT with it soon (+ some other general refactoring, not JUST to use a publicizer)

calm nebula
#

No one sane writes a pile of IL if they can avoid it

patent atlas
#

Honestly I love any excuse to write IL unless it is something unbearingly stupid

#

stupidly complex*

uncut viper
#

i prefer writing transpilers over pre/postfixes but also when do you really need to write IL just to reflect somewhere

patent atlas
#

which speaking about IL

#

stupidly complex = anything more complex than a if else

uncut viper
#

yeah i dont like IL branching

#

especially if im trying to mingle with an already existing branch

tardy adder
long jungle
lucid iron
#

I write the IL branch then on second pass I decide it's dum and replace with a call to a method

patent atlas
#

yup

#

every time

#

it boils down to "Hmm maybe I don't need to write this in actual IL i can just call an external method!!"

lucid iron
#

I usually leave arithmetic in IL tho

#

Especially if it means I can just make 1 static method to get value instead of 3~5

uncut viper
#

supposedly the CodeInstructionExtensions can help with that sort of stuff, buuut... why bother

patent atlas
#

eh, it's very basic stuff i think

#

like, mostly verifications (Branches, Calls, etc)

#

or getting a copy with a different label or something

uncut viper
#

it can extract and move labels around, which can be helpful to reduce some repeated backward and forwards matching

#

not helpful enough to make me wanna do it if i can avoid it anyway though

patent atlas
#

oh, didnt use that i think

calm nebula
#

Look I'm 0.5us faster per Random ctor than vanilla

patent atlas
#

back in rimworld modding i made a lil library to use funcional programming like, "ForwardUntil", "BackwardsUntil" with comparison for sequences and shih but they were pretty badly written

calm nebula
#

For the 2k Randoms ctor before a save fully loads this is 1ms!

#

(No one cares)

patent atlas
#

i care on a philosophical and spiritual level

#

just not enough in the physical level to bother with it...

uncut viper
patent atlas
#

holy shit codematcher is a thing

calm nebula
#

I have a complex and beautiful ILHelper that does not work with the current version of the game yes

uncut viper
#

CodeMatcher is a thing yes! with documentation on par with the rest of Harmony

patent atlas
#

i feel stupid

uncut viper
#

wow wait they actually added actual documentation for it last month

lucid iron
#

Isn't that just the api docs

uncut viper
#

no

#

like an actual real article explaining it

long jungle
uncut viper
#

like its still not the best id say, but its better than nothing

patent atlas
#

i swear this wanst here before

patent atlas
lucid iron
#

Oh cool

#

Yeah it wasn't there in the guides side

uncut viper
#

it was not there before, i checked the harmony repo

#

it was committed oct 27th

lucid iron
#

I had to look up the api page instead

calm nebula
#

Yup

long jungle
hallow aurora
#

Does anyone have any guide into making an "Event" mod?

Like heart events or rival events. I've always wanted to try it.

🙏💕 tysm

lucid iron
#

Check BaseEnchantment?

uncut viper
# long jungle

you need to match the arguments of the actual method ,which have also evidently changed

calm nebula
#

I've been doing some transpilers without my ilhelper lately

#

And like.

#

CodeMatcher is weird tbh

uncut viper
#

(Monster monster, GameLocation location, Farmer who, bool fromBomb, int amount)

#

(dont know the significance of the ref int in the original mod there, dont know what it was like pre-1.6.9)

#

CodeMatcher is weird sometimes but its better than writing my own ILHelper if i dont alreeady have one SDVpuffersquee it does what i need it to

long jungle
uncut viper
#

also Myrkyr i should say thats the signature for OnDealtDamage

#

!decompile

ocean sailBOT
long jungle
uncut viper
#

yes

patent atlas
#

yup!

brittle pasture
#

I mean, you don't?

uncut viper
#

dont know why i wouldnt

#

i would never try to mod blindly

calm nebula
#

I mean. I dont

#

I just let my mods die

patent atlas
#

usually the error message will tell you exactly what you need to look at

long jungle
brittle pasture
#

it's like riding a bike blind. you probably won't fall over but you're going to run into a wall

long jungle
#

😆

patent atlas
#

i'd fall over

uncut viper
#

i mean if people didnt look at the game code then there'd be literally no way to update a mod like that

patent atlas
#

with my eyes open too probably

uncut viper
#

the function could have been renamed to anything

long jungle
#

So basically, you know the game code changed because the mod broke. And so, you decompile the newest game version to find what changed

ocean sailBOT
#

@long jungle You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

uncut viper
#

yes

#

the error message in the smapi log indicates that the method being patched was null, ergo didnt exist

long jungle
#

I only decompiled once and it was to see the names/ID of the newest monsters added

uncut viper
#

if you ever want to do more C# modding you will have ilspy at the ready and/or a decompiled version of the game saved for you to browse (saved from ilspy)

lucid iron
#

VS has some built in decompile right

#

You could open source for method and it'd be the whole class

uncut viper
#

if you can get it working, but you cant Ctrl F through that can you

patent atlas
#

i like using rider's decompiler while I'm coding, but I think IlSpy has some better tools for exploring the source code

lucid iron
#

Well the way vsc c# plugin decompile works is just

patent atlas
#

ctrl click

#

bam

#

decompiled

lucid iron
#

It does the decompile and make a temp file

#

So you can ctrl f if u want, since it's just file

uncut viper
#

that wont help if you dont know what you need to decompile in the first place, though

patent atlas
#

yup

uncut viper
#

like if i wanna search for a string somewhere in the entire decompile, i cant do that in ILSpy or VS/Rider

lucid iron
#

Yeah it's result of context menu open source

patent atlas
#

ilspy is better for exploration

lucid iron
#

I only use it for quick things

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.

uncut viper
#

i use ILSpy 99% of the time and my saved decompile for that other 1% where i am searching for just a string or an int or some other line i know will only be IN a method and not part of the signature

calm nebula
#

I sometimes also decompile smapi

#

And the other day I had to look up something in harmony source so I just decompiled it

uncut viper
#

i just added SMAPI to my ilspy bc ive yet to need to search it

lucid iron
#

It's open sauce though blobcatgooglyblep

patent atlas
#

stardew modding is well documented enough that I never felt like i needed to open the source code

uncut viper
#

it is, but its easier to just look in ilspy if im already there

calm nebula
#

Tbh I mostly do that to have ilsearch

uncut viper
#

dont underestimate my laziness chu

#

ive literally added my OWN mods to ilspy

#

so that i could see them quicker than opening up Rider

calm nebula
patent atlas
#

at some point

calm nebula
#

I needed specifics

patent atlas
#

somewhere around there

uncut viper
#

oh, i know that one! one anyway

#

DayEnding is right at the start of newdayafterfade SDVpuffersmile

calm nebula
uncut viper
calm nebula
brittle pasture
#

we need a new DayEndingAfterFade event SDVpufferconstruction

calm nebula
#

(That's DayStarted)

lucid iron
#

Need more stages to day starting

brittle pasture
#

but then does it fire before or after the various day started events

uncut viper
#

before, though theres not many of them

#

both DayEnding and DayStarted are at the very top of their respective functions

#

which really doesnt make sense, it should be DayStart_ing_ then

calm nebula
#

Is Game1.random an instance static....

uncut viper
#

(this is why i added a MorningStarted trigger which comes after DayStarted lmao)

next plaza
calm nebula
#

Does anyone else try to rewind the random like Focus does

calm nebula
uncut viper
#

a necessary breaking change, if you ask me

long jungle
uncut viper
#

you can see in the repo you're fixing that its trying to patch the BaseEnchantment class, so search for that in ILSpy

#

or in your VSC or whatever

brittle ledge
#

Hey folks, can I request some advice on mailflags? (CP mod). Mine aren't working and I'm not quite sure if I've borked them up or if I'm just not doing something correct with them.

uncut viper
#

i give you permission to request some advice

lucid iron
#

Send your questions via in game mail

uncut viper
#

please allow some business days before expecting a response, too

brittle pasture
uncut viper
#

given that its thanksgiving week, that means you can expect help by next monday

brittle ledge
#

I have an event with a quickQuestion that uses addMailReceived to set different flags based on the choice, which then sets a dynamic token that uses HasFlag to pick the right value.

final arch
#

thanksgiving is american only and most of us arent american 😉

lucid iron
#

It's ok we have canadian on calls I'm sure

uncut viper
calm nebula
brittle ledge
#

The mailflags are not setting according to my patch summary and the token is on its default value. I thought it might be because I have to sleep a day (I actually CJB skipped a few days and then slept) but it's still not showing in the patch summary.

uncut viper
#

do you have a json

calm nebula
#

Hmmmm

uncut viper
#

or wait is this a C# thing

calm nebula
#

You have slept

brittle ledge
#

Yes, I've slept.

#

Nope, this is CP.

lucid iron
#

Did you make sure the addMailReceived part fired

uncut viper
#

(i couldnt remember if patch summary showed other things added via CP too or not)

#

(er, C#)

brittle ledge
calm nebula
#

Show event pls

brittle ledge
velvet narwhal
uncut viper
#

no word wrap on the validator my beloathed

velvet narwhal
#

i think it's that last (break)

brittle ledge
#

how so?

velvet narwhal
#

it's counting to 4 and it should continue normally without the (break) but because of that, it thinks there's 5 options instead of 4

uncut viper
#

your dynamic tokens are not looking for the right flags

snow heron
#

does content patcher support seasonal changes? I want to add furniture to my game that changes based on the season and i dont know where to look 😦

uncut viper
#

ElliottWriterRomance instead of WriterElliottRomance

velvet narwhal
#

that would do it too KEK

uncut viper
#

(or maybe the event isnt setting the right flags)

brittle ledge
velvet narwhal
#

"i slept" are you sure about that

brittle ledge
#

No, this is just how I am

#

You missed the story about how I failed loading the mod seven times because the content.json kept having bad i18n tokens

velvet narwhal
#

(it's okay, i've forgotten to add a # before my question null and it was breaking everything SDVpuffersmart )

brittle ledge
#

I do still need to sleep for the flag to apply and the token to update, correct

uncut viper
#

correct

brittle ledge
#

Sweet, I'm not a complete fool

uncut viper
#

the flag should technically apply right away i imagine but the token wont

#

but like if you had something else check that flag at runtime after the event itd catch it

brittle ledge
#

Yeah, I put in a spacer CT on the new event specifically to make sure it applies

#

(Can't do much about the vanilla events since I can't change their preconditions, so hopefully no one gets Elliott to 8 hearts and then triggers all his events

uncut viper
#

you could null em and replace em, if you didnt mind the lessened compatibility

brittle ledge
#

yeah, I think I'll say "don't trigger all the later events immediately after his two heart" SBVLmaoDog

#

SBVWahSob it worked, thank you button and everyone

#

semi-related: I remember someone saying something about @ not working in i18n, is that everywhere or just non-dialogue stuff like quickQuestion?

uncut viper
#

you could also i think maybe theoretically just skip the event and make sure it doesnt get marked as seen by prepending to the beginning of the event script maybe, if you dont mind the jarring fade to black and then fade back out that players would get SDVpuffersquee

#

CP i18n should not affect how dialogue works whatsoever, the game just sees it as a normal string by the time it reads it

#

i.e. theres no difference between you writing "{{i18n: KeyHereWithAtSign}}" vs "Hello, @ person!"

velvet narwhal
brittle ledge
#

Hm, does @ just not work in quickQuestion in general then?

velvet narwhal
#

i think because it's the same kind of box as message that command doesn't parse symbols like that? i don't remember specifically though

#

what about the uh

uncut viper
#

(speaking of which event IDs can just be any string now, right)

velvet narwhal
#

yeah

uncut viper
#

(someone may want to update the Event data wiki page then SDVpufferthink)

velvet narwhal
#

god how did we get around it, it had something to do with like |{{PlayerName}} = {{PlayerName}} or something right?

#

i said i slept well but that doesn't mean all the electricity is on

velvet narwhal
#

there you go tia

calm nebula
#

Adding the event ☕ /

uncut viper
#

the token in the i18n doesnt have to match, like you dont have to use PlayerName for both

calm nebula
#

Demetrius and you just share a coffee

uncut viper
#

no real reason not to though

#

if emojis would work then i dont see why not

velvet narwhal
#

yeah but you immediately got the jist from me using the pipe example KEK

uncut viper
#

yeah just lettin tia know that its not so rigid SDVpuffersquee

#

that said i dont know about case sensitivity though but i imagine not since the example in the CP docs use different cases between them

devout otter
#

Looking into Furniture, and the wiki says this: They have their data in Data/Furniture, their in-game sprites in TileSheets/furniture, translations in Strings/Furniture, and their code in StardewValley.Objects.Furniture.

#

But Data/Furniture already has a field for display name, so what's the purpose of Strings/Furniture?

rancid temple
#

Is that not the file that field references?

devout otter
#

Naw, that's the internal name field.

#

Aah, but if I already put i18n there, then I wouldn't need Strings/Furniture right?

rancid temple
#

Right, that's just telling you how vanilla furniture is set up

#

It doesn't actually describe how you have to set up your added furniture

devout otter
#

Alright, thanks!

lucid iron
#

You can use LocalizedText instead of i18n if you want

rancid temple
#

Sure, you can also make all your keys numbers, embrace insanity

uncut viper
#

you could put the localized text token in your i18n and then use your i18n token to load that

#

it's like 2fa, or something

#

2ft

lucid iron
#

Tbh it's not that different, it's either a json that's key-> value or a json that's a EditData on Strings/whatever

uncut viper
#

localozedtext would actually make it easier for people to edit it if they wanted to

rancid temple
#

Mostly just, how hard do you want to make translating your mod I guess. How much would you like to increase the likelihood of having to constantly check for straight re-uploads of your entire mod

devout otter
brittle ledge
devout otter
#

And then use "When": {"Language": "{{Language}}"}

uncut viper
#

I half do that for my books mod just to get the i18n into the C# component

#

if I'd done that nowadays I woulda just reflected into my own translation helper but oh well. baby button hours for that one even though I think that was just 1.6.9

devout otter
#

Sometimes I trawl mods comment sections and see questions I know the answers for, but I always worry of overstepping the authors if I answered. Do you guys like it if somebody else answered questions about your mods for you?

drowsy pewter
#

Yes but not when they're wrong (often they are lol)

latent mauve
#

If the answer is not just "the mod author needs to fix this" then I generally don't have an issue with it

uncut viper
#

speaking personally I'm not actually gonna be like bothered by it or anything but I would personally prefer to be the one to answer questions on my page

#

mostly because if someone else answers it and I don't chime in after, I might just look unresponsive

latent mauve
#

Stuff that I've already answered on the mod description page? Have at repeating those answers because I'm not gonna.

uncut viper
#

and if I do chime in after, then... there was no need for someone else to

#

(I've also had a couple random Nexus users answer things correctly for people before but were way too snippy and overly mean about it that I didn't like so I'd just rather people didn't in general instead of risking that)

drowsy pewter
#

That's also really annoying

devout otter
#

Oh yeah of course you shouldn't get snippy on someone else's place.

drowsy pewter
#

I'm already snippy enough in my mod comments I need nice people to balance it out 😭

uncut viper
#

the exceptions to this for me are of course if I ever say "I don't know" when someone asks my what's wrong with the error lol

devout otter
#

I think I tend to be snippy if I already have the answer in my mod's description.

uncut viper
#

I've blocked more correct but snippy people on Nexus than I've blocked any other kind of user

tardy adder
#

Today I discovered NPCWarps and custom maps o-o

#

I didn't know it's rather needed for NPCs to go to places outside of vanilla maps

calm nebula
#

You can use it to make warps the player does not get to use

#

The common usage is say, for npc warp rooms

#

Or jumping them over the backwoods

tardy adder
#

hm but the schedule wouldn't run until I added them in

#

with just Warps it was a no go for the exterior maps

rancid temple
#

If you're using a TouchAction Warp that's player only

tardy adder
#

MapProperty

rancid temple
#

Map property Warp should work for NPC's

tardy adder
#

Pathing wouldn't path with just the Warp MapProperty

rancid temple
#

Was there a warp back?

tardy adder
#

Added NPCWarp Map Property and boom magic

tardy adder
#

All was MapProperty Warp for warping between ze maps

latent mauve
#

If the default warp requires the NPC to move to blacklisted NPC areas (Backwoods, Farm, etc.) to path, then a NPC Warp workaround has to be made. Not sure if that was relevant here, but that's what I have learned.

rancid temple
#

Interesting, I didn't know that warp ignored blacklisting

calm nebula
#

No

#

It doesn't ignore blacklisting

latent mauve
#

That is not what I said

rancid temple
#

How do you get past it then?

calm nebula
#

You just npcwarp to jump the map

rancid temple
#

Oh, I see

calm nebula
#

Ie, player warps from my fun map to backwoods to mountain

latent mauve
#

^ that

calm nebula
#

Npc warps from my fun map to mountain directly

tardy adder
#

Le confusion, but at least it works...

latent mauve
#

Farmhouse NPC warps to Bus Stop or Mountain, etc.

calm nebula
#

I love the bird house

#

The vanilla bird house

#

So cute

tardy adder
#

Imma just do the NPC warps since Warps is making me confused as to why it no work in custom map for NPC...
Now if only Tiled loaded again in this potat pc

#

Hehehe finally the npcs are going to town :3

#

now I gotta adjust their schedule because they still take like 3 hours to get there T-T

#

Might just skip the railroad SDVpufferthinkblob

hallow prism
#

0 schedules are usually the best solution to long travels

calm nebula
#

Noted, lumi

#

Implementing zero schedules into my commute

#

I'll tell you how it goes on Friday

hallow prism
#

the a trick to ensure arriving right on time is also super handy!

#

(*any issue with using 0 and a schedules IRL must be brought to CA)

brittle ledge
#

I take it you're making an NPC, Kath? You've seen the resources on that, right?

snow heron
#

@woeful lintel i saw this on the author guide for your furniture framework. Ive been trying to find a framework mod to add in furniture (that i can understand) and yours seemed so easy to use, should I just wait until the pack gets updated? 😦

#

i dont mod at all and adding in furniture through CP is really confusing to me 😓

lucid iron
#

The vanilla furniture stuff is a string asset and there's a lot of silly limitations Dokkan

#

But still if all you want is a new chair or new table it'd be sufficient

brittle ledge
uncut viper
#

you dont even have to be a cheeto to edit the wiki, ive done it before

#

i just dont know enough of what im talking about with events to trust that id edit it right, so ive not touched the event page

#

i think the point of a community made wiki is to allow edits from the community SDVpuffersquee

faint ingot
#

tried to research editing NPC walk speed and most recent thread was from 8 years ago, is it still not really doable?

uncut viper
#

thread? where you were even looking

faint ingot
tardy adder
uncut viper
#

i dont think id recommend looking anywhere but the two wikis and this discord for stuff about that really
the Character class has a speed property but idk if its as simple as just changing that value for an NPC. probably comes with scheduling issues maybe? dunno

faint ingot
#

in my case it's not really about travel time, I'm just thinking of giving my sheriff an electric scooter and it would be nice if he moved a little faster with it : )

uncut viper
#

(it also might be that simple, i just genuinely dont know)

#

it might also mess with events

brittle pasture
#

I recall focustense having some pathing issues when speeding up NPCs for A Fishing Sea

uncut viper
#

i think focustense was speeding up NPCs recently?

#

yeah

#

looks like its not implemented with multiplayer support though, which makes sense, so if you care about that, it will likely be a lot of work

#

(multiplayer support for the speeding up specifically i mean)

brittle pasture
#

well speed is a netint so I think just setting it is fine

calm nebula
#

Yesish

uncut viper
#

i imagine if it was that simple that focus woulda done it

calm nebula
#

Focus was more precisely also speeding up the clock

#

Which would not work in mp

uncut viper
#

isnt the speeding up the clock also like, the only reason it doesnt fuck up their schedules

brittle pasture
#

the issue fishing sea ran into wasn't MP-related, it was pathing, which I don't know had anything to do with clock speed

uncut viper
#

(i only brought it up bc its documentation specifically said time scaling isnt implemented in MP due to it being impractical with the multiplayer code)

calm nebula
#

No, speeding them up was so the clock changes wouldn't duck up their schedules

#

You can speed them up

#

Gima did

brittle pasture
#

(not sure if relevant, Extra Animal Config also has custom farm animal speed, and so far I haven't heard any MP or pathing complaints)

uncut viper
#

so my brain was putting the cart before the horse then

brittle ledge
#

okay, event edit made, I have contributed SDVpufferthumbsup

tardy adder
brittle ledge
#

Since you're converting old NPCs, I do have a section on the tutorial about the 1.5->1.6 changes, if you find anything I'm missing let me know! SDVpufferheart

calm nebula
little steeple
#

Hello, I'm here to ask if you guys know for a solution for a problem I'm having with translation on items.

#

The problem I'm having is that item names or descriptions do not translate.

uncut viper
#

is it a problem with a mod you're making or someone elses mod

little steeple
#

Is my mod, and everything except items DisplayNames or Descriptions is translated correctly. (I'm using SMAPI Translation API)

calm nebula
#

Yes. And how are you using it

tardy adder
little steeple
#

like this : DisplayName = I18n.LuxuryCollarDisplayName(),
Description = I18n.LuxuryCollarDescription() //this is Pathoschild.ModTranslationClassBuilder addon but gives the same results as Helper.Translation.Get()

#

Is like the translation for the item name is always the default one

brittle pasture
#

did you test with new instances of the item

gaunt orbit
#

what I like to do when using c# is just get all the translation key/value pairs and dump them in a game asset so I can use tokenized text
no idea if that's smart or stupid, but it is convenient

calm nebula
#

In that if you do it directly you absolutely need to invalidate the relevant assets when the locale changes

#

Or use tokenized text

#

(CP will automatically handle invalidating)

#

Hi bluebs

brave fable
#

if i were you i'd load the items through CP json files as far as you can

calm nebula
#

Don't scare me today

little steeple
#

Everything works fine but the Display and Description cuz they always default to english.

gaunt orbit
#

you can also write out your items in json with c#, you just read your own local assets and glue them directly into the object data with an asset editor

uncut viper
#

as atra says, you need to invalidate the Data/Objects (presumably thats where these are) asset when the locale changes with the smapi LocaleChanged event

#

when the game launches it starts in english and then changes to what the user had selected last time they were playing

#

(or use tokenized text)

#

(well now my echo message just looks silly!)

latent mauve
#

Alright, finally got all my turkey day prep done for tomorrow, so time to reinstall SVE and CC Reimagined to verify compatibility for the Vault Room changes and EMA features!

gaunt orbit
#

ema?

latent mauve
#

I can still get this Useable Community Center update out before tomorrow xD

uncut viper
#

extra machine aconfig

tardy adder
#

I forgot turkey day SDVpufferlurk

uncut viper
#

(/j idk what the acronym is either)

latent mauve
# gaunt orbit ema?

I used EMA (Extra Map Actions) to use the LedgerBook and DivorceBook tiles in the community center.

little steeple
latent mauve
#

They're locked to the mayor's house otherwise.

gaunt orbit
#

oh is that a new feature for useable cc?

#

exciting!

latent mauve
#

It's going to be in this update, yep!

#

The desk is gonna have a book for sending money, and I'm gonna have a stand next to the vault (on the left side) for the divorcebook

#

Just need to verify that the placements don't mess with SVE or CC Reimagined first, so I maintain compatibility.

#

My multiplayer group's been the guinea pig for the vanilla CC version and it works great!

latent mauve
#

huh, good thing I checked. SVE apparently caused my patches to stop loading somehow for both features from the last update and this one.

#

They just had to break DyePots again. -_-

tardy adder
#

Imma bout to scope creep myself, time to edit some art and conditions >:3

calm nebula
#

Hey, shockah

#

Lok

proud wyvern
#

lines of kode?

calm nebula
#

Lol, lol

#

How have you been?

proud wyvern
#

ah, you know, could be worse - getting older, getting more and more medical issues

#

semi-joking

calm nebula
#

I'm so so sorry 🫂

#

I've got to fix my sleep cycle but have no clue how anymore lol

#

Like, I go to bed at midnight, and if I'm lucky I wake up at 6am and if I'm not I wake up between 2 and 3am

#

And I have no clue how long I can keep that up lol

proud wyvern
#

kinda same, except if i do wake up in the middle of the night, it's because i'm having a problem catching my breath due to my sinusal problems

#

this week it has been a 50:50

hallow prism
#

sleep apnea?

proud wyvern
#

i'm pretty much done with WoW stuff for this season, may come back to play some 1.6 soon

#

nah, it's not that

#

still not coming back to making mods though, i guess

hallow prism
#

the last person i saw saying something like that ended helping with porting aquarium, so i hope you like fishes /j

latent mauve
#

okay, got everything fixed, plus a snazzy message on the new feature locations if someone didn't download the new dependency (EMA) to tell them that they need EMA to use those features.

calm nebula
#

Hey

hallow prism
#

i'm just saying!!

proud wyvern
#

i gotta give VMV a go too

latent mauve
#

Does anyone know if there's any purpose to the phone SVE adds to the Vault Room in the Community Center?

#

Because my divorce book goes right there and I don't know if it's worth trying to find another free spot for it

#

eh, I'll ask in modded farmers, they might have a better idea

calm nebula
calm nebula
#

I'm really sorry but

snow heron
uncut viper
#

(people have open permission to just update any of your mods right)

calm nebula
#

Yes

uncut viper
#

i wonder how long it'd take to just go down your mod list and make updates for all of them

#

not you i mean just someone else

#

then you'd have even less to worry about (even though its already 0)

#

i know chu already snagged one of em

lucid iron
hallow prism
# calm nebula I'm really sorry but

i do joke because i found the timing funny BUT i don't want to put pressure on you, i'm just grateful you were at the right moment to help gervig, and if you do nothing more modding related, it's ok 🙂 you aren't here to be productive about mods!

lucid iron
#

!unpack Helps to look at vanilla furniture data and sprites

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

calm nebula
#

I don't really feel any pressure to lol

uncut viper
#

i wouldnt feel obligated! it might be fun though

#

besides. the people yearn for the giant crop fertilizer i hear

lucid iron
#

If u update them then I can't jokingly suggest "update shovel" to new modders SDVpufferpensive

gaunt orbit
#

I thought about doing a rewrite of shovel but i just don't have the time sadly

brave fable
#

god i wish GMCM would let you rightclick/esc/e/anything to quit the menu rather than having to click the Close button

gaunt orbit
#

? escape works for me

brave fable
#

at the main menu? does absolutely nothing

teal bridge
#

It's a Title Screen specific issue.

gaunt orbit
#

oh at the main menu

#

isn't the title screen technically a menu itself?

teal bridge
#

Yeah, and TitleMenu submenus are whack, it doesn't use child menus like normal menus, it has a special TitleMenu.SubMenu static.

#

It's a fixable problem (I fixed it in AFS) but it does require the menu to do extra special stuff when invoked from the title menu.

latent mauve
#

huh, I think that's the first time I've gotten the "internally verified" checkmark on one of my mods

gaunt orbit
#

I've had that a couple times. sometimes their scanner just breaks for no apparent reason

latent mauve
#

yeah, I was confused because it was blue

brave fable
#

what's the method to resolve localizedtext again SDVdemetriums

tender bloom
gaunt orbit
tender bloom
#

You'd have to ask atra about things like whether it's better to re-upload as redux or if atra wants to also offload the nexus page or w/e

uncut viper
#

i wouldnt have to its MIT licensed /j

#

i dont know about the half updates thing though

brave fable
#

yeah but like. what's the token parser and method

uncut viper
#

TokenParser.ParseText

brave fable
#

thanks, that's perfect SDVpufferthumbsup

calm nebula
#

Honest opinion

uncut viper
#

i was looking at giant crop fertilizer just now too and tbh i think it'd actually be easier for me to just remake it from scratch
not bc the code is the worst code ive ever seen or anything but because im realizing im even worse than i previously thought at parsing someone elses codebase, especially when it is so entangled with json assets which ive no idea how it ever worked lol

gaunt orbit
#

1.6 has also changed a lot of how it makes sense to structure a mod

#

that was by far the biggest hurdle when porting my own mods

tardy adder
#

I am dis close 🤏 to venture into C# territory, but then I get overwhelmed and confused 👀 one day

gaunt orbit
#

they all required significant rewrites not because making them work was hard but because maintaining a bare-minimum port would be horrible

calm nebula
#

I've already removed the JA dependence

uncut viper
#

oh neat
i forgot to check for other branches whoops

brittle ledge
#

(speaking of, I meant to ask: I think you said it did, but your mod letting the farmer have juice at Elliott's 4 heart event still works, yeah?)

calm nebula
#

Nope, that was bundled in Interaction Tweaks and thus is drad

snow heron
#

im having trouble with the source rect command in furniture framework.. it displays the barrel but i want it to display the bench and these are the dimensions for the source rect

#

😓

lucid iron
#

your barrel's 32x32 rect contains 1 line of pixel from the barrel to the right

hard fern
#

yep

snow heron
#

oh yeah im aware

#

sorry i meant like

hard fern
#

did you put the right coords

fair kernel
#

Hey so I wanna make a mod with multiple NPCS, I know how to make a single NPC but is there any like wiki page to help create multiple NPCS?

snow heron
#

i thought the x and y are when the rectangle is taking from on the png

brittle pasture
#

X and Y starts from the top left

lucid iron
#

counting hard but at a glance the bench's Y is less than 16

hard fern
#

yeah

ornate locust
snow heron
hard fern
#

you might want 0, 0 instead?

#

the bench looks to be all the way up in the corner

fair kernel
hard fern
#

(i'm not sure where on this image the bench is though)

snow heron
#

im trying to grab the bench not the barrel

#

but its taking the barrel

#

😦

hard fern
#

well ok yeah it's because your coords are wrong

#

0, 160 is the barrel

brittle pasture
hard fern
#

no

brittle pasture
#

as mentioned, x and y starts from the top left corner

snow heron
#

okay so it SHOULD be x: 0 and y: 192

lucid iron
#

in gimp and similar software you can select

hard fern
#

where did you get 192 from?

lucid iron
#

Position is X and Y, while Size is Width and Height

brittle pasture
snow heron
hard fern
#

no

#

0, 192 would

lucid iron
#

try selecting the bench in your own image Bolb

hard fern
#

put you all the way at the bottom

brittle pasture
fair kernel
hard fern
#

your bench should be at 0, 0. it is all the way at the top left corner

snow heron
#

im so dumb

#

TYSM i was so confused

#

i thought it started at the bottom left

brittle pasture
#

I should have been clearer lol

fair kernel
snow heron
#

yummy ty tho!!

hard fern
#

🤔 on an actual graph, 0, 0 is at the bottom left, so i can get how it's confusing

snow heron
hard fern
#

well, as long as it doesn't go into the negatives

snow heron
#

the coords atleast so i just assumed

brittle pasture
#

which guide have you been using?

brittle pasture
#

yes

hard fern
#

if you really wanted to, you could stick it all into one, massive, ugly file.

lucid iron
#

u can use include however you want

fair kernel
lucid iron
#

and organize jsons however you want

brittle pasture
fair kernel
hard fern
rigid musk
#

"AcceptGift_(O)74": "{{i18n:Aos.QiGift.pris}}",
Is there a reason why this wouldn't work/prompt the specific gift reaction when giving a Prismatic shard?

rigid musk
#

for context it just pulls the default hated dialogue

brittle ledge
snow heron
#

ty guys it worked!!

hard fern
#

yay

fair kernel
#

now i want a npc thats like kent, with the NPC appearing late into the game, Would I just do, say, on a spefific day of the year include the script?

brittle pasture
hard fern
# snow heron ty guys it worked!!

(i don't know if this bothers you as much, but the shadows from the other chair beside it are continuing onto the bottom right pixel of your chair...)

brittle ledge
brittle ledge
#

Jorts and Jean also has an example of "spawning in late" (though it's just day 6, not year two) so you could reference that.

brittle pasture
# rigid musk It is!

hmm your entry looks fine to me. Maybe you didnt include it? you can post your code if you want

snow heron
ornate locust
rigid musk
brittle ledge
fair kernel
fair kernel
#

i didnt read that sorry

#

yea uh just link the mod and i'll study the code

brittle pasture
brittle ledge
#

As long as you're fine with me doing that. I do tweak the event to make Elliott a little less rude (and I was kind of debating a quickQuestion to have him give you options since I don't like the forced choice either SBVLmaoDog )

brave fable
#

like alternatively you could just open the vanilla Data/Characters file and see that Kent's entry includes this line:
"UnlockConditions": "YEAR 2",
where the value is a GSQ (game state query)

ornate locust
#

That's totally fine with me!

rigid musk
#

Not a separate dialogue file

fair kernel
brittle ledge
ocean sailBOT
#
Creating a Custom NPC

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

fair kernel
long jungle
#

Can anyone explain to me what the issue is here?

brittle pasture
brave fable
lucid iron
#

you really want to look at the source code when you patch blobcatgooglyblep

#

its all gotta match

long jungle
brave fable
#

did the thai translation break in sdv1.6? item display names don't seem to be translated.

long jungle
#

Although it's been almost a month and still no update after SDV 1.6.9 and the related SMAPI Version apparently broke the mod

calm nebula
#

(A month, especially around this time of year, is not much time at all)

long jungle
#

If only he/she/they would at least say that they have plans to update it, I'd be more than willing to wait.

rancid temple
#

Do they normally? Some mod authors don't ever communicate but still update

uncut viper
#

(you could just say 'they' yknow)

rigid musk
#

how do you post your json file here again

long jungle
uncut viper
#

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

rigid musk
#

thank you very much

lucid iron
#

i support updating mods just for personal use

rancid temple
#

Lol, they is as old as English

lucid iron
#

but i think you are approaching this inefficiently

#

pls take gander at the decompiles they reveal secrets

brittle ledge
#

(singular they is older than plural you)

rigid musk
calm nebula
#

Yup, I 199% support updating mods for personal use but if you're gonna post every error to this chat this will be a long and painful experience for you

#

Or he'll, is gpl you could post it

rigid musk
long jungle
#

Yes. You all are right. I am not experienced enough to actually fix other's mods and I am crawling through it with not enough knowledge. I will just wait for the current updater to work on it or for somebody else to do it. I'm sorry for the trouble. Thank you for the people who have replied thus far.

brittle ledge
#

did you combine your includes into your file here or do you actually have it in two separate files?

rigid musk
#

Oh I don't know why I

#

One of those is for NPC gift tastes for new items and the other is actually his gift tastes

brittle ledge
#

ahhh

tardy adder
#

tiakall your tutorial is so good and nice to follow SDVpufferheart

brittle ledge
#

okay so when you say it's giving the hated dialogue, is it giving the line you have in your i18n for his hates or is it a default vanilla string it's throwing up? SDVpufferthinkblob

acoustic summit
#

Do you have to add a property / something in CP to identify a location as indoors? Or is it just you dont add the Outdoors map properties

rancid temple
#

Should just be that

rigid musk
#

Not just with prismatic shards but with all gifts

rancid temple
rigid musk
#

example: I gave him celery but he pulled this response (liked) instead of the specific celery dialogue response

#

same with the shard (hated)

brittle ledge
#

SDVpufferthinkblob strange, as far as I'm aware accept_gift should take predecence over gift taste dialogue.

calm nebula
#

It should yes

rigid musk
velvet narwhal
#

what's that data/dialogue include?

uncut viper
#

did you write the Accept_Gift stuff correctly

#

oh i missed the json sorry

rancid temple
#

Isn't Stardrop Tea hardcoded?

calm nebula
#

Can you get lookup anythkng

#

Look up data dump mode

#

And then just like like

brittle ledge
#

It looks correct to me. I went and checked the wiki to make sure they require (O)

uncut viper
#

stardrop tea is hardcoded to a certain gift taste but the reaction text shouldnt be

calm nebula
#

Malr sure the npc's dialogue asset is right

rancid temple
#

Oh ok, so he'll still get the friendship but say he hates it lol

calm nebula
#

Just in case

brittle ledge
#

(iirc reject fires before the gift taste stuff)

calm nebula
#

I wonder of there is a mrqi issue

uncut viper
#

i dont think you can reject stardrop tea

brittle ledge
#

(so it wouldn't activate the friendship)

calm nebula
#

But your internal name OS differnet

calm nebula
uncut viper
#

maybe you can. idk trying to remember the exact order of trytoReceiveActiveObject is difficult

calm nebula
#

Might be worth moving the dialogue temp to say pierre

#

And see like

#

If there is a mr qi issue

rigid musk
rigid musk
#

as you can see there are two of them

uncut viper
#

are you sure its supposed to be AcceptGift and not Accept

brittle ledge
#

Question, is your dialogue include like your gift taste include in that it's not your NPC's dialogue but other characters?

uncut viper
#

or is Accept for quests

rancid temple
calm nebula
#

Are we sure it is an O not an 0

uncut viper
#

yes

rancid temple
#

I think the validator puts dots on 0

brittle ledge
#

according to my scientific analysis (I copypasted it into Discord) it's an O, not a zero

rancid temple
#

What's in Dialogue.json?

brittle ledge
rigid musk
#

(also i did test the 0/O thing already)

#

Nothing yet

#

empty files - the json thing didnt include the //notes

brittle ledge
#

mmm if they're empty you might want to comment out the include until you're ready for it, just in case

#

the other "it's dumb but also I would make this mistake" idea I have is just double-check to make sure your i18n keys are pointing at the right lines and haven't gotten switched or overwritten somehow

rigid musk
#

if the translation keys were broken/referenced wrong wouldn't it just pull up the 'no translation' text?

brittle ledge
#

it would but if you swapped them they'd just have the wrong line

#

The only other thing I can think to try would be like what Atra suggested where you grab an NPC you know works and try adding the gift taste to them and see what it does

inland wren
#

If one character has 2 dialogue mods and one is i18n, and one doesn't... do I have to make them both the same?

uncut viper
#

no, each mod handles how it does dialogue and translations separately. also, unless you're making a mod yourself, this is the wrong channel

inland wren
#

I wasn't sure if modded farmers or here was the right place lol

calm nebula
#

Have we seen a log yet

uncut viper
#

here is for people who make mods. modded farmers is for people who play with mods

inland wren
#

I play with mods, but also edit mods that aren't moddy enough 🤔 I guess this was just a compatibility/merging issue...

#

Also I saw there was a tool to convert regular dialogue mods to i18n tags but the guide was really confusing

brittle ledge
#

But yeah, a mod that has some lines in i18n and some that aren't shouldn't generally have an issue, unless the keys themselves overlap.

#

(Ask me how I know....)

inland wren
#

I haven't seen that yet I'll check it out

rigid musk
#

I have no idea why it worked but I just moved it to its own separate json

#

thank you for everyone for helping by the way - much appreciated

hard fern
#

nomori's i18n-ifier is a lifesaver 😔

brittle ledge
inland wren
#

Is there a practical reason for i18n if you're not translating to a different language?

rancid temple
#

Makes it easier to do some special random stuff

uncut viper
#

yes. other people may trranslate it for you

#

and like roku says you can use it for other fun things

rancid temple
#

Any i18n you do in the moment is less i18n you have to do later in case you do end up deciding to do it

rigid musk
calm nebula
rigid musk
#

Considering I don't know what you mean by that... I'll go with no

hard fern
#

😔

#

you basically load in a blank json for your dialogue so you can edit it and add in your includes(?)

#

i think

brittle ledge
#

one sec, I can get you the relevant part

#

This part, Lily

uncut viper
#

i completely forgot that gift reaction dialogue was stored separately and didnt bring it up bc i thought "well he has some dialogue already working so the dialogue load must be there" lol

#

(the generic gift reaction dialogue i mean)

hard fern
#

honestly i've spent way too much time staring at gift tastes

brittle ledge
#

Lily, did loading the blanks help?

rigid musk
#

HI sorry I was testing some stuff out - YES it did! delightfully so

#

He even rejects the stardrop tea >:]

brittle ledge
#

just gotta make sure it doesn't show up when your mod's not installed, but it shouldn't

#

(also, I notice you have $9 on the last two options, but that would be the tenth portrait, which vanilla doesn't have. Did you mean $8, his surprised portrait?)

ornate locust
#

heck, yes, I did

#

I mistook how they were numbered starting at 0

#

Thanks for the shout, I'll fix that after I figure out where the mailman thinks my front door is

ornate locust
#

package was found in the middle of the road, not terribly pleased but nobody's hit it anyway

#

Now to knock it into my head that the portrait numbering starts at 0

rancid temple
#

I think all indexes start at 0

ornate locust
#

Makes sense

rancid temple
#

Though some mods use 0 as a placeholder or nothing entry

uncut viper
#

sometimes things practically start at 1

#

like gsq/action/token parsing SDVpufferpensive

rancid temple
#

The scars of personal experience

calm nebula
#

yeah, you have to consider the fact that the game doesn't ahve acces to span and friends lol

#

like, my personal parsers, will pass on a Span<str>

uncut viper
#

tbh i dont know what a span is all i know is that i constantly forget that the first argument i want when making something for BETAS is index 1 and it annoys me

ornate locust
#

aha, it looks like I fixed one of them to be 8 but not all of them

rancid temple
#

Oh yeah, ArgUtility.TryGet the first arg is the thing itself right?

uncut viper
#

it sure is

tiny zealot
uncut viper
#

well not so much just for TryGet, its just that the arg list you get always includes the thing itselfd

rancid temple
#

Can't imagine what you would need the 0 index for lmao

uncut viper
brittle ledge
#

also, since I don't think I mentioned it, the mod I'm adding compat for yours with is Realistic Writer Elliott SDVkrobusgiggle I'm overwriting all the vanilla events, so I'm trying to be proactive in what I might break

uncut viper
#

i figured it was for the elliott mod SDVpuffersquee rest assured the major point of CMCT is to grab things regardless of what another mod author does. so like, if you somehow did break it, id be very interested to know how

#

that would be very good for me to know how to work around

brittle ledge
#

Yeah, I mean more that since I'm editing all the events, anything else that tries to edit them is either gonna pick a fight or I need to handle it.

modest dagger
uncut viper
#

i just meant that i wouldnt say its your job to handle! it'd be someone elses if they wanted to make it compatible with yours, id say. ideally someone shouldnt need to go out of their way to support CMCT, it should be an out of the box thing

rigid musk
#

I'm back with another question -
For maps that usually don't have (or allow) NPC pathing between them - how do I... make it happen? I guess is how I'll put that. Main thing I'm referencing: I want to be able to have my NPC path through the Casino -> Oasis (Club -> SandyHouse). As far as I can tell that does not work. Would I use content patcher to change something similar to the 'ExcludeFromNpcPathfinding' data?

brittle ledge
latent mauve
#

Typically, you have to create a NPC Warp to skip the blacklisted map and put the NPC in the next allowed location.

uncut viper
latent mauve
#

You can fake them moving through an area with an event (like Abigail's monster shrine event), but the NPCs will not be able to regularly pass through a blacklisted map.

rigid musk
latent mauve
#

You can add a TileData object for an NPC warp in Tiled, or you can add the property to an existing tile with CP and not actually open Tiled

#

Both methods work

rancid temple
#

Are those two locations even blacklisted?

#

All I'm finding are Farm, Cellar and Backwoods

brittle ledge
#

(huh, not the sewers?)

calm nebula
#

(nope_

#

guess how zuzu got everyone to go through the sewers

#

the sewers in vanilla just don't have an in warp that npcs us

brittle ledge