#making-mods-general

1 messages Β· Page 106 of 1

old edge
#

I think you have to set day tile and night tiles

slender badger
#

Yeah, that was gonna be my suggestion too SDVpufferthinkblob

old edge
#

Map property

devout otter
#

Oo there's something like that?

#

Okay, found it on the wiki. Thanks, all!

foggy kiln
#

I have added minecarts to my map (CP), and the teleportation feature has been completed. However, when I click on the minecart in my map, I can see the teleportation points of my map, which should theoretically not be visible. I have not found any explanation in the CP files, or perhaps there is one but I just didn't see it?

royal stump
blissful saddle
#

rereading the GMCM I just noticed one does not need a config to work with it. You can do it if you have another place to store the options, like a ModData

#

this way, if my mod should be usable and modifiable only on a loaded game, I can bypass the necessity of an external config to avoid confusion

#

of course this makes GMCM a hard requisite, but it works better with a GMCM right now anyway

lucid iron
#

what's the behavior if someone tries to edit settings from main menu then

woeful lintel
#

you have an option in GMCM to prevent that

latent mauve
#

I don't think that GMCM option is available if you aren't using C#.

teal bridge
#

The GMCM option can make settings only editable from title screen, I don't think it can prevent them from being edited on title screen.

next plaza
#

Got a DM saying DGA isn't compatible with SMAPI 4.1.7... you don't say?

past knot
#

Hi hi everyone! Would anyone know how to do the json for crops?

crimson meteor
#

A question, does anyone know how I can solve this problem?

round dock
#

Hi Casey, just wanted to ask what it meant when the new feature said β€œadded new spouse reactions without dialogue”. Thank you! bongo_cat_heart

next plaza
#

Don't you 😭 me 6480, it doesn't have hardly any features CP + SpaceCore doesn't have at this point

blissful panther
round dock
#

uhhhh wait lemme check the new patch update

next plaza
#

The only mod updates I've done recently are SpaceCore, and that didn't have an entry like that SDVPufferThink

frigid hollow
#

that's from the 1.6.14 patch ithink

next plaza
#

Oh

tender bloom
round dock
#

Actually not directed at Casey per se, but anyone who might know SBVShyRen

next plaza
#

Hmm, to spoil the spouse reaction changes or not

#

I'm aware what they are, even looked at the code changes to try and root out a bug that occasionally happens

round dock
#

Might have to play the game to find out myself, thank you tho! SDVpufferheart (i’m still stuck in 1.6.8)

next plaza
#

RIP

round dock
#

Maybe it’s a good time to update GooseGroove

next plaza
#

How are you gonna play S&S

#

(I don't know of any other mods that are 1.6.9+ exclusive πŸ˜… )

drowsy pewter
next plaza
#

Ahhhhh

#

I thought it was because of my refusal to update DGA πŸ˜›

drowsy pewter
#

I actually think I missed the DGA era while I was away from modding

lucid iron
#

casey u know about this right, warning in the save serializer transpiler

[10:57:51 WARN  SpaceCore] GetLoadEnumeratorMethods: Found 5 transpiler targets, expected 4
[10:57:51 TRACE SpaceCore]     <getLoadEnumerator>b__1 Void <getLoadEnumerator>b__1()
[10:57:51 TRACE SpaceCore]     <getLoadEnumerator>b__5 Boolean <getLoadEnumerator>b__5(StardewValley.Buildings.Building)
[10:57:51 TRACE SpaceCore]     MoveNext Boolean MoveNext()
[10:57:51 TRACE SpaceCore]     <FindSaveGames>g__TryReadSaveInfo|45_1 StardewValley.Farmer <FindSaveGames>g__TryReadSaveInfo|45_1(System.String, System.Exception ByRef, <>c__DisplayClass45_0 ByRef)
[10:57:51 TRACE SpaceCore]     <FindSaveGames>g__TryReadSaveData|45_2 StardewValley.Farmer <FindSaveGames>g__TryReadSaveData|45_2(System.String, System.Exception ByRef, <>c__DisplayClass45_0 ByRef)
#

it functions fine though

round dock
#

me neither, all I’ve done is mod shop and hope that I get hit with the will to play GooseGroove

drowsy pewter
#

Casey you could refuse to update spacecore and i would support you

next plaza
lucid iron
#

im on linux

#

so yes maybe a unix thing

next plaza
lucid iron
#

i'll go check my decompile for this method hrm

next plaza
#

Completely unrelated, but. grumbles something about computer restarting overnight

lucid iron
#

the uptime hokuhands

next plaza
#

When I looked at the log on my mac, it seemed like there was an extra method on SaveGame being targeted

#

Could I get a log?

#

(During work hours I'm connected to my work VPN on my mac, and so don't want to run SMAPI because update checks πŸ˜… )

lucid iron
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Unix 6.11.5.1, with 31 C# mods and 9 content packs.

next plaza
#

Yeah, <getLoadEnumerator>b__5 Boolean <getLoadEnumerator>b__5(StardewValley.Buildings.Building) doesn't exist on my windows build of SDV SDVPufferThink

blissful saddle
#

or created

#

could also try to use the unregister function to take it out when game is on title screen. but need to check if it would prevent it to be registered again when a game is loaded

next plaza
#

...There's definitely an extra inner class + method on the mac/linux build

#

(Easy to get one on windows for me πŸ˜› )

#

Wait, actually, I'm not on the latest build in my dev workspace

#

grumbles something about steam branches

lucid iron
#

i think the new inner class is this bit

Utility.ForEachBuilding(delegate(Building building)
{
    if (building?.GetIndoors() is Cabin cabin2)
    {
        validFarmhands.Add(cabin2.farmhandReference.UID);
    }
    return true;
});
next plaza
#

Ah, yeah, it was - that^

#

In 1.6.14

lucid iron
#

unfortunately i cant check khloe's windows decompile

#

to see if its windows too

next plaza
#

I'm using ILspy and found it

#

(And also looked at the original source code and saw it wasn't conditionally compiled, and was very confused until I realized the steam branch I was on was a version out of date)

rancid musk
#

(If you meet the requirements you should ask pathos for decomp access.)

lucid iron
#

no i have access (to Pathoschild/StardewValley)

#

but if i attempt to go to your branch

#

it 404 on me

rancid musk
#

πŸ€”

lucid iron
#

i can see ur PR tho

brittle pasture
#

by the nine realms is platform specific code coming back

rancid musk
#

The heck GitHub

brittle pasture
rancid musk
#

Did you get access to the repo after I made my fork maybe?

brittle pasture
#

if you made it more than 5 months ago yes?

#

we are babby modders

lucid iron
#

i asked for access on august 1st

next plaza
#

I can reach the repo, but I think my access predates yours by a bit Khloe πŸ˜…

lucid iron
#

so yea maybe it doesn't automatically sync access with upstream

rancid musk
#

It sounds like the acl may have been forked at the time of forking then.

#

Wonder if I can update that

next plaza
#

Khloe I love how your PR says "Update to 1.6.11" and contains changes for up to 1.6.14 πŸ˜… (I know that's because you just added more commits later, but it's still funny to me)

lucid iron
#

yep warning is gone and serialization works as expected

#

thank bolbwawawa

next plaza
#

Not sure when I'll get around to releasing, but hey, it's fixed now

lucid iron
#

there's supposed to be .15 right

rancid musk
#

Hmmm. I don't see a way to sync the fork acl. Uh. React to my pr and ping me here I guess and I'll add you manually, with the reaction serving as evidence that you have access.

lucid iron
#

it can wait sleep

lucid iron
rancid musk
#

I'm not doing that with an open pr lol

lucid iron
#

ok i put πŸš€

rancid musk
#

I'm going to wait till after this work project to go deal with it but I'll definitely get to it today

next plaza
#

One day I'll theoretically pin a comment on SpaceCore telling people to post logs when they comment

#

(That day is probably not today)

rancid musk
#

One day people will theoretically read it

next plaza
#

I dunno, that one is a stretch

rancid musk
#

One day people will hypothetically read it?

next plaza
#

I still get serializer warning complaints sometimes, and I have a pinned comment for that

#

(Though they are much rarer since I pinned that comment)

tiny zealot
#

casey, where do you take bug reports (GMCM)? github?

next plaza
#

(Now that I noticed I accidentally disabled the nexus comments and fixed that anyways)

lucid iron
#

i vote for turning off your comment section

blissful panther
#

Time to disable comments and bugs on Nexus and move everything to GitLab so I get no bug reports at all.

whole raptor
#

Speaking of GMCM I really appreciate the buttons are editable by CP, no idea when it was added, but I just noticed that πŸ˜…

tiny zealot
rancid musk
next plaza
whole raptor
#

Wait... really? SDVpuffereyes Damn... I should pay more attention

tiny zealot
#

if you like, i can report it in a more permanent location instead of just on here, and/or check for duplicates

rancid musk
#

Child menus are so wonky in Stardew

next plaza
#

Pushed to github if you want it now

past knot
#

I'm pretty sure I've asked this before but it's definitely lost. Does anyone know how the json would go for a seasonal building?

lucid iron
#

you would have 4 pngs like
mybuilding_spring.png
mybuilding_summer.png
mybuilding_fall.png
mybuilding_winter.png

#

and do a Load with the season token

next plaza
#

I wonder if you even need the load, instead of doing something like {{InternalAssetKey: mybuilding_{{Season}}.png}}

past knot
#

Right! Okay got that. The other issue is it's not a farm building. Is it the same way

tender bloom
#

mybuilding_{{Season}}.png

lucid iron
#

internal asset key works too probably

tender bloom
#

Buildings that are not buildable are not real

#

They're just part of a map

past knot
#

Ahh

lucid iron
#

oh in that case you want seasonal tile sheets

tender bloom
#

In that case, reference spring_outdoors and similar for the right format

#

and then the game will switch them automagically

#

Look in Maps/ for a bunch of examples

tight rivet
#

Me: I'm no longer modding. Time to give my mods up for adoption

rancid musk
#

(You all realize you don't need to use CP tokens for seasonal farm buildings right? There is a vanilla feature for that.)

tight rivet
#

Me, two weeks later: I remember now why I made DNT

#

Back to playing my new favorite game: why are these minerals not showing up as caught? πŸ˜„

past knot
next plaza
lucid iron
#

i did think about DrawLayers

tender bloom
#

I had some idea there was a feature

#

I didn't investigate it

rancid musk
#

No I'm talking about SourceRect and SeasonOffset

next plaza
#

...How did I miss season offset

#

Well, my excuse is I haven't done a custom building in 1.6

calm nebula
#

How have you not done every type of mod, casey?

rancid musk
#

I use SeasonOffset for my sole content mod, Buildable Bathhouse.

calm nebula
#

/jk

next plaza
rancid musk
#

And I'm still proud of the little map I made for that mod

next plaza
#

Even NPCs - I had a custom NPC framework in the works back when Routine published theirs

blissful panther
#

@drowsy pewter Would you object if I wanted to add your giant crops mod as a dependency for a new, fairly quick/small mod I'm working on right now? SDVpufferlurk

It wouldn't be a hard dependency, but more of a "if you don't use this in conjunction, you're losing out" type situation.

tight rivet
#

Hm.. I wonder why Cape Stardew's minerals don't work but Visit Mount Vapius's do..

past knot
#

Nope I'm definitely lost πŸ™ƒ especially because I used tiled and I'm not exactly sure..

past knot
#

What would the "FromArea" and "ToArea" even mean if the sprite is just one png???

lucid iron
#

you can omit that if the sizes are identical Bolb

tight rivet
#

..yeah, that. It's basically saying "I want to copy from this area source, to this area on the target."

tiny zealot
past knot
#

That helps a bit more ^^

So in the json for this, it would be something like this?:

Action: edit image
Target: maps/{{season}}_{{modid}}_mapname
Patchmode: "replace"

lucid iron
#

no i thought u r doing seasonal tilesheets

#

in that case u would load all 4 to their own targets

past knot
#

Oh my gosh this is going to be a very stupid, very embarrassing question but

#

Was i suppose to make maps for each season...

lucid iron
#

can see how vanilla has

Maps/spring_town
Maps/summer_town
Maps/fall_town
Maps/winter_town
#

when you edit map, use spring_town (or spring_yourbuildingsheet)

#

game has special logic for tilesheets that start with season_

tight rivet
#

and the answer is that Cape Stardew doesn't use the same base name as it does the mineral name causing it to mismatch.

pine elbow
#

Hi I want to make a mod that adds the mountain dew drink to the game I'm new to this I don't know how to start if someone can help I appreciate it

tender bloom
#

!cp

ocean sailBOT
tender bloom
#

You’ll want to use this framework

#

And add a new item

#

[[Modding:Items]]

pine elbow
#

Thanks

tender bloom
#

You can make something edible and a drink, which you’ll probably want

crimson meteor
lucid iron
#

@tropic lichen

tropic lichen
#

ok cool

#

wouldnt that replace it though? or is there a way to make it not replace the flooring already there

lucid iron
#

You need to add new entries

#

But this is the way to do non replacing floors/paths

#

Check the unpack for examples

tropic lichen
#

ok

tight rivet
#

.. this is either a bug in the game or a weird mod interaction and I wish I knew which. Or where to talk about it @.@

tiny zealot
#

love to do a modest refactor to broaden my mod's config settings and get a hole in one (it all works correctly on the first build) SDVpufferparty

tight rivet
#

Oh, that's cool.

green patrol
#

Does extra machine config/content patcher have a way to exclude certain items from being processed into an item without defining a different item for that to be processed into?

#

kinda like how sweet gem berries are fruit but they can't be made into jelly/wine?

#

I know PFM had a field called "ExcludeIdentifiers" so just wondering if there's something similar

hallow prism
#

depend of the machine

green patrol
#

It'd be one I'm defining completely

hallow prism
#

some vanilla machines have rules to exclude things from here (seedmaker, crystalarium) by having a specific context tag

#

technically sweet gem berry isn't a fruit

#

(or at least, wasn't)

green patrol
#

so I'd have to go through and add a context tag to every item that I want to process?

brittle pasture
#

you can exclude tags with exclamation marks

hallow prism
#

no, to items you don't want processed

brittle pasture
#

and every item has an autogenerated tag corresponding to their unique id

hallow prism
#

you asked about items that can't go in stuff, not item that can go instuff

brittle pasture
#

that or add a tag to every item you dont want yeah

lucid iron
#

!id_<qualified id but lower case without ()>

hallow prism
#

maybe it'll be easier to answer with an example of what you WANT to do

lucid iron
#

check what the tag is for certain with lookup anything (datamining fields on)

green patrol
#

so the mod I'm converting atm is a kimchi mod. You turn all vegetables into kimchi except for wheat and rice

#

using a new machine called an onggi

#

I got it to turn all the vegetables into kimchi, but that includes the wheat and rice

hallow prism
#

then just accept vegetable outside of rice and wheat, and maybe a custom tag for people that want to exclude their custom vegetable

green patrol
#

this is the code I got rn

hallow prism
#

{
"Id": "ItemPlacedInMachine_Default",
"Trigger": "ItemPlacedInMachine",
"RequiredItemId": null,
"RequiredTags": [
"bone_item",
"!id_o_881"
],
"RequiredCount": 1,
"Condition": null
},

#

this accepts bone items except item 881 which is whatever i don't remember

green patrol
#

gotcha

#

think I'll make a custom tag, that way people can add other stuff to it if it's easier for them

#

tyvm :)

hallow prism
#

you can have both, the tag of rice/wheat and the custom one

#

(it may be easier than editing wheat/rice to add the tag, but of course each person have their preferred approach)

latent mauve
#

I'd honestly be surprised if there wasn't already a food/ingredient mod that adds a grain context tag to their items

#

More standardized context_tags are awesome for cross-mod support ❀️

tiny zealot
#

context tags my beloved

next plaza
indigo yoke
#

Selph! since you are alive atm, mind helping figure out this error? I am getting bug reports about this here....
19:58:36 ERROR ExtraMachineConfig Failed patching YACS. Detail: Null method for selph.ExtraMachineConfig

#

mhmmm

#

I see looking at the debug log now

#

welp time to go poke around your code to see if I can fix the patch for you

brittle pasture
#

I should have fixed it last night

#

Try updating EMC

indigo yoke
#

It's actually not me, I got two bug reports about it.

brittle pasture
#

(I could have sworn my log message specifically said to report to me if that error happens except of YACS)

#

(I'll make it more clear next update)

indigo yoke
#

so it's only visible when viewing the full log

lucid iron
#

why u gotta patch YACS

brittle pasture
#

right, I'm talking about the fact said user didn't read before reporting to you

brittle pasture
lucid iron
#

idk i think YACS should provide snail sashimi, its a core feature \s

#

still if u 2 r like, talking and all

#

wouldnt it be better to just expose api for moonslime

brittle pasture
#

(At this point I'll probably just remove the feature next update tbh)

lucid iron
#

defeated by clickCraftingRecipe

brittle pasture
#

(To be clear this is not YACS or anyone else's fault)

#

yeah

#

anyway I replied on the bug report telling them to update EMC, that should fix it

indigo yoke
#

Checking the github...


public class YACSPatcher {
  public static void ApplyPatches(Harmony harmony) {
    var eventsType = AccessTools.TypeByName("CookingSkill.Core.Events");

I reorganized a lot of my code yesterday so the path here is wrong.

That said, is there anything I can expose api wise to make it easier for you?

#

IT WAS ME, I WAS THE ISSUE ALL ALONG

strong ice
#

Hi to everyone! πŸ™‚ I would like to update the compact miller mod to get different number of salts depending on the input quality of sea salt. Can somebody help me?

velvet narwhal
#

schrodinger's user, were they right all along, or did they just not read KEK

indigo yoke
#

it's now CookingSkillRedux.Core.Events as the name space

brittle pasture
#

Yeah

#

anyway let me dig around for why I needed that patch, it had been a while

lucid iron
strong ice
#

Personal use only

uncut viper
#

(unrelated, but is someone with repo access free and able to satisfy my curiosity and tell me the last time a specific function changed, bc i wanna know if one of my books only broke in the last couple versions or if its been broken since 1.6.9 and just no one noticed or reported it until today lmao)

indigo yoke
#

here when I was like renaming all my namespaces and reorganizing the folders and files yesterday
"No one patches my mods, why would they? This should be fineeeeee"

strong ice
#

I would like to learn how to do it wright πŸ₯Ί

velvet narwhal
#

doing it right would be making an outside mod and get to diggin'

strong ice
#

Okey

velvet narwhal
#

that'll really teach you how cp works lol

strong ice
#

Okey then

lucid iron
#

Yeah so the thing you want to do can be achieved with quantity modifiers

strong ice
#

Like stack modifiers?

brittle pasture
#

okay, so it was for better crafting integration specifically, I added a new event handler for PostCraft to replace the item with a ColoredObject clone if necessary
YACS was caching the original instance of the object in BetterCraftingTempItem, causing my event to not apply, so my patch was sneaking that item back in BetterCraftingTempItem

velvet narwhal
#

(mmm maybe it's time for me to dig now that my mods will be on the backburner)

lucid iron
#

I always get confused by the class name vs the actual field name blobcatgooglyblep

#

Gimme a sec I'll find example

strong ice
#

I tried but it doesn't work either 😦

velvet narwhal
#

@ivory plume hello! Whenever you get the chance, this isn't imperative. But could I get access to the git repo? Same username as here SDVpufferthumbsup

strong ice
#

Only the iridium rule worked

lucid iron
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

lucid iron
#

Post what you have

next plaza
uncut viper
next plaza
uncut viper
#

my transpiler doesnt throw any errors so i didnt even notice but sure enough it aint workin now cause of that, i assume

velvet narwhal
#

(YACS SC, LoC, oh better crafting)

lucid iron
#

when will there be unity under heaven

velvet narwhal
#

ya'll need to unionize SDVpufferpensive

indigo yoke
#

(YACS, better crafting, and extra machine configs)

rain basalt
#

hmm a unity mod sounds interesting who wants to make a mod that makes mods compatable lol

lucid iron
#

(for when vanilla add a event for crafting)

uncut viper
#

actually it might be broken bc a local index changed SDVpufferthinkblob mislead by my own code comments, apparently

#

if thats the case im very surprised it didnt toss an error at me lmao

lucid iron
#

selph could just make emc dependent on better crafting right

next plaza
#

Man VS is slow with annotating a large file like Object.cs

lucid iron
#

problem solved after that sleep

uncut viper
#

by all accounts my transpiler should be invalid as all hell. maybe its so broken none of the exceptions could get through to the console bc they all tried to fit thru the door at once

#

absolute mess of a thing, really. literally my first transpiler ever though so you're not allowed to judge me

lucid iron
#

please use the json parser website

lucid iron
velvet narwhal
#

i can't judge, i refuse to make one until i get the hang of just smapi events

uncut viper
#

almost makes it seem nice

next plaza
uncut viper
#

damn. so it really has just been broken this whole time and no one noticed

lucid iron
#

which book is this

uncut viper
#

why did this not throw a ton of exceptions

velvet narwhal
#

oh is this in BETAS? or is it books

uncut viper
#

this is my book mod book that decreases artisan goods production time by 25%

next plaza
#

Like, seriously, why are you doing so much code in there. Call another method of yours that's written in C# not IL

uncut viper
#

i said this was my first transpiler! i did not realize at the time that that would be al ot easier

#

i do do that now

next plaza
#

Button, link to that transpiler?

indigo yoke
# rain basalt hmm a unity mod sounds interesting who wants to make a mod that makes mods compa...

only way for a unity mod is basically a super API that has a ton of events that covers most needs. Even then issues still arise here and there. Just look at the forge api for minecraft. Tho it works majority of the time and mods rarely have conflict, it's mostly internal issues the devs didn't think of covering. The other issue is updating when the game updates is a pain and takes forever, as you basically need to go to make sure every event hook is still good.

there are downsides and upsides to everything.

Pathos wants SMAPI to be fairly light on events. Which feels more like Cloth/Fabric. Like on actual events and lets modders have way more freedom but a lot of conflicts can arise.

rancid temple
#

I tried to do that with my first transpiler too, but was course corrected by someone else much sooner lol

uncut viper
#

this was also only shortly after i started learning C# in the first place back in uhh. may?

#

maybe april

#

i dont remember when 1.6 came out

velvet narwhal
#

march

uncut viper
#

clearly, to baby button, making a foreach loop in IL was the smartest idea there was

lucid iron
#

well hm i never counted the time because automate and stuff

#

so yes it very well could be broken this whole time

rain basalt
uncut viper
#

this transpiler has been on my list of things to redo eventually for a long time but i didnt feel like touching it if it wasnt broken. well ,now its broken, so its gonna be reduced to like.... 5 lines

next plaza
#

You should add a dep to spacecore and used the name local indices feature πŸ˜›

velvet narwhal
#

(i think my first harmony idea was going to be a for loop until someone bonked me and went, "the original method already loops" KEK )

next plaza
brittle pasture
uncut viper
#

it doesnt even get caught in the try/catch an d return the original code, so idk what the IL ends up doing in actuality

rain basalt
next plaza
#

Um, no

#

LLMs just can't handle that

#

LLMs can't think

uncut viper
rancid temple
#

Also sounds a lot like theft specifically targeted at SDV's modding community

indigo yoke
lucid iron
#

tbh the so called "super mod compat fixing mod" is smapi itself

#

with the rewriter and stuff

next plaza
velvet narwhal
#

chatgpt can't even understand how to do i18n keys, i've seen what some of these mods have done to mangle my code in attempt to translate, i'm none too happy about it

lucid iron
#

it cant account for people's code logic being in conflict because it cannot take sides blobcatgooglyblep

rancid temple
#

By the powers of SMAPI and CP, everything can be compatible

lucid iron
#

but thats why we talk to each other and discuss what api to expose

next plaza
velvet narwhal
#

with enough dependency clauses, you, too, can be ultra compatible

next plaza
#

πŸ˜›

rancid temple
#

can catkek

rain basalt
#

lol yah 2 recolors or reskins kills the first compatability

next plaza
#

Yeah, like, LLMs just output what's statisically most likely based on it's previous output and training data. It can't logic about things to see if something is correct

#

I guess technically one could write a new type of AI that can. But that would be incredibly difficult - many people are already trying to figure that out (logic, not stardew stuff) - it would be groundbreaking in the entire AI field

uncut viper
rain basalt
#

TBH one of the reasons i use gmcm for all my mods is to alow you to chose what you want to have my mod load for any reskin recolor or changes to data

brittle pasture
#

I think WOL has a profession that does something similar, I'll check what dalion did in their own source

uncut viper
#

(i like to think at this point ive proven myself enough to convince that im not that much of an idiot with my code/transpilers anymore)

indigo yoke
#

x3

brittle pasture
#

yeah just a postfix on OutputMachine

rain basalt
lucid iron
#

i think the ideal case for making 2 recolors compatible is to cross fade between them at around 30s a cycle \s

velvet narwhal
#

that's ultimately the one way to tell you're not dumb, you can handhold someone and their code works KEK

rancid temple
indigo yoke
next plaza
#

Neither spacecore nor SVE do any of those things (at least the ones I can decipher - what's "Robin building miniatures"???), but one warning makes them think it's my fault -_-

#

(I assume this is something with UI Info Suite 2)

brittle pasture
#

average nexus user report

lucid iron
#

yea those r uiis2 features

#

unfortunately you have scary yellow text SDVpufferpensive

rancid temple
#

I think Robin building miniatures is in reference to the icon in UIIS2 that shows up when she's building stuff for you under your money

next plaza
#

I mean, there's already scary yellow text (the serializer warning) that I can't get rid of SDVPufferCry

velvet narwhal
#

pathos can we get spacecore no longer on the warning list for serialization

rancid temple
#

A truly ridiculous way to phrase "icon" but okay

uncut viper
#

"robin building miniature" seems like the mini robin icon beneath your clock

#

when shes doing construction

#

from UIIS2 yeah

velvet narwhal
#

i honestly thought a different mod had robin just straight up building miniatures in her spare time

uncut viper
#

discord didnt scroll me down all the way when i started typing /shrug

next plaza
lucid iron
#

how do you feel about separating the save serialization part of spacecore into new mod

next plaza
#

Like the figurines in Wind Waker

velvet narwhal
#

isn't it core to spacecore though

lucid iron
#

so that the majority of spacecore doesnt get scary yellow text

brittle pasture
#

They might be using machine translation

uncut viper
next plaza
#

Also what Button said

velvet narwhal
#

what if, there was a way, to tell what mods are grabbing spacecore's api for the serialization, so they too can be lumped in with you for the warning

latent mauve
#

The NPC mod update has been uploaded to Nexus, here goes nothing.

next plaza
rancid temple
next plaza
#

But that doesn't seem fair to output a warning for people using a core spacecore feature

lucid iron
ivory plume
lucid iron
#

it could be useful for debugging though

brittle pasture
#

Better Crafting does something like that, naming and shaming mods that call its API

next plaza
next plaza
uncut viper
brittle pasture
#

yeah probably not warning

lucid iron
#

not neccesarily warning but note which extra classes need sc serialization

next plaza
teal bridge
#

Aside from that, Casey is right, that's a very silly transpiler.

ivory plume
# next plaza Maybe if you would merge Khloe's PR /s πŸ˜›

(I have a number of PRs to merge, and I've seen complaints about the merge times. But I feel like there's more value long-term in (a) stabilizing SMAPI and the main mods and (b) getting as many fixes into Stardew Valley 1.6.x before it's closed off, so I've been delaying PR reviews so I can focus on those.)

next plaza
#

(Still a fun idea though)

uncut viper
rancid temple
#

People love collectables

next plaza
#

But then as more patches come out you'd need to merge more PRs, so....

rancid musk
#

In fairness my PR does involve a bump to the ILSpy version which is something to think about

ivory plume
#

Re the SpaceCore serializer warning, SMAPI only knows that the serializer is being changed; it can't really know how safe or bug-free the change being made is.

next plaza
#

Oh yeah, I don't seriously expect you to remove that warning

#

I was just being whiny πŸ˜›

teal bridge
#

You can put a breakpoint in and see if it's really matching and returning the updated instructions. And while we could try to debug that IL as is, it's probably easier to save your transpiled method to disk, open it up in ILSpy and see what ILSpy thinks the C# is supposed to do.

next plaza
uncut viper
#

ive already torn it out of my code so its gone-zo

hallow prism
#

you are allowed to be whiny with the way mod users are reporting stuff to you

ivory plume
#

I wonder if we could make a change to the game to allow intercepting saved data before it's written or read, without actually needing to change the serializer.

uncut viper
#

how its broken is less important to me than the fact that it is and does not need to exist in its current form anyway bc of its silliness

velvet narwhal
#

"baby's first transpiler" an egregious but adorable-looking painting, synonymous /lh

teal bridge
lucid iron
next plaza
ivory plume
next plaza
#

I guess I could do something reflection based?

lucid iron
#
GameLocation.isTilePassable does not check tile.Properties for "Passable", only tile.TileIndexProperties, this causes the Accessible data layer to not match the actual collision experienced by player.

the behavior in game is that DataLayers (and other stuff using isTilePassable) doesn't respect TileData Passable

ivory plume
#

Does the SpaceCore serialization stuff only apply to items, or any game type?

lucid iron
#

but collision is fine

next plaza
ivory plume
#

Well, I guess changing the serializer is the only option then.

next plaza
#

Come on, you maintained SpaceCore for a while, how did you forget that? πŸ˜›

#

It's almost like you've got so many things to remember

#
  • it not being relevant to you anymore
ivory plume
#

I barely remember what I had for breakfast. There's a reason I write so many docs. πŸ˜›

next plaza
#

I have the same thing for breakfast each morning, so I have no problem remembering mine!

teal bridge
#

So would now be a bad time to ask about the status of those PRs I wrote 4-5 months ago?

ivory plume
hallow prism
#

oops i forgot to get my breakfast ingredient and just remember now because of this discussion

next plaza
#

Sounds like we need to clone the machine PathosAI is running on /s

teal bridge
#

You're losing game access?

lucid iron
#

upgrade the storage solution

velvet narwhal
#

(we're broke, unless we crowdfund for one /lh)

ivory plume
#

I would love the ability to fork off a few more pathoschildren.

hallow prism
#

guess i have no choice but to eat chocolate for breakfast...

teal bridge
#

I thought you were like, the main developer now.

hallow prism
rancid musk
next plaza
hallow prism
#

Pathos is doing code stuff but CA is still doing the majority of the game content addition, and he may want to focus on other stuff or simply need time to get more ideas

teal bridge
#

So "lose access" is a euphemism for "exceed the threshold of update fatigue".

velvet narwhal
#

(i thought pathos was just like, an advisor KEK )

ivory plume
#

CA hasn't mentioned any release plans after 1.6. There might be future versions if CA decides to, but once 1.6.x is stabilized it'll likely be the last update for a while.

hallow prism
#

and my personal experience is that if an update has no new content (or not a lot) and mainly modding additions, those tend to be a bit overlooked

#

(1.5.6 added some cool modding stuff but modders didn't know about them a lot and some are still underknown)

teal bridge
#

Ah, that explains a lot about this latest slew of updates...

next plaza
#

Yeah, CA and Myuu still do a lot (and I do some, not as much as I'd like since I have a main job, not sure how Pathos manages it on top of everything else), saying Pathos is the main developer isn't really accurate. (Though Pathos does do most modding relevant changes)

lucid iron
#

they gotta switch gears to haunted chocolatier eventually right

uncut viper
#

gotta leave room for some HC time too

velvet narwhal
#

i vaguely recall the phrase, "lack of sleep"

uncut viper
velvet narwhal
#

that's basically us, our mountains of projects KEK

tender bloom
#

honestly so relatable

sweet sphinx
#

GPF kinda knocked me out(still gotta finish it's update), but once I do the tedious task needed to finish it, and get some more motivation, I'll do more modding work :3

uncut viper
#

uploaded a new version to nexus and it successfully updated the version number on the page but seems to have eaten the actual file. thats fun

next plaza
#

That's alwats fun

teal bridge
#

Always try opening your mod page in an incognito window, Nexus's caching is whack.

uncut viper
#

i was about to but decided to refresh one more time and its there now πŸ€·β€β™€οΈ

#

i know nexus caching is odd but ive not seen it update one thing but not another when both were changed at the same time before

teal bridge
#

Happens often. Sometimes my files upload right away, but then I try to change one tiny thing about them (like add a description) and that takes an hour to show up - but only for me, personally.

latent mauve
#

Yeahhhh, I've learned to let Nexus upload my updates as a separate file and then move the old one once that one has confirmed uploaded and scanned.

#

Safer that way.

next plaza
#

A similar (still C#) but vastly different ecosystem, not for the faint of heart

brittle pasture
#

In context they were actually referring to a mod that makes cooking/crafting integration not a mess by unifying them
(it already exists, it's Better Crafting)

next plaza
#

Oh

latent mauve
#

so really, it'd be more of a dictionary mod than a "unity" mod (which implies built on the Unity engine)

next plaza
#

I read it as Unity engine

rancid temple
#

I did at first too, until I thought about what they meant by compatibility for a while lol

next plaza
#

And yeah, making a new unifying mod would just be the xkcd standards meme

latent mauve
#

I'm having nightmares of PlateUp!'s IngredientLib as a Stardew mod, LOL

uncut viper
#

especially when it'd be impossible to create a design that has universal appeal

#

not even from a functionality standpoint but an aesthetics one

next plaza
velvet narwhal
#

there's also a lot of ways people interpret the way they want to implement some things like cooking/crafting tbh

#

the undying urge to make the cooking mama format 🀝 (casey)
but then vs the amount of assets to create SDVpufferyikes

lucid iron
#

dont u just rotate springobjects

#

maybe draw a pot

next plaza
#

gourmet overhaul flashbacks

velvet narwhal
#

yeah could also upscale all of the dishes with a draw but it might look blurry, so then those assets need to be high res'd

latent mauve
#

IngredientLib is wonderful, but it seemed like SO MUCH WORK, because they constantly get requests for new ingredients to use in cooking recipes.

brittle pasture
latent mauve
#

The whole point of IngredientLib in PlateUp! was to add non-vanilla ingredients and recipe bases

next plaza
velvet narwhal
#

if it doesn't have the palico mama i will riot

latent mauve
uncut viper
#

ill be honest ive literally never looked at the Updated tab

#

in my mind it doesnt exist

next plaza
latent mauve
#

Maybe? I've never used JA

next plaza
#

JA is a framework for mod authors to add their own ingredients, while IngredientLib just outright adds the ingredients themselves as part of the mod (ie. other people can't add more without making a custom version)

lucid iron
#

oh i see how terror DokkanStare

latent mauve
#

Yeah, IngredientLib is a massive collection of hardcoded ingredients that other people can use to formulate recipes with in PlateUp!

calm nebula
#

....what is half of this

brave fable
#

go on, make all the art required for people to do any number of chopping and cooking actions on a completely limitless and incredibly specific group of ingredients. i'll wait SDVpufferchickluau

next plaza
#

Hey, it has cinnamon, what more could you want?

uncut viper
#

less cinnamon

brave fable
#

make sure it's large and detailed enough to actually occupy enough of the screen to be worthwhile, too. maybe 64px sprites for the basics hmmm

velvet narwhal
#

interactive action of deboning an eel for your spicy eel dishes as you sit there in front of the campfire and grill it, impatiently

lucid iron
#

is it not bone in

#

i never got why ppl debone fish

velvet narwhal
#

maybe some of them, but do you really trust serpent bones?

lucid iron
#

they add crunch and calcium

velvet narwhal
#

god i really want smelt snacks now

#

add that to the list of "traditional asian dishes from an americanized home" mod idea

hard fern
#

SDVpuffersweats i think about those little dried fish i used to eat

velvet narwhal
#

which ones? cause i can destroy an entire bag of dried cuttlefish strips tbh

hard fern
#

like, tiny fish...

hallow prism
brave fable
#

wow Game1.drawTool is sad. i spent so long looking at Tool and Shears and wondering my my custom tools were drawing garbage over the top of the farmer instead of nothing

velvet narwhal
#

sardines or anchovies? SDVpufferthink

hard fern
#

they're sardines

hard fern
brave fable
#

SDVpufferfush oh how i wish this was a bool property

if (!(currentTool is Slingshot) && !(currentTool is Shears) && !(currentTool is MilkPail) && !(currentTool is Pan))
{
  if (!(currentTool is FishingRod) && !(currentTool is WateringCan) && f != player) {}
}
else
{
  f.CurrentTool.draw(spriteBatch);
}
hard fern
#

in a canned fish and stuff, i always take out that spine even though i can just eat it

velvet narwhal
#

are you being sent back into the transpiler mines

next plaza
brave fable
#

how hard could the simplest tool possible really be, i thought, like a moron

brittle pasture
hard fern
#

the what

brave fable
#

the what

next plaza
#

I remember having to do some patches to get custom tool stuff working too

#

Can't recall what mod it was I did that for though

brave fable
#

like i know drawing tools is basically just an extension of farmer rendering and therefore awful, but i still wish it was just a little more usable for people making new tools

#

even just DrawWhenUsing

next plaza
#

...The only thing I can find is DGA, which isn't what I'm thinking of SDVPufferThink

brave fable
#

or DrawBehaviour!! imagine passing a delegate

#

this is even more important than the missing . in shears

brittle pasture
#

(it's a mess)

brave fable
#

a mere 5 prefixes and a transpiler. incredible

lucid iron
#

mere

brave fable
#

oh wait no thats just a blocking prefix

hard fern
#

is this just a stomach pump 😭

brittle pasture
#

if you hold me at gunpoint and force me to say what's the difference between beginUsing, endUsing and DoFunction I'll die

next plaza
#

Skill issue /s

hard fern
#

πŸ€” how do warp totems in-game work?

next plaza
#

They're objects

velvet narwhal
#

with the funny totemWarpForReal method

hard fern
#

errr well i mean how do they warp

next plaza
#

Check out object checkAction method I think it is?

#

<insert advertisement for SpaceCore custom warp totem feature here>

velvet narwhal
#

if you want a custom one that'd be spacecore, unless you're talking obelisks

hard fern
#

mmm spacecore

#

i see

brave fable
#

my favourite tool behaviour is beginUsing(): if not instantUse: endUse()

#

(only if not fishingrod and upgraded and not meleeweapon or pickaxe)

next plaza
#

Huh, that's bizarre

hard fern
#

tools sound hard.

next plaza
#

The tool code is really weird

#

I imagine it was one of the earlier editions and just evolved over time a lot because of that

brave fable
#

there's very good reason i only made a trashcan-equivalent tool (frying pan) up until now. i just forgot that reason up until now

#

sigh, with another small addition of 1 year to the 1.6 alpha we could've had tools refactored

next plaza
#

"a small loan of 1000 developer hours" /s

brave fable
#

maybe make that 'hours and 1000 developers'

velvet narwhal
#

too many hands, we might get the drawTool2 electric boogaloo

next plaza
#

If you have 1000 developers, you can get all that done in 1 hour! That's totally how it works

lucid iron
#

what if you just get 1 dev 1hr and 1 time machine

next plaza
#

<something something project managers and nine women making a baby in one month>

#

(Not that I've had a project manager like that)

next plaza
#

Also, if they can't take their code back with them, they'll never make much progress

brave fable
#

we already have a time machine. it's called git. life is pain

velvet narwhal
#

that's it, i'm gonna go get the quote

patent lanceBOT
next plaza
velvet narwhal
#

.q 6255

patent lanceBOT
#
#6255

Please interrupt these fools if they're off topic

velvet narwhal
next plaza
#

We're tangentially on topic

velvet narwhal
#

yeah the original was us skirting the lines of off-topic but we're still talking mods

brave fable
#

the topic is drawtool

#

you're the ones posting OT, not me 😌

next plaza
#

Excuse me, you mentioned a time machine

velvet narwhal
#

i derail you yet again, the dehardcode of craftingrecipe

indigo yoke
#

Anyone know where the code is that keeps doors locked if you don't have the friendship or it's past the time to enter (or is early).

I kind of want to add lock picks to the thieving skill mod that lets you bypass that but can't find where it is.

next plaza
#

I had forgotten how drawTool was.

hard fern
#

isnt that just on the door itself

brave fable
#

really everything to do with tools is a bit fucked

velvet narwhal
#

GameLocation?

#
case "LockedDoorWarp":
{
    if (!ArgUtility.TryGetPoint(action, 1, out var tile, out error, "Point tile") || !ArgUtility.TryGet(action, 3, out var locationName, out error, allowBlank: true, "string locationName") || !ArgUtility.TryGetInt(action, 4, out var openTime, out error, "int openTime") || !ArgUtility.TryGetInt(action, 5, out var closeTime, out error, "int closeTime") || !ArgUtility.TryGetOptional(action, 6, out var npcName, out error, null, allowBlank: true, "string npcName") || !ArgUtility.TryGetOptionalInt(action, 7, out var minFriendship, out error, 0, "int minFriendship"))
    {
        return LogError(error);
    }
    who.faceGeneralDirection(new Vector2(tileLocation.X, tileLocation.Y) * 64f);
    this.lockedDoorWarp(tile, locationName, openTime, closeTime, npcName, minFriendship);
    break;
}```
next plaza
#

I would love to add like a field that's always false for vanilla that if true would call a custom function on tool

hard fern
#

oh SDVpuffersweats so that's the door

next plaza
#

But I think we're supposed to only do bugfixes now

lucid iron
#

i like how trinkets were done in vanilla

#

with the Effect class

indigo yoke
# hard fern isnt that just on the door itself

Like I know the know the information of like the times and such is on the door tile itself so I was looking at terrain features.

But like there has to be something on the C# I can post fix to let the player bypass. As when you click you get the message "door is locked till X)

lucid iron
#

a similar ToolEffect class that can be data driven and only exists in gameplay would be nice

next plaza
#

Yeah just patch GameLocation.lockedDoorWarp like Aviroen showed the calling code of

hard fern
#

well i guess it's that big chunk up there

velvet narwhal
#

(line 9520 on my ilspy if you were wondering, but i think i still have 1.6.13)
(10302 for the method) KEK

#

ouh, oh, hmm, i would have to commit a crime on

    {
        if (Utility.isFestivalDay())
        {
            return Utility.getStartTimeOfFestival() < 1900;
        }
        return false;
    }```
for my custom festival, huh
next plaza
#

Yep

#

I thought we talked about that recently

velvet narwhal
#

yeah, i did glance at roku's code for it but i also have the memory retention of a walnut

next plaza
#

Ah, fair

calm nebula
#

Clearly, casey

velvet narwhal
#

contemplates the skip prefix crime on craftingrecipe

calm nebula
#

You should add a flag in the festival data for it SDVkrobusgiggle

next plaza
lucid mulch
#

Whats another version anyway πŸ˜›

calm nebula
high maple
#

Hello! I have two vector2 values (one for the mouse position and one for the position of the player's tool hit location) that I use to make a line and I'm trying to figure out how to shorten the distance between them so that one point is moved closer to the other and that distance is the range I set.

I have tried doing Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range)));

and then adding the value I get to the tool lit location to get the new point to shorten the line
Vector2.Add(playerToolTile, Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range))));

Both of the original two vectors have been converted to tile positon and I tried converting the final result to tile position but it doesnt seem to be shortening the line properly

I have this currently
toTileVec = Utils.AbsolutePosToTilePos(Utility.clampToTile(Vector2.Add(playerToolTile, Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range))))));

Am I doing the math right?

rain basalt
#

SDVpufferwow so since im learning about map data more passable x on back layer makes it impassable regardless of t or f and on building makes it passable regardless of t or f does that mean buildable x on back makes it buildable regardless of t and f and on tile data makes it not buildable regardless of t or f?

final arch
next plaza
#

Are you seriously suggesting I sneak things past CA? πŸ˜›

final arch
#

never

#

Im inquiring about the possibility of it :p

next plaza
#

Are you implying I should sneak things past CA? πŸ˜›

final arch
#

I thought festivals only close lockeddoorwarps inside its own locationContext, is that wrong?

brave fable
#

you and i both know he hasn't looked at tools code since 2016

#

he'll never notice one tiny property

next plaza
final arch
#

rip

next plaza
#

I'm a little annoyed y'all would even suggest sneaking things past him πŸ˜›

final arch
#

hearsay

brave fable
#

inadmissable

final arch
#

none of us did any such thing UPensiveButt

languid aurora
# uncut viper this is my book mod book that decreases artisan goods production time by 25%

Not sure if you already solved this (reading through chat backlog), but wanted to mention MachineData.ReadyTimeModifiers that are vanilla and you could maybe use instead of even needing a patch. I just learned of them the other day reading through the source for Better Beehouses, here is the relevant line where they use it to speed up or slow down the ready time: https://github.com/tlitookilakin/BetterBeehouses/blob/1.6/BetterBeehouses/framework/MachineEditor.cs#L114

rancid temple
#

Or at least, I don't think it could be done in just a postfix, but I could look at it again now that I have more experience lol

#

Yeah lockedDoorWarp is a void so postfixing it wouldn't really solve the issue of all the dialogue boxes popping up and such, though I suppose you could leave that and just have your own popup afterwards about picking the lock

#

Not sure how well that would work though, game seems to hate when you daisy chain dialogue boxes

indigo yoke
rancid temple
#

That seems fine then, assuming the locked message popping up doesn't interfere

#

But yeah, my mod won't be a good example for that lmao, all transpilers over here

indigo yoke
#

And I don't know how to do a transpiler. So it would be a pre with a skip or a post. And I would rather stick with a post.

rancid temple
#

Yeah, I was really hoping it was something I could postfix too lmao

uncut viper
rancid temple
#

I was originally prefix skipping performAction, but that felt like it would be a problem lmao

brave fable
#

on the plus side, there's no better time to learn transpilation than when you need it πŸ₯³

uncut viper
#

(also i want it to apply regardless of any other readytimemodifiers someone might add/remove/edit on the machine anyway)

languid aurora
#

Yeah mostly just bringing it to your attention in case it was a good option for you

uncut viper
#

that said, looking at the code, im not actually sure why it says it only checks the input item since it also passes in the output as the target item

#

so i dont know why you couldnt check it

#

it still wouldnt be an option bc of the aforementioned "always apply" thing but it is curious

#

unless im misunderstanding what it means by "Item-only tokens" for the Condition field there

inland wren
#

How do I make a music content pack that adds instead of replaces? And/or works with the jukebox.

brittle pasture
uncut viper
brittle pasture
#

Condition field in OutputItem indeed doesn't check output item, because it doesn't exist yet

#

s/wiki/documentation

uncut viper
#

(is that supposed to be a link or something)

brittle pasture
#

that's sed for "replace wiki with documentation in my post"

#

I may have commited a grave case of xkcd 2501, apologies

uncut viper
#

ah. well, i wouldnt think it'd be copying anything from outputitem, since its just QuantityModifier and not machine specific (it also applies to shops)

lucid iron
#

I need a :quartz: emoji

uncut viper
#

(or wherever else uses quantity mods)

calm nebula
#

Discord respects sed

#

Try this/

brittle pasture
#

wow it does

#

nice

calm nebula
#

Fun, eh?

#

So how are we doing today

lucid iron
#

I abscond my prison

uncut viper
#

great! trying to debug an error in my fixed postfix for that book that causes people to error non-recoverably and crash when saving their game SDVpufferparty

brittle pasture
#

I have many colorful and un-PG words for this work PR I've been working on

brave fable
#

trying to find the source of the tool swish TAS added when you use a tool and the only results for animations.*960 are some events with abigail?

#

nevermind it's showToolSwipeEffect and it uses the stupid TAS rowInAnimationTexture overload

uncut viper
calm nebula
#

My coworker put at 7:30 am meeting on my calendar

#

I might not forgive him

lucid iron
#

And change sprite

uncut viper
#

so most likely a coincidental double occurence in the stack trace, then

lucid iron
#

Make salmonberry/blackberry type things happen generically

#

Did it just patch similar place bolbthinking

uncut viper
#

its not the most specific function (GameLocation.DayUpdate) but i figured maybe it mattered for machines processing overnight, since this crash/error pops up during _newDayAfterFade's process

#

(i dont patch that to be clear, i mean Bush Bloom does)

lucid iron
#

I imagine it just update bush in there

uncut viper
#

time to pull at another thread then

lucid iron
#

Can I see log

uncut viper
#

its a null reference exception and ill admit null checking did slip my mind (tbf i thought the null reference check in the function im patching itself would be enough) but it would be nice to know exactly where the null was and why it was only happenin overnight

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 80 C# mods and 161 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 69 C# mods and 198 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

i know where to add the null check, bc theres only one place, i just wanna know what causes it to become null in the first place, really

#

since it just, doesnt error for me

calm nebula
#

Eh.

#

I've seen mods do really stupid shit before

#

Some asshole kept putting nulls in the character list for one

lucid iron
#

i think i ran into similar kind of "why it null" with machine mod

#

never came up in testing but someone's weird thing just makes it go

calm nebula
#

Bluebs is that a confession

#

Tbh near the end I got so paranoid it became unpleasant

uncut viper
#

i wish the smapi site would let me just put in multiple log links and it'd parse out which mods they have in common

brave fable
#

it's me attempting to find some humour in the world while looking at farmersprite.endanimationbehavior for arbitrary frame indexes probably called from stupid places in tool using methods

calm nebula
#

[HarmonyPatch(nameof(Farmer.showToolSwipeEffect))]

brave fable
#

well sure i can false prefix the whole game if i want but somehow i thought if i have a custom class already i can actually decide what it fuckin does

uncut viper
#

(oh, i see. i was unaware that machines had a ClearContentsOvernightCondition)

calm nebula
#

Sorry

#

Tool code enjoys being Fun TM

#

At one point I figured it all out

#

I have regrts

brave fable
#

alas endUsing just replaces your sprite with some animations that include swish as an endbehaviour for one frame or another

calm nebula
#

You can override endusinf

brave fable
#

i have lol

calm nebula
#

Shovel animations

#

The first sets the farmer animations

#

The second matches the shovel's animation

brave fable
#

i just want no animation but god doesn't listen

calm nebula
#

When God doesn't listen, harmony does

#

Also I thought there was a field for that

brave fable
#

how thew fuck did i get here from farmersprite.clearanimation()

uncut viper
calm nebula
uncut viper
#

i guess these two people might have a machine with a dayupdate trigger that has a condition that means it doesnt always actually create anything but i cannot be bothered to try looking for a machine that does that so, ill just hope its fixed when i upload a new version

uncut viper
#

i forgot solar panels were a thing

rancid temple
#

I've still never had a solar panel lmao

brave fable
#

alas, another fine idea gone

calm nebula
#

I want one

#

In irl

#

Just one

lucid iron
#

What will you power

calm nebula
#

Me :beep:

rancid temple
#

The house I'm renting has them, the lower power bill is nice

brittle pasture
#

the item is still there right, unless I'm misunderstanding button's problem

uncut viper
#

i was about to say it doesnt seem like it actually creates anything on day update, it has a timer

velvet narwhal
#

...mill?

uncut viper
#

i did misread the if statement earlier and i dont think the clearcontentsovernight actually matters

brave fable
#

the illusion of free choice```cs
public static void completelyStopAnimating(Farmer who)
{
who.completelyStopAnimatingOrDoingAction();
}

uncut viper
#

it just needs to have a DayUpdate trigger and then for OutputMachine to not give it a helditem

velvet narwhal
#

Or I might be misremembering how the mill works tbh SDVpufferpain

brittle pasture
#

trying to think if any machine qualifies....
uhh beehouse in winter

uncut viper
#

i just tried a beehouse and it didnt give me any errors either :v

lucid iron
#

One of those wag forager bushes?

velvet narwhal
#

Crystallarium is on a timer innit

uncut viper
#

one of those what

lucid iron
#

That r secretly machines

velvet narwhal
#

Cat statues?

lucid iron
#

Wildflour atelier goods forager

#

It's got bush that are machines which conditionally produce by season

gentle sapphire
#

Idk if this is where to ask but does anyone know if guxelbit is gonna make anymore furniture mods? His furniture looks so vanilla like and adds so much to the game I would love more.

brittle pasture
brittle pasture
uncut viper
#

im just gonna slap a "if null return" on it and call it a day

#

which i shoulda done from the start. oh well

rancid temple
#

if null return MVP

astral prism
#

remind me in 18 hours to axon bodycam overlay

patent lanceBOT
#

rofl that's what you need a reminder for? yeah ok (#6360510) (18h | <t:1731606499>)

tight rivet
#

Hm. So I have ran into an interesting dillema but no way to check until we get to the perfection tracker stage.

fluid kelp
#

Ok so probably a super dumb question, but if I want to add new dialogue to RRRR using the dynamic tokens should I just add to the original mode? Or can I copy and paste the dynamic tokens into a separated mod I'm making and add dialogue that way?

uncut viper
#

you could just add to the original mod if you wanted and if it was only ever going to be for personal use, otherwise you would need to make your own mod to add more dialogue to Rasmodia or overwrite existing dialogue. you wouldnt use the dynamic tokens, though

#

dynamic tokens are just shortcuts you can create for your own content.json, they arent shared between mods

#

they save you time typing

tardy adder
#

Query is still confusing to me when EMP

velvet narwhal
#

The problem with RRRR is that it uses a lot of input separators. You are best off just modifying it straight unless you actually do want to release

fluid kelp
#

I see, but RRRR uses a lot of dynamic tokens for expressions and events and whatnot 🧐

velvet narwhal
#

Yeah that's internal

#

You can probably pull up the i18n default.json and copy some places, but because of the input separator you would also need to have awareness of the timing of dialogue for events specifically

fluid kelp
velvet narwhal
#

Button can cmct hijack the dialogue tokens

uncut viper
#

well, you dont really need permission to just add dialogue thats your own in your own mod. its re-releasing all the dialogue you didnt write when you package it up thats a problem

brave fable
#

help i tried looping an animation and now my boy turned into a meat reject

uncut viper
#

also, i will not recommend CMCT to someone newer to modding and not fully aware of the ramifications of it, and beyond that i would recommend the dynamic tokens part of CMCT as a last resort to anyone

velvet narwhal
#

I was just thinking of hijacking the dialogue keys specifically and just adding in more numbers to the range

uncut viper
#

i dont know what RRRR tokens look like to know whether or not thatd work/be a good idea

velvet narwhal
#

It's been awhile since I've last looked tbh

uncut viper
#

(the i18n tokens are more recommendable, i thought you meant dynamic tokens)

velvet narwhal
#

Ig it also depends on what you want to add dialogue wise, if you're just making more heart events then that doesn't have to particularly affect RRRR

#

Oh no, I meant in character/dialogue/npc

#

Those are all i18n keys sorry, brain fry hot egg

#

Could also just go the absolute fun way and just setnewdialogue in BETAS SMCKekLmaoDog after seeing specific events, or even on randomization

#

Actually, that's probably the best option

#

I needs me a button command

uncut viper
#

all just depends on what you want to change or whether you just want to add new things

#

you can also just conditionally replace dialogue lines, you dont need to insert into the input separator stuff

fluid kelp
#

I see 🧐

velvet narwhal
#

The fields thing should work yeah? With the specific dialogue key

uncut viper
#

you dont need fields for that, dialogue lines are a top level key

fluid kelp
#

What I was adding in particular was gift new dialogue for the new SVE cooking items 🧐

velvet narwhal
#

Oh that's even easier

uncut viper
#

that wouldnt need to touch anything from RRRR at all then

#

avi has an example probably of AcceptGift_ dialogue

velvet narwhal
#

AcceptGift_(O)

fluid kelp
#

πŸ‘€πŸ‘€

velvet narwhal
#

UHh probably

#

But I'm on mobile

#

!npc

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:

calm nebula
#

(Rrrr has an interesting way od doing portraits)

velvet narwhal
#

It was pre 1.6 I think?

#

I was the one that found out we can go beyond the 99th index SMCKekLmaoDog

fluid kelp
#

What about for stuff from SVE? Something like "AcceptGift_(O) FlashShifter.SVE_itemid"?

calm nebula
#

(No, it has option for different portrait counts)

velvet narwhal
#

You need whatever internalID sve items are

calm nebula
#

Weird modding history tbh

uncut viper
#

the SVE items might not include "FlashShifter.SVE" in their item id

#

also, dont put a space

#

you put just the literal ID as found in Data/Objects right after the (O)

fluid kelp
#

Okay πŸ˜„

calm nebula
#

No they are names paced correctly

velvet narwhal
#

I found it in my git

#

"AcceptGift_(O)FlashShifter.StardewValleyExpandedCP_Void_Soul": "{{i18n:Married.GiftReaction_Void_Soul}}",

#

I18n key cna be whatever you want, mine are just formatted this way so I remember wtf I was doing

fluid kelp
#

What about the expressions? The standard one is 32 I believe?

velvet narwhal
#

Those you can hoooonestly just do $0 through $31

uncut viper
#

does RRRR have 32 portraits?

tender bloom
#

32????

velvet narwhal
#

Yes

#

It will call it appropriately as long as you set RRRR as a hard dependency

rancid temple
#

Avi has desensitized me to ridiculous portrait counts

uncut viper
#

why is the standard one #32

fluid kelp
#

And the gift dialogue changes depending on relationship progress and in game events πŸ˜΅β€πŸ’«

velvet narwhal
uncut viper
#

you can do the same thing with content patcher When conditions

#

or GSQ dialogue commands

vital star
#

Is there a basic sample or starting point out there for a custom NPC in c#?

velvet narwhal
#

As button says, "you'd just be making content patcher but worse if you wanted a c# npc"

uncut viper
#

yeah, you most likely dont want to use C# for making a custom NPC

vital star
#

Perhaps NPC would be the wrong terminology, more or less I want a familiar or buddy type of thing (no dialogue, no events, etc etc) that can (eg) follow the player with some animations

uncut viper
#

Hat Mouse Lacey has some C# components as i understand it, but im not sure how much of that is actually NPC data related

velvet narwhal
#

Custom companions?

uncut viper
#

oh thats much different than the usual use of the word NPC here

rancid temple
#

Custom Companions might be a good thing to look at for a familiar

uncut viper
#

if not Custom Companions then Trinket Tinker, maybe

#

though thatd be gated behind trinkets obv

velvet narwhal
#

Idk if you can make the trinkers talk

uncut viper
#

they said no dialogue

velvet narwhal
#

Oh OK nvm then

#

Probably trinket trinker then

uncut viper
#

depends on what exactly you had in mind for your buddy

vital star
#

πŸ™‚ thank you, yeah I shouldn't have used the term NPC. Will make those both my first stop!

uncut viper
#

you were technically correct! just not the colloquial use here SDVpuffersquee

velvet narwhal
#

CC requires an npc beforehand iirc

#

But I haven't played with it so I don't know exactly SDVpufferthink

vital star
fluid kelp
#

Wait last question can I use "When" thing for the dynamic token "QiEvents"?

whole raptor
#

Oh I missed the talk about black magic fuckery of RRRR SDVpufferblob

rancid temple
velvet narwhal
fluid kelp
#

I might just add to the original mod if this headache keeps up...

velvet narwhal
#

Nah it's easier to do it this way

whole raptor
#

Or you can just see what QiEvents token checks for and set the same requirements

velvet narwhal
#

I'm just on mobile so I can't handhold you SMCKekLmaoDog

fluid kelp
whole raptor
#

Cause iirc it like a timeframe between events or something

uncut viper
#

i will reiterate, permission to add dialogue does not mean you have permission to redistribute the mod

#

it might mean that

#

you would really need to double check with the creator

velvet narwhal
uncut viper
#

usually, when people give permission for others to do things like add more dialogue or compatibility or other things, it's with the expectation that they will be doing it in their own Content Patcher mod and not redistributing their assets

#

and adding to the original mod and uploading that would be redistribution, as the original code/dialogue is the original creators assets

whole raptor
velvet narwhal
#

Well this is my own iteration of that event

#

So I've silenced RRRR if you married Lance KEK

whole raptor
#

Jello please take your end of development seriously and stop updating! SDVkrobusgiggle /jk

velvet narwhal
#

will I check for poly compat? No.

whole raptor
#

Poly stuff with RRRR is already a headache tbh πŸ˜…

velvet narwhal
#

The problems with npc expansions, they're a Neverending quest

#

looks at my enablers who want me to do the "choose your adventure marlon"

whole raptor
#

I'm still waiting for "The adventure of 3 old dudes" featuring Marlon, Willy and Wizard SDVpuffersquee Ain't no way someone will make something like that

velvet narwhal
whole raptor
#

... wait what? πŸ‘€

velvet narwhal
#

I hadn't contemplated the wizard though so now I might just slap that in

old edge
zenith steppe
#

How does Content Patcher read a sprite sheet for items? Is it left to right top to bottom?

whole raptor
#

Some new project I don't know about? SDVpuffereyes

velvet narwhal
#

Like an excel sheet tbh

whole raptor
#

I'm intrigued SDVkrobusgiggle

zenith steppe
#

Awesome! Otherwise this sprite sheet was gonna be REALLY long. Loooooooooong, hehehehe.

#

I think I figured out my next question!

lucid mulch
#

note since 1.6 new items can byo their own spritesheet

whole raptor
#

Ooh, Marlon expansion, nice

velvet narwhal
#

Ignore my poor naming schemes, tia suggested I stick with my niche naming convention

shut grove
#

so, from what I'm seeing, catalogues are placed in shops and furniture files? are there any other files needed to make a functional catalogue?

whole raptor
#

Tbh Marlon and Wizard's friendship is one of the best parts of SVE for me, sooo... just saying SDVkrobusnaughty

shut grove
#

I like them too

#

I do gotta wonder what makes Camilla witchy though. if she's doing the same stuff as Magnus then she'd be a Wizard.

gaunt orbit
shut grove
whole raptor
velvet narwhal
#

Don't forget Leroy! Furniture Framework makes your own catalogues too

gaunt orbit
shut grove
#

good to know

shut grove
#

I was thinking of making a cute catalogue idea as a reward for a special request

gaunt orbit
#

FF seems like fun, I really want to play with it at some point

velvet narwhal
#

I'm waiting for 3.0 so I can readjust my docs for Tea

devout otter
#

I'm trying to understand DayTiles and NightTiles for Map Properties. The wiki lists the format like NightTiles [<string layerName> <int x> <int y> <int tilesheetIndex>]+But what if I want to, say, add a night tile to the vanilla Forest using a sprite from my own custom tilesheet? How do I point to that?

velvet narwhal
#

Conditionally patch the tilesheet while in location

#

It's how custom doors work SDVpufferwaaah

gaunt orbit
#

another possibility is to do conditional map patches

#

or a non-conditional map patch with your custom sheet, and just include a copy of the day tile on your custom sheet, so you can switch them out with nighttiles

#

at least I think that's how it works?

#

patching in sections with custom tiles does actually add the sheet to the map, so in theory it will work with nighttiles

devout otter
gaunt orbit
#

I can't remember how CP names added sheets, but it can't hurt to follow convention

devout otter
#

Ow geez disaster averted.

shut grove
velvet narwhal
#

I haven't played with spacecore furniture so that's all on the table SDVpufferthink

devout otter
#

In case of a map patch, how do I know what my tilesheetIndex is?

gaunt orbit
velvet narwhal
#

Tiled click or when you place it down the [] next to the xy

gaunt orbit
#

oh does tiled show it? that's way more convenient

velvet narwhal
#

Click on the spritesheet in tiled* ye

devout otter
#

But if the map has several different tilesets?

gaunt orbit
rain basalt
#

O.o is my house suposed to load empty on a new save or do you think a mod is interfearing

gaunt orbit
rain basalt
#

yes

gaunt orbit
#

the author forgot to add a furniture layout

devout otter
rain basalt
#

<.< cough so um .... where do i find where to add that first time making custom instead of replace

gaunt orbit
next plaza
#

Oh boy, Nexus users not knowing what they're talking about

gaunt orbit
#

see the farmhouse interior section on this page

rain basalt
#

ok ty

devout otter
devout otter
#

Alright I'll try it. Thank you, all!

latent mauve
next plaza
latent mauve
#

yeah, just funny because if I was looking at 'harmless errors' I'd complain about that one first before Spacecore xD

next plaza
#

But Ridgeside is doing a bunch of patches at the end of the log, so I assume this is that weird harmony SEHException or something

next plaza
uncut viper
latent mauve
#

Fair. Your harmless warnings are more visible, for better or worse.

hard fern
#

πŸ€” if the author says it's harmless i'd take their word for it and see if there's something else going wrong,but that's just me

patent lanceBOT
#

@next plaza: fix the GMCM menu open API stuff for focustense (and other people who might be using it) (20h ago)

next plaza
#

It's also fun how people sometimes look at past comments to long enough to say "same", but not long enough to see me asking for logs on other comments

#

I don't wanna

#

Uber remind me to fix the GMCM menu open API stuff for focustense (and other people who might be using it) in 23 hours

patent lanceBOT
#

really kittycatcasey? that's what you need a reminder for? okaaaay (#6360659) (23h | <t:1731630072>)

next plaza
#

Oh, it works if you say uber first

#

That was an accident, at least it works

#

(I swear this won't end up the same as the 0 schedule fix for spacecore)

hard fern
#

Uber remind me to finish patching up my npc marriage dialogue in 12 hours pensive

patent lanceBOT
#

uhhhhhhhhhh oh yeah k i'll probably remember (#) (12h | <t:1731590526>)

hard fern
#

πŸ˜”

#

the good news is that even without events, it's in a "test-able" state

#

the bad news is, that I don't have events written

next plaza
hard fern
#

hmm, and i have to think about festival placements too

gaunt orbit
next plaza
#

Hmm, maybe

#

If the timezones on Nexus are right for once it's been out for 3 hours - I guess I just expected a framework with no/examples docs to have a using mod from the same person at release

#

(Though, 3 hours isn't long, I know)

hard fern
#

SDVpuffersweats i'd understand if no content packs yet, but no docs?

uncut viper
#

They were talking about it in this channel last night, maybe they just accidentally published

hard fern
#

maybe

next plaza
#

Good point

uncut viper
#

or didnt realize that they didnt need to

next plaza
#

(I must have missed the conversation last night)

uncut viper
#

"Publish mod" to someone new to it might think that means "my mod page doesnt exist at all until i do this, so i need to do this to get back to it later"

hard fern
#

honestly i'm happy nexus saves all that stuff for you

brittle pasture
hard fern
#

bc i once accidentally turned off my computer 😭 in the middle of putting up a mod

uncut viper
#

(they also uploaded the previous nexus ID too, so maybe thats their content pack to be? just speculation though)

lucid mulch
#

docs are add BE7B0E74.HandToolsExtender.Enabled moddata flag to a tool, and then set{Power}.BE7B0E74.HandToolsExtender.Width and {Power}.BE7B0E74.HandToolsExtender.Depth to the values you want

blissful saddle
#

what I thought was going to be an easy and fast some sprites edits is making 2 days to reach the half of it

calm nebula
#

Width and height my guess

lucid iron
#

i wonder how it behave with pickaxe

lucid mulch
#

width and depth, whoops

teal bridge
next plaza
#

Sounds like SinZ just checked

uncut viper
#

they were the one atra was telling about extension assets instead of stuffing everything into CustomFields

next plaza
#

(I was considering it, but lazy)

#

Eh, to be fair, I think this is a good use for customfields

#

The only reason I use extension assets in SpaceCore is because CustomFields doesn't accept complex structures

uncut viper
#

they wanted an array, for some reason

#

and possibly some json