#making-mods-general

1 messages · Page 458 of 1

fast plaza
#

sorry if thats a dumb question haha

obtuse finch
#

Is there a way to update the game to test mod without having to exit the game and wait for load in?

obtuse finch
#

Oh, may I know?

fast plaza
#

oop nvm think i found the api file nice

autumn tide
obtuse finch
#

Very appreciate the help!

autumn tide
fast plaza
#

hmm maybe I'm still a bit confused on how to get spacecore implemented - so I want to add a custom skill, it says I need to subclass Skill, which is in skills.cs, but I'm assuming I don't just copy in the Skills.cs file into my repo and I can't find an API for skills - am I missing something here or is there something else I need to do?

autumn tide
calm nebula
#

You actually add it to your csproj

#

One second

autumn tide
fast plaza
calm nebula
#

I cant be spooky anymore! It's November

autumn tide
fast plaza
autumn tide
#

...so i'm working on an event with a lot of moving objects, so i thought i'd make temp npcs to use as the objects for easy moving. the issue is, THE OBJECTS BREATHE BECAUSE I FORGOT TO DISABLE THAT 😭

fast plaza
#

hahaha

#

creepy

autumn tide
#

i know 😭 😭 😭

fast plaza
#

if I use this dll method should I still be using the API spacecore provides or is that not necessary anymore?

next plaza
#

More SpaceCore skills SDVpufferwoke

next plaza
autumn tide
#

hellooo uh are there any extra steps I should take when making a custom map (for an event) to have it implemented, other than just including the map in the folder and referencing it in the changeLocation command?

gentle rose
#

did you load it? I think (but am not sure) that you need to

autumn tide
#

I'll also load all my tilesheets too then

gentle rose
#

that you don't have to do

#

(but some argue it's good practice)

autumn tide
#

oh

#

..then i won't heheh

#

alr anyone up for making pepper-krobus trenchcoat, seamonster, and raven sprites?

#

on behalf of the spicy krobus council (me, @devout otter , @worthy ermine, @hard fern)

#

..this must be very confusing to ppl who weren't on here like 12 hours ago-

vernal crest
autumn tide
vernal crest
#

And don't have them in the same folder as the map or loading them will be pointless

autumn tide
#

..they're in the same folder-

vernal crest
#

Wait

#

All your tilesheets? How many custom tilesheets did you make?

autumn tide
#

oh just imported some vanilla ones there bc i couldn't understand how to connect it otherwise SDVpufferwaaah

vernal crest
#

Oh then not only do you not load them, they should not be in your mod folder at all

#

Yeet them!

autumn tide
#

...im so confused

#

..how?

#

wouldn't that disconnect them from the map?

vernal crest
#

Get iro's tiled extension, it lets you use tilesheets from other folders without getting tilesheet climbing

autumn tide
#

hmmmmmm

#

okay

vernal crest
autumn tide
#

ohh, so the files are just there to help the app?

vernal crest
#

Yes

autumn tide
#

uh, where might I find Iro's extension then?

vernal crest
autumn tide
#

ty SDVpufferheart

vernal crest
#

If you need help with it you can ping me or iro

autumn tide
#

thanks!!

vernal crest
#

The extension will make your life easier and help you contribute to a world in which people aren't unnecessarily uploading vanilla tilesheets and preventing their maps from being recolour compatible!

#

(Having the vanilla tilesheets in the same folder as the map prevents recolours from working on the map)

autumn tide
#

i think I got it!

#

i did! tysm :)

quick sand
#

anyone know how spacecore's furnitureextensiondata > tileproperties is affected by rotation? it doesnt seem to be tied to bounding box

autumn tide
#

hellooo are you guys aware of where letter textures are stored?

#

..literally just saw it fml

quick sand
#

loose sprites

#

if you mean the back grounds

lucid iron
#

If you had a 1x2 thing that rotates to 2x1, and you put tile prop on 0,1 (so the right tile), it'll simply no longer do anything post rotate

#

You can put another tile prop on 1,0

quick sand
#

hmmmm.. i see. thanks

narrow owl
urban patrol
#

i recommend you test it out so you don’t have to wait for a specific person to be online!

narrow owl
#

like for example rainbow trout roe

#

or legend roe

autumn tide
#

oh, chu has a framework for that!

narrow owl
autumn tide
#

peliQ, look it up on nexus lol

narrow owl
autumn tide
#

just @ them if you have questions idk how it works lol

brittle pasture
#

you don't need peliq for that

#

[[Modding:Item_queries]]

brittle pasture
#

look at FLAVORED_ITEM

#

allows you to spawn flavored variants of certain vanilla items (juice, roe, etc.)

autumn tide
#

OH yeah, i think peliQ was for gifting?

brittle pasture
#

the two relevant peliq features are:

  • allows give item trigger actions to use item queries (and thus support flavored items)
  • allows the flavor of a flavored item query to be the result of another item query
#

discord stop spell checking flavored to flavoured pls

lucid iron
#

smh selph deporting u from 🇨🇦 rn

calm nebula
#

Smh can I move to Canada i sure apologize enough

brittle pasture
#

I will never be Br*tish

lucid iron
#

but yea what selph said, peliq is needed for case where u need multiple dynamic flavored item

#

vanilla can do single flavored item fine

autumn tide
lucid iron
#

cus they r bri'ish

narrow owl
autumn tide
#

god i'm so glad i was never exposed to british cuisine

autumn tide
#

i could never handle that shit

narrow owl
autumn tide
#

those bitches conquered half the world for spices only to never use them smh

worthy ermine
narrow owl
autumn tide
#

BEANS N TOAST

worthy ermine
worthy ermine
autumn tide
narrow owl
#

nah man I just use indian spices, Im indian

worthy ermine
narrow owl
autumn tide
#

BRI ISH

worthy ermine
narrow owl
#

can we just agree on one thing??? ||fuck the british||

||no offense to any brits||

narrow owl
#

lol

worthy ermine
narrow owl
autumn tide
#

nah lol

narrow owl
#

never hear of it and glad

#

people be glazing all asian food but not all is good

autumn tide
#

..thats odd but i'm not gonna judge...

openly

narrow owl
#

like curry banana pizza

worthy ermine
autumn tide
narrow owl
#

look

#

at

#

the

worthy ermine
narrow owl
#

list

uncut viper
narrow owl
#

we got a bit off topic 😭 lmao

autumn tide
#

oh sorry this just devolved from a modding topic-

narrow owl
#

yeah lol

autumn tide
#

okay our debate shall continue there

worthy ermine
# narrow owl lol y

idk but somehow there are still people on the pineapple pizza debate when that exists

autumn tide
#

i bid thee farewell, fellow modders

#

for like 5 mins till i have my next problem

lucid iron
#

@shut edge desc thing fixed in 1.5.1

narrow owl
#

god typing out every single thing for fish pond is annoying

autumn tide
#

alrrr so my custom map isn't showing up during my event

#

lemme send my json one sec

#

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

narrow owl
#

@autumn tide i would like to request details about ur dwarf mod, sounds cool

autumn tide
autumn tide
#

I'm getting this error:

narrow owl
#

is it expanding on the war?

autumn tide
#

[Content Patcher] Patch error: (CP) MY MOD?!?!?!?!??!?!?! > {{ModId}} Events > Code/Events.json > Destroyed Basement Loader has a FromFile which matches non-existent file 'Assets/Maps/LewisBasementDestroyed1.png'.

autumn tide
urban patrol
autumn tide
urban patrol
#

you want .tmx or .tbin

autumn tide
#

oh, it is a tmx?

urban patrol
#

yeah but your FromFile says .png

fervent horizon
#

Are you loading or patching?

autumn tide
#

..oh shit

#

I'll fix that then, thanks so much for catching it lol

urban patrol
autumn tide
#

got it, lemme see if it works now!

#

...did not work :(

urban patrol
#

what errors are you seeing now, if any

autumn tide
#

okay, looks like it's an error with my file

narrow owl
#

wait are comments not allowed in json?

#

i thought they were

worthy ermine
#

is that not what it means?

urban patrol
#

they're allowed in json5 but json throws errors. CP does allow them though

narrow owl
#

orange? where?

worthy ermine
#

it turns orange

narrow owl
narrow owl
urban patrol
#

the color depends on your software, it's not consistent

worthy ermine
#

is that not a comment

narrow owl
#

in vs its green

narrow owl
urban patrol
urban patrol
#

i think adding a schema will also help error checking, but again, i don't use VSC so idk

autumn tide
#

alr, still broken :( i think one of the tilesets incorrect somehow but I'm genuinely not sure how or why.

#

gonna upload my map file and send the error here

uncut viper
#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

ornate locust
#

laughing at that map name. Oh god, what did the shorts do now

autumn tide
#

uh i rather not put the log here bc my computer has my name and such, but I'll look at it myself

uncut viper
#

that snippet you sent already has your computer name in it

urban patrol
#

what you just posted has your full name in it

autumn tide
#

well, shit.

urban patrol
#

you had tilesheet climbing. i put your map into button's map fixer and it fixed it

autumn tide
urban patrol
#

you'll likely have to fix all of your maps if you recently switched to using the tiled extension

#

/deleted the vanilla tilesheets out of your mod folder

uncut viper
#

your map also uses tsx's, so if those also have issues, my fixer won't do anything about it since those are separate files

urban patrol
#

oh good to know

elfin kindle
#

just to double check, wtf do you do with the vanilla tilesheets if youre planning on releasing your mod? I remember vaguely that youre suppose to delete them once youre done and the game will rely on their own??

urban patrol
#

yes, but you'll have to fix tilesheet climbing errors

#

!tilesheetclimbing

ocean sailBOT
#

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

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

urban patrol
#

but button's map fixer does this for you (among other things)

shut edge
urban patrol
#

actually @uncut viper how do you feel about your map fixer being linked in this command? i know you've said you don't want your json tutorial to be in any commands, but i think the map fixer is super useful

elfin kindle
urban patrol
#

yeah, you can either do it manually following the instructions above/on the wiki, or use the fixer

#

before the fixer i usually just ctrl-F'ed ..

uncut viper
#

map fixer in a command is fine but given how used that command is its probably not something id think should be up to one person to change it.
but also i cant change it anyway, and i dont know who originally made the command anyway

urban patrol
#

yeah we could probably just do !mapfixer instead maybe?

#

idk if we need mod approval to define new commands

uncut viper
#

shrugs. im not a mod author, i have no say in this SDVpufferthumbsup

urban patrol
#

@outer glacier are we allowed to define new !commands? i think !mapfixer which links and explains button's map fixing tool could be useful

uncut viper
#

you dont need to ask about it, its a mod author role benefit at level 100

haughty charm
#

That would be perfectly okay

urban patrol
#

oh okay! i wasn't sure if there was etiquette about it

uncut viper
#

as long as you dont go against custom command etiquette (no random commands for no reason, no spamming them, dont change someone elses command without discussion, etc)

#

its in.... some github gist. somewhere. i dont remmeber where to find it

haughty charm
#

The only thing we ask is to not misuse it for irrelevant stuffs

shut edge
urban patrol
#

sounds perfectly reasonable haha

shut edge
#

yay it works

urban patrol
#

excellent

uncut viper
#

i avoid the possibility of accidentally going against command etiquette by never allowing myself an orange name in the first place

#

one simple trick etc etc

urban patrol
#

can't screw up if you don't have perms SDVpuffersmart

#

do you have strong feelings about how to explain the map fixer?

uncut viper
#

as long as its explained correctly and also doesnt imply it'll fix every issue ever guaranteed

urban patrol
#

There is a (masked link) map fixer tool by Spiderbuttons that can fix common map errors such as tilesheet climbing. Upload your map(s) as a .tmx file(s) and click FIX to run. Your fixed maps will be downloaded as a .zip file and will need to be extracted in order to replace your old versions. It is not guaranteed to fix every map error.

#

is my proposal

uncut viper
#

id replace the last sentence with something like "Feel free to let Spiderbuttons know if you run into an issue it can't fix."

#

otherwise seems fine to me

urban patrol
#

okay!

ocean sailBOT
#

New command added! You can use it like !mapfixer.

urban patrol
#

there isn't a list of commands i would need to add this to or anything, right?

uncut viper
#

not as far as i know

#

!mapfixer

ocean sailBOT
#
Stardew Valley Map Fixer

There is a map fixer tool by Spiderbuttons that can fix common map errors such as tilesheet climbing.

Upload your map file(s) as .tmx and click FIX to run. Your fixed maps will be downloaded as a .zip file and will need to be extracted in order to replace your old versions.

Feel free to let Spiderbuttons know if you run into an issue it can't fix.

narrow owl
#

how do you make it so that something that isn't a fish can be placed into a fish pond

hallow prism
#

at some point it was hardcoded

#

i don't remember if now you can do it with the proper tag

ornate trellis
#

i made a mistake with my wedding event json and i cant find the error, i think ive been staring at the screen too long

#

then again i was always bad in getting what the smapi errors mean

hallow prism
#

if this doesn't work, call for help

shut edge
hallow prism
urban patrol
shut edge
#

i'm glad to hear

ornate trellis
shut edge
#

now if the thing would show up in my opt-in page...

ornate trellis
#

i looked at another custom wedding event to get it to work but hm...

hallow prism
#

i don't see the log

ornate trellis
#

ahg frick copy paste fail

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 62 C# mods and 20 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ornate trellis
#

lmao oops

hallow prism
#

you have several {{i18n:{{KEY}}

uncut viper
#

{{i18n:{{KEY}}
dont know what this is supposed to be but you have it in both scripts

hallow prism
#

which sounds not right

uncut viper
#

and it doesnt have an ending brace set

hallow prism
#

jinx!

ornate trellis
#

frick, thats the wrong json then wth i fixed that- wait....

#

ok i fixed putting in the key but it still had the opening brackets...

hallow prism
#

take a bit of a break before returning to testing stuff, you deserve it

urban patrol
#

[[Modding:Context_tags]]

ornate trellis
#

ok yeah i think i need a break i totally did the wrong frames for the wedding kissing for some reasons but hey the wedding technically works besides thast, yippie

narrow owl
urban patrol
#

i don't know what you mean by remove something from a tag. do you mean you want to remove a context tag from an item?

narrow owl
urban patrol
#

hmm i'm not sure, let me see

narrow owl
#

ohk

uncut viper
narrow owl
uncut viper
#

shrugs. dunno

urban patrol
#

oh excellent, i was looking at removeDelimited instead

narrow owl
uncut viper
#

i dont have the answers you seek. i dont do stuff with fish and im not at my computer to read the decompile

urban patrol
#

!decompile if you can read C#, you can take a look yourself

ocean sailBOT
narrow owl
uncut viper
urban patrol
#

i see i see

vast flicker
#

Guys who do I add generic mod config menu to a mod that has a c#

#

I’m trying to add the generic mod config menu to this

uncut viper
#

you dont. not unless you take that mods source code and make the changes yourself

vast flicker
#

Oh

forest cobalt
#

Is there a forum or place i can ask for mod commissions?

brittle pasture
#

!commissions

ocean sailBOT
vast flicker
#

!mods

#

!mof

#

!mod

#

😞

hallow prism
vast flicker
#

!help

ocean sailBOT
#
please get me off discord
vast flicker
#

Am I doing this wrong

brave fable
#

depends what you're trying to do SDVpufferchickegg

vast flicker
#

I’m trying to figure out how to add birthdays on the calendar

urban patrol
#

birthdays are determined by an NPC's Data/Characters entry

vast flicker
#

Oh okay!

brave fable
#

does this mod do what you're after? SDVpufferthinkblob
https://www.nexusmods.com/stardewvalley/mods/7495

Nexus Mods :: Stardew Valley

A small mod that allows the calendar to show multiple birthdays at once. The hover text lists the NPCs and the calendar cycles through their sprites. You can customize how it cycles in config or GMCM.

vast flicker
#

Yeah

hallow prism
#

hmm, i was sure the command was !help but maybe it was changed

vast flicker
#

But for the player

hallow prism
#

(still, it's not governor mansion here so...)

brave fable
#

you'll have to be a little more descriptive with your idea

#

i still don't fully understand haha

vast flicker
#

So basically I’m trying to make a mod where it shows birthdays and anniversaries without changing the happy birthday’s gifts, the anniversary on calendar was great until I figured out that I had to manually change the config in the file instead of in game and I wanted to add compatibility for people who has steam deck

#

Smth similar to anniversary on calendar but with content patcher and gmcm

brave fable
#

ah, i don't believe that's possible with CP.

vast flicker
#

Oh

narrow owl
#

how do you find the unique string ID for vanilla things

brave fable
brave fable
# vast flicker So basically I’m trying to make a mod where it shows birthdays and anniversaries...

so given AnniversaryOnCalendar is a C# mod, it's not automatically parsed by CP to create a new GMCM page: C# mods need to include their own interface for GMCM and explicitly write out their own pages. in order to change config values during gameplay, it'd need to have done this.
bridging HappyBirthday and AnniversaryOnCalendar would mean reading the config of the former mod from the latter, and likely listening to any changes, which means a decent amount of reflection (accessing inaccessible values at runtime). it's not impossible, but cumbersome and probably a bit arcane if you're not used to using C#.
as for steam deck compatibility, i have no idea

vast flicker
#

I want to try to make my own version

brave fable
#

overall doable, but requires a-little-advanced C#

vast flicker
#

Sighs

#

At least I made this birthday hat for the icon

vast flicker
brave fable
#

so did i, that's why i started making stardew valley mods SDVpufferthumbsup it takes time, but it opens up a lot of career opportunities, such as making stardew valley mods

#

teaching a full crash-course in c# is outside the scope of this channel though, but there's plenty of resources and courses online

vast flicker
#

This is my first time

quick sand
#

ive been working through the free microsoft c# class. its good but intense. still not able to make my own mods yet but i can understand a bit when i decompile

brave fable
#

just like with all things, everyone starts knowing nothing, and with some learning and practice you'll improve in time

#

or alternatively if you really don't want to learn c# at all you've got the commissions page hahah

vast flicker
#

I don’t have money

hard fern
vast flicker
#

That’s good

brave fable
#

i don't know fishponddata, but i believe the issue is there's no context tag already applied to seaweed for item_seaweed

hard fern
#

What about the auto generated context tag?

narrow owl
brave fable
#

you'd want to use its internal id, which would be item_o_152 i think (which is an automatically generated context tag using the form item, item type o for object, and the internal id 152)

hallow prism
# vast flicker I don’t have money

the thing about C# is that it's harder to have someone guiding you on a detailled way, so you'll have to do more of the work yourself than with CP when people are able to guide you, provide you core elements, or even handhold you way more

hard fern
#

The id_o_

#

😔

#

Im too slow again

hallow prism
#

the ido sounds like a way of wisdom for SDV modding

vast flicker
hallow prism
#

i kinda get it, you have an idea and there's many steps between you and the idea

#

it can be overwhelming and it's understandable you'd like for a shortcut to appears

lucid iron
#

so is the previous mod open source?

#

u can fork it if true PecoWant

uncut viper
#

no, and it doesnt have open nexus permissions regardless

brave fable
#

for legacy reasons, all items from before 1.6 use their sprite index in their spritesheet as an ID

lucid iron
#

then i guess its time to learn the terrible time of ui

calm nebula
hallow prism
#

(and to obtain context tags, which you want here, you can do debug listtags when holding the item)

calm nebula
#

And there are a slightly handful of items that are hardcoded

#

So

lucid iron
#

i think u can do it all in the smapi render events if you dont mind some minor jank but

hallow prism
calm nebula
#

I nominate someone not on mobile to check that

lucid iron
#

theres a learning cliff of figure out what is C#

hallow prism
#

i don't remember if it was, but the migration page is unconclusive

narrow owl
hallow prism
#

hence the "test and see and return to us if it fails"

calm nebula
#

I'm running shirtless through a park lumi

uncut viper
#

not all context tags are in the data

#

some context tags are added when the item is created in game

vast flicker
hallow prism
#

the console is the smapi black windows

#

if you're unsure of what an instruction means feel free to ask!

lucid iron
hallow prism
vast flicker
brave fable
#

wait a minute what's with the base fishponddata having the likes of item_sunfish

uncut viper
#

isnt sunfish the default fish in general?

hallow prism
#

i know i asked for this deharcoding at some point but i don't remember if it was done or just considered

vast flicker
brave fable
#

oh darn it does generate context tags from Name as well as Id

#

hm, so item_seaweed is correct

narrow owl
hallow prism
#

can you elaborate on what you mean by that?

calm nebula
#

Switch it to category fish and see if it works

narrow owl
#

so ill add the context tag: "seaweed" for seaweed

#

like:
"seaweed": "seaweed"

brave fable
#

i was wrong earlier when i said it'd need to be id_o_152, which is another possible autogenerated context tag

hallow prism
#

i'm going to sleep but if the hardcoding is still here i suggest someone that isn't me (or atra running in parks) request this for 1.6.16 or 1.7?

brave fable
#

which means that the seaweed not being usable in fishponds is going to be for another reason, possibly excluding all non-fish as atra mentioned

hallow prism
#

(and if you already tested with item_seaweed and it doesn't work it means this is still hardcoded and there's not really something you can do with content packs only outside of workaround like fish category/fish data as atra suggested)

brave fable
#

because while seaweed is fish enough to be fished, it isn't fish

fervent horizon
#

I think _item isat the end of the tags though

#

like seaweed_item

narrow owl
hallow prism
#

this is a format modders uses BECAUSE base game use item_name

latent mauve
#

(I believe you can hold a seaweed in your hands and do debug listtags to get all the tags for the seaweed item just to be sure)

hallow prism
#

so we don't overlap with vanilla tag

brave fable
narrow owl
hallow prism
#

so you may have encountered this format on modded stuff previously but it's not what vanilla uses

narrow owl
#

so nothing changing the seaweed context tags

fervent horizon
#

🤦‍♂️ nevermind, I'll scamper off now

brave fable
hallow prism
#

(that is ok i just wanted to provide context, i can see why it can be confusing)

#

anyway

#

sleep. Good timezone and luck

brave fable
#

in any case i've never touched fishponds so i can't say what specifically does and does not work

uncut viper
#

(that wiki list is incomplete too so dont take it as gospel either)

brave fable
#

or i could if i looked into it for longer, but i'm not about that atm haha

narrow owl
#

im confused on what i have to do im sorry

brave fable
uncut viper
#

the category of the object being put in the fish pond must be -4

#

aka a fish

narrow owl
#

all i do is change category

uncut viper
#

coral and sea urchin are hardcoded exceptions

#

thatd work. dont know what other consequences there are to changing something's category to fish. probably at least one consequence. dont know what itd be

narrow owl
latent mauve
#

most immediate consequence that I can think of would probably be that it would be impacted by the Fisher and Angler professions, meaning the sell price would be higher

latent mauve
#

I'm not saying it's a big deal, just saying it is something that would change.

#

Unintended / unannounced changes can confuse users if they're not expecting behaviors like that, so it's something to be aware of, that's all

#

I'm not trying to talk you out of it. 🙂

vast flicker
#

How do I add the player’s birthday to the calendar

gentle rose
#

it would require c#, like blueberry told you less than an hour ago

vast flicker
#

Yeah but also how

uncut viper
#

the thing about c# mods is that it's generally up to you to decide and figure out the how

#

there's not gonna be some "add birthday to calendar" function somewhere

gentle rose
#

it would be hard to explain without basically making the mod for you

vast flicker
#

Oh

uncut viper
#

you'll have to read the decompile and look at the SMAPI events available to you (chu mentioned the render ones I think) and DIY it

vast flicker
#

Tysm

#

🥺

uncut viper
#

(or use harmony, which is also DIYing it)

vast flicker
#

Sighs I might have to wait for a month since my mom can’t afford a new laptop rn

#

Plus my storage is like on life support as I mentioned earlier

brittle pasture
#

possibly stupid question: I have a CP local token
"OverrideColor": "255,0,0",
which CP interprets as me passing in a list with two numbers 255 and 0; how do I tell CP to pass in that string exactly as is

uncut viper
#

the Render token, maybe

#

it's interpreting it like that because it's turning it into a set

calm nebula
#

Is there a seperator

#

Or is that only the Random token

uncut viper
#

inputSeparator is a global token modifier thingy

#

are you trying to just display that string literally though or are you trying to use it functionality because in the latter case I'm pretty sure that set stuff is gonna bite you at some point down the line if not the local token declaration

brittle pasture
#

I'm trying to pass it to a framework that accepts a color override in the form of a string consisting of three numbers separated by commas

#

so no functionality on the CP side at all

uncut viper
#

then sure try rendering it or changing the separator

#

at the time of using it not at declaration

#

or well

#

actually no I guess it would be at declaration

#

which also means I think you do need to just use Render because otherwise there's nothing to put the separator on

#

possibly a combination of both

dusky sail
#

now this might be silly or not actually work. but what if the three values were three separate local tokens

#

so inside the included file youd just have "{{LocalTokenA}},{{LocalTökenB}},{{LocalTokenC}}

boreal dagger
#

Walking into this channel and seeing the messages feels like seeing letters in math for the first time again

brittle pasture
#

I may be stupid
"OverrideColor": "{{Render: 255,0,0}}",
this is definitely not how you do it (still turns into 255, 0)

brittle pasture
uncut viper
dusky sail
#

nods nods. ok so it would work itd just be inconvenient. curiosity sated

uncut viper
#

{{Render: 255,0,0 |inputSeparator=@}}

brittle pasture
#

nop SDVpufferwaaah

uncut viper
#

if that still doesn't work then I'd try using render again inside the patch

#

{{Render: {{OverrideColour}} }}

#

if not that then with the input separator on that too
if that still doesn't work then I'm out of ideas

brittle pasture
#

nop x2 SDVpufferwaaah
more tokens it is
(I still appreciate the help though Button SDVpufferheart )

uncut viper
#

set theory claims another victim

brave fable
#

all the more reason for mods to just take any old colour and parse it with Utility.StringToColor

uncut viper
#

are we sure that's not what the framework is secretly doing

brave fable
#

well this method doesn't accept comma-separated values so quite sure

uncut viper
#

not sure what you mean there

brittle pasture
#

yeah I use a custom method before knowing that function existed and now I can't switch because it'd break compat

uncut viper
#

how would it break

#

may I introduce you to custom jsonconverter also

brittle pasture
#

nou

brave fable
#

you could surely use Utility.StringToColor(s) ?? MyLovelyLegacyStringToColor(s)

uncut viper
#

i thought it returned a default color and not null

#

I'm not at my desk to check

brave fable
#

public static Color? StringToColor(string rawColor)

brittle pasture
#

it does return null
unfortunately it also logs a yellow warning on a parse error

uncut viper
#

selph can't you just remove commas

brave fable
#

then do it the other way around ✨

brittle pasture
#

I may be stupid part 2

uncut viper
#

just ask pathos to add comma separated RGB support in 1.6.16

brittle pasture
#

with that issue resolved, my mod that allows commiting crimes against fashion comes ever closer to completion

narrow owl
#

how would I change the category of an item using content patcher

narrow owl
narrow owl
brittle pasture
#

change Entries to Fields

narrow owl
brittle pasture
#

Fields = only edit the fields I specify
Entries = replace the entire object

#

and remove TargetField

urban patrol
#

also are you sure it's Seaweed and not whatever the number is

uncut viper
#

also remove TargetField

urban patrol
#

irrelevant now if you're getting rid of targetfield

brittle pasture
#

(you're directly editing a top level field of an object already, no need to "drill in" with TargetField)

#

and yeah it's not Seaweed

uncut viper
#

relevant since you'll be changing the Fields key to 152

narrow owl
ornate locust
#

Okay phone discord search is garbage and my Internet is down yet again: is there a way to do snow schedules like rain schedules? Is a when condition good enough?

uncut viper
#

isnt snow just winter rain?

narrow owl
brittle pasture
# narrow owl

can you follow the example of "editing the description of an item" in the page I linked

uncut viper
#

well a When condition wont do it because you'd need to edit it the night before

ornate locust
#

Yeah I was worried about that. Rain schedules do not apply during snow either

brittle pasture
#

mostly correct
the item Id is not Seaweed

narrow owl
#

152?

narrow owl
brittle pasture
#

it's because its ID is MossSoup

narrow owl
brittle pasture
#

items before 1.6 used to use numeric ids because only numbers were supported

narrow owl
#

ohhh

#

ty

#

so it shud work now?

brittle pasture
#

!itemids

ocean sailBOT
patent lanceBOT
brittle pasture
#

check the link above (not maru's lol) for a convenient reference

#

you can also (and should) unpack Data/Objects

calm nebula
#

Just use a weather: Snow

uncut viper
#

are schedules not chosen the night before?

ornate locust
#

Does it? I wouldn't think it would change right

calm nebula
#

No, schedules are not chosen the night before

ornate locust
#

I always have to rest a night to get schedules to work, I figured they were chosen sometime inconvenient

calm nebula
#

Although I vaguely recall it's more "CP will re roll the schedule " SDVpufferthink

uncut viper
#

NPC.dayUpdate is called after DayEnding in _newDayAfterFade

#

and the xml docs specifically say its before the game saves overnight

narrow owl
calm nebula
#

Yeah but iirc SMAPI re-rolls the schedule as part of asset propagation

brittle pasture
#

that code looks correct
let me check the game code to see nothing else's being tripped

calm nebula
#

(Are you trying with newly spawned seaweed)

narrow owl
#

fuck i hate all the intricacies

#

😭

calm nebula
#

Welcome to modding

brittle pasture
#

we're not meant to dig in mr ape's backyard, but we do it anyway

calm nebula
#

Guess why I'm a knitter now

brittle pasture
#

not because it's easy, but because ||we thought it would be easy||

narrow owl
#

ok imma try building a new fish pond

#

and using new seaweed

brittle pasture
#

shouldn't need to trash the pond, but do trash the seaweed

narrow owl
#

k\

#

OMG IT WORKS

#

HOLY SHIT

#

I DID IT

#

THANK YOU GUYS SO MUCH!!!!

autumn tide
narrow owl
narrow owl
ornate locust
#

When snow absolutely doesn't work with schedules

#

Or at least it's not for me

ornate locust
#

I guess I can just change the entirety of winter schedules to not have reading outside.

vernal crest
vernal crest
#

I do remember someone else having issues with population gates not working before but not what ended up happening

#

Maybe search the channel for "population" or "gate"?

brittle pasture
narrow owl
#

oh now i see how that screwed it up

#

stardew modding is like the most intuitive and unintuitive thing at the same time

ornate locust
#

When conditions work fine in general

narrow owl
#

comedic gold lmao

ornate locust
#

They're just set too early for the game to know it's snowing for some reason

#

Hmmm

#

There's a GSQ for tomorrow's weather...

#

In world state field

#

(Love seeing reference materials on tiny a cell phone screen)

autumn tide
#

hey! do dialog commands work in quest reaction dialog?

uncut viper
#

should do

ornate locust
#

They should, but if someone uses a mod like Mail Services to turn in items, they may not see the dialog.

#

So a "talk to person" end objective or a warning would be safest to ward that iff

autumn tide
#

hmmmmm alr!

#

thanks!

vernal crest
#

Argh I cannot get these incubation times right

#

Ah ha

#

Night time you sneaky creature

ornate locust
#

Pushing a gsq through a flag might be too annoying to keep a book dry. God I hate schedules

tiny zealot
#

the absolutely cursed nighttime where hours have 100 minutes (because time of day is stored as an int and that part of the code just does newtime - oldtime)

ornate locust
#

This is why Gunther is missing so many books, all lost in the snow

vernal crest
#

I keep forgetting to update my default field in the config so I have opened and closed my Stardew 6 times in short succession

vernal crest
#

Time for number 7

autumn tide
#

7th times the charm!

vernal crest
#

nooooo

#

I forgot to update the i18n

ornate locust
#

F

vernal crest
#

7th time is not, in fact, the charm xD

autumn tide
#

..8th times the charm?

coarse pine
#

hiii! I'm trying to mod on mobile and I waa wondering if anyone could give a quick check to my mod list and see if anything doesn't work on mobile or doesn't have the requirements or something? Cus I can't see the error message it scrolls too fast 😅 Thanks :)

urban patrol
#

you should check on the mod pages themselves to see if they’re android compatible

coarse pine
#

okay thanks

urban patrol
#

go to the mod page and see what it says about android compatibility

#

!androidsmapi in general we can’t really help with android modding, nor is this the right channel

ocean sailBOT
#
Android SMAPI

We are not able to provide support if you run into trouble or compatibility issues with Android SMAPI; please use the discord linked on the Android SMAPI github.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. Please see the wiki instructions for more information regarding installing the unofficial Android port of SMAPI for Stardew Valley 1.6.

Do not harass mod authors to make Android specific compatibility patches.

urban patrol
#

it’s okay! now you know

autumn tide
#

hmm what's the command for asking the bot which of multiple options you should do?

urban patrol
#

period choose

autumn tide
#

thanks!

vernal crest
#

I thought this would be easy 😭

#

Now my incubators are ready 20 minutes after the day starts

#

Oi claude go to bed! I don't have nitro anymore so I can't threaten you with a chancla but pretend I am!

urban patrol
#
    {
        "Action": "EditData",
        "Target": "Data/Events/ArchaeologyHouse",
        "Entries": {
            // edwin 7 hearts - apology for being rude
            "{{ModId}}_edwinhearts7/Friendship EdwinPayne 1750": "continue/22 13/farmer 18 14 1 EdwinPayne 22 10 3/skippable/animate EdwinPayne false true 120 24/move farmer 4 0 1/move farmer 0 -1 0/pause 1800/stopAnimation EdwinPayne/faceDirection EdwinPayne 2/animate EdwinPayne false true 120 19/pause 200/speak EdwinPayne \"{{i18n:edwinhearts7.0}}\"/question null \"{{i18n:edwinhearts7.1}}\"/pause 200/stopAnimation EdwinPayne/animate EdwinPayne false true 120 18/pause 500/speak EdwinPayne \"{{i18n:edwinhearts7.2}}\"/stopAnimation EdwinPayne/move EdwinPayne 0 2 2/pause 500/speak EdwinPayne \"{{i18n:edwinhearts7.3}}\"/pause 1000/speak EdwinPayne \"{{i18n:edwinhearts7.4}}\"/pause 500/speak EdwinPayne \"{{i18n:edwinhearts7.5}}\"/question fork1 \"{{i18n:edwinhearts7.6}}\"/fork notForgive/pause 500/emote EdwinPayne 20/speak EdwinPayne \"{{i18n:edwinhearts7.7}}\"/faceDirection farmer 2/addItem Book_Friendship/itemAboveHead (O)Book_Friendship/pause 1200/faceDirection farmer 0/end",
            
            "notForgive": "friendship EdwinPayne -125/pause 500/animate EdwinPayne false true 120 40/emote EdwinPayne 28/pause 1000/speak EdwinPayne \"{{i18n:notForgive.0}}\"/pause 200/stopAnimation EdwinPayne/faceDirection EdwinPayne 0/move EdwinPayne 0 -5 0/end",
        }
    },```
i need another set of eyes--any reason why this event wouldn't be triggering?
#

i can shove it in the validator but it's only 1 event so not sure how helpful that would be

vernal crest
#

Is it working with debug ebi?

urban patrol
#

yep

tiny zealot
#

releasing a mod is literally the worst, my heart rate is spiking

urban patrol
#

i've had two reports about it. the first i assumed they accidentally skipped it, but the second i went oh i'm the problem

urban patrol
uncut viper
#

your npc isnt modid prefixed?

urban patrol
#

no, this event is from february when i did Bad Things

urban patrol
#

i plan to rework things and change all my internal IDs, but haven't yet

vernal crest
urban patrol
#

i only have reports, and only tested it via debug ebi--but let me go try to trigger it manually, good call

#

yeah it triggers fine for me

#

i force fed him books until he was 8 hearts and then it triggered as soon as i walked into the library

#

let me request a log with patch summary

obtuse finch
#

What's the specific code for dialogue trigger when NPC have (2/4/6/8) hearts?

vernal crest
# urban patrol yeah it triggers fine for me

My ~guess~ is that they aren't actually high enough hearts for it, so try to get them to check for that too. The only way I can remember to do that right now is LA but a patch summary might have that info? And there's probably a console command for it? There's definitely the debug gq option too.

livid kite
urban patrol
vernal crest
urban patrol
#

ah

vernal crest
obtuse finch
vernal crest
livid kite
urban patrol
vernal crest
# livid kite Oh? I didn't know that.

Yeah unfortunately unless EL has had an update I don't know about recently, it only checks for the aliases. Which is a real barrier in the way of my trying to make everyone stop using aliases xD

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 47 C# mods and 40 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

vernal crest
#

Maybe they skipped it by mistake or they didn't realise what it was

livid kite
uncut viper
#

the aliases are the pre-1.6 versions

urban patrol
#

yeah, could be. i told them how to debug ebi at least

vernal crest
urban patrol
#

the other report was on android so i wrote it off

vernal crest
#

(Except for people who are making mods post 1.6 who are still using aliases)

vernal crest
#

(This is why I always try to recreate reported problems haha)

hard fern
#

Yeah unfortunately since im writing my events in the new format none of them will be visible with event lookup — so im having to write my own event guide by hand

urban patrol
#

i just had them create a new save and test it manually and yep it triggered for them, and they admitted they probably accidentally skipped it

#

so that's a relief at least but i am shaking them a little bit lol

livid kite
# vernal crest Yeah, you can *ONLY* see pre-1.6 events

~~Hmmmm, now I'm getting confused cause I can see Reyla's event just fine with event lookup, and I'm sure I'm doing the post 1.6 method. ~~ then again I don't know the full technical details/names of things, so I'm probably just saying things and not really understanding what I'm saying. Luwak_Sad_Emoji

vernal crest
livid kite
#

I didn't mean to beat myself up, just realize I need to study the code a bit more the help others puffer_heart

#

The second one

vernal crest
#

Then you are using the pre-1.6 aliases (the ones I am trying to stop people from using because they are deprecated and hard to read) which is why Event Lookup is working for your events.

livid kite
#

Oh?! Then tomorrow I'll change my events conditions to the post 1.6 method. lgxNOTES

#

Remind me in 10 hours to change my event conditions to the post 1.6 method, please.

patent lanceBOT
#

Got it, raffiejohn (#6936717) (10h | <t:1762181169>)

hard fern
#

the thing that bugged me about the old aliases were that a lot of the letters didnt even match what the actual condition was XD
i get f = friendship and t = time, but.. j = days played????

livid kite
uncut viper
#

well theres only 26 letters

hard fern
#

😔 they should add more to the alphabed

dusky sail
#

j = journey. For the length in days of your journey so far. Obviously /joke

devout otter
#

(I have strong compulsion to mimic vanilla so it's difficult for me to switch to post-1.6 as long as vanilla still uses the deprecated ones.)

obtuse wigeon
#

I was going to ask what the reason behind the change was besides readability and future proofing, but it seems that the future is now with j = days played

uncut viper
devout otter
#

I put i18n inside String that uses LocalizedText.

uncut viper
#

clearly you need to start using Strings/MyStrings, Strings/MyStrings.zh, Strings/MyStrings.ko...

devout otter
#
            "Action": "Load",
            "Target": "Strings/DolphINaF.MarinerMermaid",
            "FromFile": "i18n/{{Language}}.json",
            "When": {
                "HasFile:{{FromFile}}": true,
            }
        },``` Synergy!
brave fable
#

i'm sure with logographs we could have the best of both worlds. why not MyEventId/日 30/!雨

hard fern
#

wow.

brave fable
#

thousands of possible commands. the world is your oyster

obtuse wigeon
#

Those just look like empty boxes to me, I'm guessing it's either chinese or another language from further east than poland

brave fable
hard fern
#

what about 彼氏 サム

obtuse wigeon
#

Looks like a spider wearing glasses, 4 empty squares with a space in the middle

#

my fav language

brave fable
#

you may need to install some language packs on windows, or whatever you're meant to do on linux SDVdemetriums

uncut viper
#

also i did find one place in vanilla that uses a non-alias precondition: the event where Willy gives you a training rod uses !Skill

obtuse wigeon
#

Thing is I thought I fixed it by installing around 10 languages, 2 of which were Nerd Fonts which have many none language symbols, seems I didn't do it right XD

brave fable
#

add japanese to the list haha

hard fern
#

maybe i should translate my own mod

#

nvm

obtuse finch
#

What's the code for selecting a randomized dialogue in a pool so it won't tied to specific day like Mon, Tue, etc?

obtuse finch
hard fern
obtuse finch
hard fern
#

But for regular daily dialogue it's all the same

obtuse finch
#

suffice?

vernal crest
#

Marriage dialogue is not different for how to randomise or use i18n, it's only different in which dialogue keys are used and when.

vernal crest
obtuse finch
#

I now know not to do that

hard fern
#

Pls don't use chatgpt for anything

obtuse finch
#

yep, gotcha

hard fern
#

It has no idea how to do things properly, and people sometimes come here asking why their mod doesn't work when it's been coded with chat gpt

#

( SDVpuffersweats admittedly ive seen very funny, but still very incorrect formatting)

dusky sail
#

(Important context here is that i translate my own mods)

hard fern
dusky sail
#

Well now i feel like i should maybe inspire you not to give up

urban patrol
#

is there anything that lets me shake the farmer during an event? or a way to fake it? apparently the event command is only for NPCs 😔

drowsy pewter
#

grab them by the shoulders

brave fable
#

you want startJittering and stopJittering

urban patrol
#

omg lifesaver

#

i had half convinced myself that i imagined the farmer ever shaking

drowsy pewter
urban patrol
#

if you have a crush on harvey there's other ways to spend time with him!

jolly light
#

I'm wondering if there are any frameworks that facilitate boots definition?

worthy ermine
#

or a zombies

royal stump
obtuse finch
proud wyvern
#

it's the , at the end of line 4

#

and then line 13, and 22

edgy parrot
#

how you guyz make mods

vernal crest
#

That indentation is making it really hard to read (I hope it's properly indented in your actual .json file!) but actually it's just upset because you only put a couple of blocks into it instead of the entire file. It thinks that the curly brace on line one is the one that encloses an entire json file, so then it thinks the closing curly brace on line 5 is the end of the json file and so it thinks there shouldn't be a comma after it.

edgy parrot
#

by what

proud wyvern
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.

vernal crest
#

You can see once I added those extra bits it stopped complaining.

vernal crest
vernal crest
# edgy parrot how you guyz make mods

Mostly by writing json (that stuff you can see in my screenshot) using a text editor like Notepad++ or Visual Studio Code. It doesn't need programming a lot of the time. It's basically just fancy form filling.

vernal crest
edgy parrot
vernal crest
edgy parrot
#

you should draw it by yourself?

obtuse finch
woeful lintel
vernal crest
vernal crest
vernal crest
#

You'll need to add it everywhere you're referencing your NPC, too. So all their texture loads, schedule, dialogue etc Targets.

hard fern
#

😔 the assets won't draw themselves (i wish they'd draw themselves while i sleep)

vernal crest
edgy parrot
#

I will just see and decide

vernal crest
edgy parrot
#

@vernal crest good thanks man

obtuse finch
gentle rose
#

guys do you like my romanian translation? scarlett said it's 100% correct

obtuse finch
gentle rose
#

(I am laughing at my own mod btw, this is the dialogue testing mod I made for my framework and I'm now using it to test i18n haha)

hard fern
#

oh it just dawned on me thats what the lines are for lol

#

(i realized before you actually said it, btw)

#

😔 i promise im perceptive

woeful lintel
#

Is there a way to propagate errors thrown inside this?

[OnDeserialized]
private void Validate(StreamingContext context)

When I catch exceptions from JObject.ToObject<MyClassWithValidation>(), all I get is Exception has been thrown by the target of an invocation.

#

Here's the traceback I get from these errors:

   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Newtonsoft.Json.Serialization.JsonContract.<>c__DisplayClass57_0.<CreateSerializationCallback>b__0(Object o, StreamingContext context)
   at Newtonsoft.Json.Serialization.JsonContract.InvokeOnDeserialized(Object o, StreamingContext context)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
   at FurnitureFramework.Data.FType.SpaceRemover`1.ReadJson(JsonReader reader, Type objectType, T existingValue, Boolean hasExistingValue, JsonSerializer serializer) in /mnt/data/Code/SV Mods/FurnitureFramework/FurnitureFramework/Data/FType/FType.cs:line 325
   at Newtonsoft.Json.JsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
#

I do get the errors that are thrown inside the JsonConverters of my data model's properties, which is a good start

lucid mulch
woeful lintel
#

not sure how that would help?

#

FFthrows an error inside the Validate method because there's an issue with the data of the json it's parsing, and when I want to catch this validation error to skip a single Furniture Type of the pack (instead of the default behavior which is to throw away the whole Pack object), all I get is "Exception has been thrown by the target of an invocation." but I want to get the message I actually passed into the validation error so that I can print it out to help pack authors with debugging.

lucid mulch
#

what type is the exception being thrown, because "Exception has been thrown by the target of an invocation." doesnt mean shit, and does the exception have an InnerException field/property

woeful lintel
#

Oh shit, didn't think about checking the inner exception. The other instance where I needed to do that, the outer exception was also logging the inner one, so I knew it was somewhere in there

#

thanks for the tip

valid folio
#

Hi, just a quick question, is it possible to use context tags in recipes? For example,

With ID
"infusion_ron": "{{ModId}}_Rum 1 {{ModId}}_vanilla_pod 6/9999 9999/{{ModId}}_infusion_ron/null/{{i18n:infusion_ron.DisplayName}}"

With context tag
"infusion_ron": "{{ModId}}_Rum 1 vanilla_item 6/9999 9999/{{ModId}}_infusion_ron/null/{{i18n:infusion_ron.DisplayName}}"

Instead of using the vanilla item's ID, could I use its context tag instead? That way, players could use any vanilla item from any mod that has that context tag, right?

calm nebula
#

Only with spacecore

valid folio
#

Do I just put the context tag and that’s it if I’m using Spacecore? I have no idea if I need to adjust anything.

drowsy pewter
#

you'll want to look for cookingrecipeoverrides on the spacecre author guide page

#

its an entirely different model

#

you need both the vanilla recipe data and the spacecore override

valid folio
# drowsy pewter you'll want to look for cookingrecipeoverrides on the spacecre author guide page

I had just drafted a message to ask you something related to this, but I preferred to make the specific question on the server haha. I’ll take a look.

Related to this, if a recipe has already been learned, is it possible to modify it? For example, if I change the item ID of one of the ingredients, or the quantity required, or in this case swap the ID for a Context Tag, I noticed that once the recipe is learned it still requires the originally learned ingredients and amounts, making it unusable after the change I mentioned.

valid folio
drowsy pewter
#

If you see the original recipe, that means your change has been done incorrectlt

#

Well it's true it's only for the vanilla game recipes, but the same method is used for your own recipes

#

If you want to wait, you can use Cornucopia Cooking Recipe as a reference when it's released

valid folio
drowsy pewter
#

I can tell you that the recipe data does not persist in the game files at all

tiny zealot
#

this sounds like maybe you changed the item's id without also changing the recipe?

drowsy pewter
#

If you had a problem, it was due to something else

valid folio
valid folio
drowsy pewter
#

I appreciate that you're trying to have a convo here, but I would prefer that you turn off the ping button if you want to respond with emojis and stuff

obtuse finch
#

Is it possible to warp NPC off the map? Like when they reached an area, the mini map won't show their logo and you can no longer interact with them.

obtuse finch
drowsy pewter
#
            "Action": "EditData",
            "Target": "Mods/Bouhm.NPCMapLocations/Locations",
            "Entries": {
                "Cornucopia_WaitingRoom": {
                    "Exclude": true
                }
            },
            "When": {
                "HasMod": "Bouhm.NPCMapLocations"
            }
        },```
#

Warp them to a location that has this in the data

tiny zealot
#

yes, you can send NPCs to an unreachable map to make them inaccessible. i don't know how it interacts with NPC Map Locations or uiis though

drowsy pewter
obtuse finch
drowsy pewter
#

You can put almost anything in any json

valid folio
patent lanceBOT
livid kite
#

Thank you!

frosty hull
#

Hello brother, sorry for the late reply
the laest FF 3.1.1 it need SMAPI 4.3
but currently my SMAPI Android it still 4.2.1

woeful lintel
#

the 4.3 SMAPI requirement is just from the manifest, I just uploaded a new FF version that has a lower required version (4.2), but it can't work on mobile because of what I mentioned in the previous message.

lucid iron
#

Narathip do you plan to bump the minor version at some point?

#

I choose to require 4.3 despite mobile because that minor had important security feature

woeful lintel
lucid iron
#

Usually I just tell mobile users to edit manifest themselves

frosty hull
tiny zealot
#

@scenic tundra this is the channel to use for guidance, etc. about making mods.
you can make new machines pretty easily with just content patcher (so just json files and image assets, no programming involved)

scenic tundra
#

Interesting

tired relic
tiny zealot
#

it should be, but i don't know a ton about how machine data works

#

whatever vanilla machine data can't accomplish, there is at least one framework that can fill the gap

#

so the end result is you still only need to be able to put together data

inner harbor
elfin kindle
#

This is "Therpy Box" where my NPC is sent to for a couple hours during their schedule, the farmer can't go there and it wont pop up on the minimap (shouldn't anyways but I haven't tried it with the NPC show on map mod)

autumn tide
#

uhh does patch reload also update maps?

#

asking for friend that def isn't me bc my map is def working after DAYS of debugging it-

elfin kindle
#

Uuuuh i've only tried it with things that refer back to text in .json files, not whole sprites and stuff

autumn tide
#

hmmm okay, i mean the map tmx files

elfin kindle
#

Ah I can't remember if it has... So yeah I got no clue

autumn tide
#

gotcha lol, thanks for trying!

#

maps are so hard :(

elfin kindle
#

Maps are difficult, what are you struggling with?

autumn tide
#

...i have no clue tbh

#

errors

urban patrol
elfin kindle
#

Hm

autumn tide
#

i'm just clueless

#

and a tiny bit dumb

elfin kindle
#

Nah man, maps took be ages and a lot of headaches to get to work and I have pretty simple ones

autumn tide
#

the error:```
[Content Patcher] Can't apply patch (CP) MY MOD?!?!?!?!??!?!?! > {{ModId}} Events > Code/Events.json > OG Basement Loader to Maps/LewisBasement:
StardewModdingAPI.Framework.Exceptions.SContentLoadException: (CP) MY MOD?!?!?!?!??!?!?! loaded map 'Assets/Maps/LewisBasement.tmx' with invalid tilesheet path '../../../../Content (unpacked)/Maps/townInterior_2.png'. Tilesheet paths must be a relative path without directory climbing (../).
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.FixTilesheetPaths(Map map, String relativeMapPath, Boolean fixEagerPathPrefixes) in E:\source_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 417
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadMapFile[T](IAssetName assetName, FileInfo file) in E:\source_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 263
at StardewModdingAPI.Framework.ContentManagers.ModContentManager.LoadExact[T](IAssetName assetName, Boolean useCache) in E:\source_Stardew\SMAPI\src\SMAPI\Framework\ContentManagers\ModContentManager.cs:line 99
at StardewModdingAPI.Framework.ModHelpers.ModContentHelper.Load[T](String relativePath) in E:\source_Stardew\SMAPI\src\SMAPI\Framework\ModHelpers\ModContentHelper.cs:line 64
at ContentPatcher.Framework.PatchManager.ApplyLoad[T](LoadPatch patch, IAssetName assetName) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\PatchManager.cs:line 585.

urban patrol
#

patch reload should apply to maps as well so that’s why i asked

elfin kindle
#

Oh you got the climbing issue

urban patrol
#

!mapfixer

ocean sailBOT
#
Stardew Valley Map Fixer

There is a map fixer tool by Spiderbuttons that can fix common map errors such as tilesheet climbing.

Upload your map file(s) as .tmx and click FIX to run. Your fixed maps will be downloaded as a .zip file and will need to be extracted in order to replace your old versions.

Feel free to let Spiderbuttons know if you run into an issue it can't fix.

autumn tide
#

oh yeah, doesn't button have something for that?

elfin kindle
#

I had that issue sooo many time

autumn tide
#

i just can't read the big blocks of text

elfin kindle
#

Dude it's overwhelming, i get it

#

Usually its the first line thats fucky wucky and then it ruins all the other stuff that also spits out errors

ornate trellis
#

anyone know why my npc could be invisible during the wedding event? i made sure the wedding sprites are in the right place on the sheet and the wedding works normally besides her being freaking invisible...

urban patrol
#

if it helps, when reading your log the important stuff is usually at the beginning of the error

urban patrol
#

all the “at” stuff is just telling you where in the game code it failed

autumn tide
#

i have like paste the text elsewhere and highlight it to read it properly without my eyes skipping the lines-

urban patrol
ornate trellis
#

i thought i counted wrong on the position on the sheet but i recounted several times now

urban patrol
#

hmmm

#

can you patch export your spritesheet

autumn tide
#

yayyy console isn't mad at me!

ornate trellis
#

huh

#

i get bnack into game to do that and since its wedding day the event triggers again and shes there? wth

urban patrol
#

welp

ornate trellis
#

but shes not in her wedding attire

#

dude what

urban patrol
#

that’s bizarre

#

is this testing on a new save

ornate trellis
#

huhh when the showframe command happens it works?

#

oops double image

#

aND YEAH ITS A NEW FILE

#

...

#

hands pls

autumn tide
#

can't help with technical stuffs but your npc looks so cool :)

ornate trellis
#

i wonder if i kinda speedran it too fast and the game is confused?

urban patrol
#

yeah i get bugs during events sometimes when i have fast forward on

ornate trellis
#

can i jsut debug ebi NPCname to redo the wedding or does it work differently from other events

urban patrol
#

i tried to look it up but the wiki is down

ornate trellis
#

hm, i tried and nothing happens, dang

#

oh wait

#

nope nervermind

#

oh well....guess thats what my testers hopefully will tell me

autumn tide
#

okayyy i keep running my map files through button's map fixer thing but console is still angry about climbing?

#

i am about to lose the feeble remnants of what used to be my sanity

ornate trellis
#

ok and i guess i didnt write a pendant accept dialogue thats why they do standard but oh well.

urban patrol
ocean sailBOT
#

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

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

calm nebula
#

Yeah occasionally if you have fast animation or fast forward events fuck up

autumn tide
#

AAAAAARRRRRRGHHHH MAPS ARE SO HARD

ornate trellis
#

i test on a minimal save but i did skip days in between(tho not directly to skip to the wedding) so maybe it was some CJB shenanigans who knows

urban patrol
#

wiki finally loaded and debug engaged NPCName sets a wedding for the next day

ornate trellis
#

ahhh

autumn tide
#

..debating just sending my map files here bc i am CLUELESS

urban patrol
#

after you run them through the map fixer, do you then unzip the download it gives you and replace your map files with the unzipped ones?

autumn tide
#

yeah?

urban patrol
#

just checking

#

it feels stupid to run through every step but everyone makes silly mistakes sometimes

autumn tide
#

hmmm dophin is not a fish did offer to help me with my mod earlier.. might just send it them for help-

urban patrol
#

oh did you ever use vanilla tilesheets from outside of the Maps folder? like furniture.png?

autumn tide
#

no

#

all in the maps one, i originally had the tilesheets in the file but was told to remove them, and it displayed fine, then i came back and it did not display correctly? so i put them back and it displayed correctly again

#

i genuinely have no clue what i even did 😭

#

here's a zip of my map stuffs-

uncut viper
#

tilesheet climbing also applies to tsx files

urban patrol
#

yeah that’s because when tilesheets are embedded, they have a filepath that tells the map where to find the tilesheet

autumn tide
#

oh

tiny zealot
uncut viper
#

my map fixer only accepts tmx files

autumn tide
#

OH

uncut viper
#

it will not fix tsx files and says it skips tsx sources in its log

autumn tide
autumn tide
uncut viper
#

"DO NOT REMOVE THE TSX FILE" is also only treating a symptom and not a cause as tsx files are not required (though they can be used to transfer over tile animations)

tiny zealot
#

let me know if you have any questions about it

uncut viper
uncut viper
#

im saying they are not required so if you embed the tilesheets you can remove the tsx files

autumn tide
#

okay..? still a bit confused, how might i embed them?

#

..very new to maps so bear with me lol

uncut viper
#

my "symptom and not a cause" comment is because telling yourself not to remove them is skipping the reason why in this instance removing them breaks things

#

and can come back to bite in other situations

uncut viper
#

when you added the tilesheet to the map it asked if you wanted to embed the tilesheet and you did not select that, so now you need to find the button around where the tilesheet tiles are shown that says "Embed tileset..." or whatever

autumn tide
#

got it

#

!tilesheetclimbing

ocean sailBOT
#

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

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

final pendant
#

Does this add the solar panel recipe to Pierre's shop or did I definitely make some of that up? Can't test it right now and I think the IDs might be wrong.

brittle pasture
#

the item id is wrong (solar panels are (BC), not (O))

#

(O)231 is eggplant parmesan

final pendant
#

Haha, oops, thank you! Is the format correct beyond the error? I simply call the item and add recipe in brackets?

brittle pasture
#

fix that though and I think that should work

final pendant
#

I appreciate the help!

quick sand
#

Hello people. Does anyone know the difference between 0 (stabbing sword) and 3 (slashing sword)? im looking through data/weapons and i cant remember them being different. seems 0 for smaller swords like katanas and 3 for bigger swords like claymore

brittle pasture
#

in the current version there is no difference

#

iirc back in development the stabbing sword's special attack was planned to be a thrusting attack (which some mods bring back)

quick sand
#

ooooh nice. thanks

maiden citrus
#

hi, i'm currently trying to write code in which, for each object in the players current location - do a thing

however i'm receiving an error

code:
foreach (Object stones in Game1.player.currentLocation.objects)

error:
Cannot convert element type 'StardewValley.SerializableDictionary<Microsoft.Xna.Framework.Vector2,StardewValley.Object>' to iterator type 'StardewValley.Object'

#

if anyone has any advice i'd appreciate it!!

uncut viper
#

currentLocation.Objects.Values

maiden citrus
#

thank you!!!

frosty gate
#

Hi! Developer of Stardew Access here (pinging @bitter kestrel to keep her in loop).

For those who don't know, Stardew Access is a mod that adds features for visually impaired folks. At the moment, it makes 90+% of the vanilla game accessible, minus some mini-games, combat, etc. But mods are a big part of the game, so I've been working on expanding the mod's APIs for mod support and have recently released a beta version of the mod. So I'm reaching out here to kind of spread awareness about the mod and how to make mods accessible.

Most mods that add contents like items and such are already compatible with stardew access and essentially what needs to be made accessible are Custom Menus and Custom Maps.

#
  1. For custom menus, the mod looks for ClickableComponents from the allClickableComponents field then detect which one is hovered and speak its content present in ScreenReader* properties (also uses reflection to detect fields of type ClickableComponent). PathosChild added IScreenReadable interface last year to game which has these properties. Look for instructions here - https://github.com/stardew-access/stardew-access/wiki/MenuAccessibility.
  2. For maps, currently the mod uses a TileData property, TileDesc, but @drowsy pewter suggested in using an "accessible json file" that can be edited via Content Patcher and Stardew Access can listen to this file as needed, and this method is more in tune with how Stardew Access currently handles most vanilla game tiles so I'll move to this method shortly. But I have question regarding this, from what I've researched I need to create a Content Pack with a empty/default json and CP modders will edit/append to this file, how would they do that?
  3. The mod author wiki can found here - https://github.com/stardew-access/stardew-access/wiki/Introduction. Let me know what part of this wiki can be improved.

I've gone ahead and attempted to make GMCM and Spacecore (PR#545 - https://github.com/spacechase0/StardewValleyMods/pull/545) and Central Station (PR#1153 - https://github.com/Pathoschild/StardewMods/pull/1153) accessible as a PoC. Although Central Station's patch will be outdated soon.

And I have another question regarding the GMCM & Spacecore patch, how do I access Stardew Access' API in SpaceShared? SpaceShared/UI/Element to be specific?

So yeah, ping us when needed, it'll be nice to have more mods accessible, and if you have any suggestion on how Stardew Access handles these stuff, let me know! And apologies for this wall o' text.

autumn tide
frosty gate
#

I'm glad!

tribal grail
#

Hello, folks! I am trying to get started on making Stardew Valley mods. The documentation on events is extensive, but I am having trouble figuring out how to interact with the game. For my first project I am trying to make the transfer funds option from the Town Ledger in Lewis' house available from the in-game menu, to reduce the friction in multiplayer trading. How would I go about finding whatever method the game calls for that menu?

urban patrol
#

!decompile have you decompiled the game yet?

ocean sailBOT
gentle rose
# frosty gate 1. For custom menus, the mod looks for `ClickableComponents` from the `allClicka...

Hi, when I finish making the menu for my current mod, would it be okay to ping you to make sure it works with stardew access then? and should I ping both of you?

the mod is entirely visual (portrait replacements framework) so it’s probably not super high priority but I would still like accessibility support wherever I can. I would also love to hear from you if there’s anything else that you would like to see in a portrait replacer framework involving visual accessibility (or any other kind), (like whether having an option for bigger portraits would be helpful/desirable, etc etc)

gentle rose
ornate locust
#

So let's say I put the Wizard at the Winter Star celebration. And he isn't where I put him, he's somewhere else. How do I figure out what's going that and/or shove his ass into the right position?

gentle rose
#

patch export of the festival data is a good start

#

and also sending a log here