#making-mods-general

1 messages · Page 39 of 1

ivory plume
old edge
spice inlet
thin hamlet
#

Wow there’s something for everything

#

Wanna make something? You can make it!

ivory plume
hallow prism
#

is there a way to see what items are matching a specific item filtering condition?

#

with debug commands

brittle pasture
#

actually nvm that's only for an item query without conditions

#

doesnt seem to exist unfortunately

hallow prism
#

i mean, there is a debug iq command but i don't see how i can reproduce the filtering part

#

this : PerItemCondition

brittle pasture
#

yeah that doesnt seem supported looking at the code

hallow prism
#

i believe the command predate the change that made PerItemCondition its own thing, so that may be why, but i prefered to ask in case it was just not documented

#

thanks

spice inlet
#

how is the command you're looking for different from debug iq?

hallow prism
#

well, i'm looking for debug iq but with a way to specify the PerItemCondition

#

like, if i want to check what is valid if i have :

          "ItemId": "RANDOM_ITEMS (O)",
          "PerItemCondition": "ITEM_CATEGORY Target -74, ITEM_ID_PREFIX Target {{ModId}}_, ITEM_CONTEXT_TAG Target lumisteria.crop_tier_1",

(context : i want to check i didn't miss stuff)

brittle pasture
#

The next best thing is probably add a test shop with that entry and open it with debug commands

teal bridge
#

@ivory plume any chance of getting this beta as a branch on the GOG edition before it gets promoted to stable? I'd like to test things, and it's great that we have it on the decompiled repo if anything goes wrong, but since the output isn't precisely the same as the release, it's more useful for specific debugging than it is for general testing.

spice inlet
#

I can whip something together real quick if you're interested

hallow prism
#

i am, but also don't put too much effort in it as it's no big deal 🙂 i can always workaround stuff with the shop trick for testing

#

(i am a bit away but should be back in less than an hour)

mortal nest
#

i dont know if anyone would like this idea but what if the farmer had more to the back story i know like it up to the player to write The farmer story but like what if there was events where the Farmer is Questioned about there life before the the valley..??

velvet narwhal
mortal nest
plucky reef
#

I'm not sure exactly how it would look but a little mad libs style tool answering some questions to fill out those NPCs asking questions to you would be a nice bit of worldbuilding.

#

For really specific things like what you're describing, the person doing the backstory would have to code all of that, it would be extremely difficult to get those kinds of events put in through a tool.

#

that's an interesting idea though, an in-game event creator (instead of coding it outside of game and testing)...

mortal nest
dusty scarab
#

trying to compensate and include every potential headcanon players can have for their farmers sounds like a very Sisyphean task. if I were you, I would keep it to a handful of potentials, rather than trying to create an unfathomable number of possibilities to accomodate people. everyone is going to have a different idea of what their farmer's backstory is

lucid iron
#

Well if you have a specific backstory + a particular romance npc in mind, you can just make regular event mod

mortal nest
lucid iron
#

Doing that should help scope out what a dynamic version of this mod would be like

limpid steeple
#

Goofy mod idea I had: (because apparently people dislike it) replace the fishing minigame with a terraria esq bossfight. make the style/difficulty of the boss change depending on the behavior/difficulty of the fish.

velvet narwhal
#

if you're willing to code said thing, you're free to do so, i have some chaotic switch events that break apart into 10 separate instances

calm nebula
#

It does that

mortal nest
velvet narwhal
#

SDVdemetriums you just need a text editor though?

fossil osprey
#

Yeah, today even the basic Notebook is enough for simple stardew mods like adding events or dialogues ^^

mortal nest
#

I probably just think I should do concept art as a starting point

velvet narwhal
#

you're thinking of a deep scope creep then, there isn't anything that intensive for stardew modding unless you're running visual studio 2022 on a tablet while trying to run the game at the same time SDVkrobusgiggle

dusty scarab
#

I use visual studio for my mod-making because it's easier, visually, for me to keep track of all the little ['s and {'s and make sure they're all closed properly. it's a good program!

calm nebula
#

!vsc

ocean sailBOT
mortal nest
#

But then again I already edited a sebastian portrait to have A shirt that says "I would drop kick a child for a frog" .-.

#

It's not done but still TwT

ivory plume
teal bridge
#

Has anyone ever looked into creating a custom asset type for SMAPI, i.e. something with its own type of deserialization that's not a Texture2D or JSON data? I think it's impossible but wondering if I've overlooked something.

The idea should be that anyone can do LoadFromModFile<MyThing>("path/to/asset") to register/edit the asset but instead of trying to load it as JSON it would run... something else. I'm glossing over how MyThing even becomes visible to other mods in the first place, I know there are a dozen more questions to answer before this would even be sane.

teal bridge
next plaza
#

SMAPI currently does it by file extension it looks like, and anything it doesn’t recognize goes through that method for an error and default constructor through Activator.CreateInstance

#

If it’s a value type

teal bridge
#

Do you mean the LocalizedContentManager in the game or does mod content manager refer to some part of SMAPI I haven't seen?

next plaza
#

It’s a SMAPI thing, one moment

#

The modcontenthelper has a reference to it

teal bridge
#

Ok, I see it.

next plaza
#

Back when I wanted to do that (with the 3D mod) I just used file paths

teal bridge
#

Ok, so it's hardcoded by extension. Kinda figured it was something like that, hoped that maybe there was a way to register something new.

next plaza
#

What kind of content do you want to load?

teal bridge
#

It's... a secret. Haha, not really, but something that doesn't exist yet, and I'm looking at options.

next plaza
#

Fair enough 😛

teal bridge
#

The key thing being that other mods would hold the actual assets, it's not just a thing I'd be doing for my own mod. (So, framework-y stuff)

brittle pasture
#

video player? 👀

next plaza
teal bridge
#

lol, video player... I'm sort of curious why you guessed that, especially with my modding track record.

uncut viper
#

if its not a video player it must be an in-game emulator, clearly. its the only other option

next plaza
#

Absolute file paths specified with Content patchers token of course

teal bridge
#

Yes, you caught me, I'm trying to embed a SNES emulator in Stardew.

next plaza
#

Still kinda itching to work on the 3D mod more….

#

But recreating assets is pain

#

Maybe if I made an easier tool to make the maps

teal bridge
#

And so begins this week's yak-shaving.

next plaza
#

Crocotile3D was easier than blender but still tedious

teal bridge
#

SMAPI doesn't block Harmony-patching of itself, right? Only its own reflection helper?

next plaza
#

Correct

#

It’s pathos, coming in with the steel chair! (Or however that saying goes)

lucid iron
#

i wonder if theres support for USD in monogame

teal bridge
#

Ok, thanks. It looks harmless...ish... to patch LoadExact

lucid iron
#

probably not

next plaza
#

(Work training project flashbacks)

teal bridge
#

(MonoGame supports US dollars?)

lucid iron
#

no its really just fancy markup for 3d scenes LilyDerp

next plaza
teal bridge
#

Ah. I'd certainly be surprised if it supported a thing like that, given how barebones a framework it is.

next plaza
#

Pretty sure I had to find something separate for gltf

lucid iron
#

yea its more designed for opposite of real time rendering

next plaza
#

You could probably compile USD into something usable by the content pipeline somehow though

#

Would it be worth it though?

lucid iron
#

not unless you design your game to use it as the scene hierarchy blobcatgooglyblep

teal bridge
#

"Worth it" is a very subjective term around here.

next plaza
#

Spooky

lucid iron
#

instead of whatever stardew has in GameLocation and such

next plaza
#

(Looks at content patcher alternative)

#

(Looks at yarn script events)

#

(Looks at… probably something else I’ve done)

lucid iron
#

but it was fun DokkanStare

teal bridge
#

Yes, I'm looking at this partly as a test of my own problem-solving ability... see if I've still got it.

rigid oriole
#

why is it that every time i want a mod i have to be transpiling menu draw code

#

i never avoid it

lucid iron
#

because you want to provide nice and integrated visual depictions of your mod

rigid oriole
#

so true

#

haven't touched modding much in months so what better way to come back than starting a huge project with weird transpilers

calm nebula
ivory plume
#

Yes, it's a framework used in many industries including Canadian Dollar.

teal bridge
#

Canadian Dollar wishes it could use US Dollars.

tender bloom
#

Canadian dollars are cooler

#

They’re waterproof

calm nebula
#

Is the Canadian dollar pinned to the usd????

teal bridge
#

No, isn't the exchange below 0.7 now?

old edge
#

Think I'm starting to get confused, I'm total beginner

#

Did you see my gist? I finalized some code cast to game location took a few days

#

But it didn't work

lucid iron
#

u know how there's this bit in Data/Locations

#
"CreateOnLoad": {
  "MapPath": "Maps\\Caldera",
  "Type": "StardewValley.Locations.Caldera",
  "AlwaysActive": false
},
#

you need to put your class's full name in Type, can get it by
typeof(CustomLavaLogic).AssemblyQualifiedName

#

in order for things to not explode on save you need to register your type with spacecore

#

after doing all that you might need some way to regenerate the location as the new custom class? unsure

old edge
#

So this code is unnecessary?

lucid iron
#

this subclass is prob fine, its all the stuff you need to do around it

#

in order to actually apply it to your location

old edge
#

I'm just patching things together but need to first find out what a subclass is

lucid iron
#

public class CustomLavaLogic : GameLocation

#

CustomLavaLogic inherits from GameLocation, making CustomLavaLogic a subclass of GameLocation

old edge
#

Ok so it seems like I don't need to change the c# portion?

lucid iron
#

step one is getting game to actually use the code Bolb

#

debugging comes later

final arch
old edge
#

0hmm

old edge
#

What am I missing?

calm nebula
#

Driveby - it's not calling your constructor

#

How can it

pale star
#

Well, I have no idea what I'm doing so I'll probably be here a lot. I want to make an NPC mod, and I found a tutorial thing, but idk what I'm doing. First off though, what is notepad++? I need it to make json files I think

lucid iron
#

!vsc

ocean sailBOT
lucid iron
#

notepad++ and visual studio code are both text editors

pale star
#

I can't even make json files just default

tender bloom
#

Let’s also make sure; how old is your tutorial?

#

NPC making changed a lot with 1.6

lucid iron
#

well first you install one of these programs

#

then u can do File > new text file

tender bloom
#

So you’ll want to make sure you’re following an updated one from March 2024 or later

lucid iron
#

json files are textfiles with the extension .json

pale star
#

It specifies its for 1.6

pale star
# pale star It specifies its for 1.6
Stardew Modding Wiki

So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide a basic but thorough walkthrough for ea...

#

Ok so which one do I need? I'm on the latest version.

brittle pasture
#

Download the Installer (first one) and execute it

pale star
#

Ok it's downloaded

velvet narwhal
#

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

  1. Tiakall has a great tutorial on making a custom NPC for 1.6:
    https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC

  2. Custom NPCs received many improvements with 1.6. For changes made, see the migration guide:
    https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Custom_NPCs

  3. Some information on the NPC wiki page is still relevant:
    https://stardewvalleywiki.com/Modding:NPC_data
    Just make sure you're checking the migration page and tutorial first as this page still has outdated information on it as well.

  4. Aviroen has put together a template that will allow you to easily create a romanceable NPC:
    https://stardewmodding.wiki.gg/wiki/Npc_template

velvet narwhal
#

tis updated, it's best to check the 1.6 migration before the actual npc_data page but other than that it's up to par

pale star
#

So now how do I make a json file with notepad++

velvet narwhal
#

save the file as .json and make sure it isn't something like .json.txt

pale star
#

I'm confused on the update keys

velvet narwhal
#

manifest? you don't need one right now, you can leave it as "Nexus:????" until you have an actual nexus ID

pale star
#

Alright

#

So would I just put the ID for content patcher in for the "ContentPackFor"?

velvet narwhal
#
    "UniqueID": "Pathoschild.ContentPatcher"
  }```
should look like this yep
pale star
#

So at the time being do I need anything for the dependencies?

velvet narwhal
#

not if you don't want any

#

you can make a fully functioning NPC with content patcher alone

pale star
#

So I think I should be done with the manifest now

#

Now the whole lot of reading

velvet narwhal
#

tia's guide is the best imo, if something doesn't make sense we have #1277457201077813280 for the nitty-gritty

lucid iron
#

do you have any art assets yet?

#

if not then take a vanilla npc's for placehold

pale star
#

I don't have any art yet.

velvet narwhal
#

yeah, really get the skeleton down and get your npc in game and then worry about the nuances

pale star
#

I really only have a basic idea atm

pale star
#

I'm confused why are these orange?

calm nebula
#

You don't have that.

pale star
calm nebula
pale star
#

Ah

#

That's just the way it was formatted in the tutorial

calm nebula
#

Yeah, it would work in smapi

#

Notepad++ will complain though

lucid iron
# old edge What am I missing?

by constructor atra means you need to have a public GameLocation() and a public GameLocation(string mapPath, string name), but that comes after actually getting game to attempt construction of your custom location class

pale star
#

Am I using the wrong path or does notepad complain about comments too

#

Because it's showing up orange

velvet narwhal
#

depends on your theme in n++, but comments are generally just // or /* CODEBLOCK */

#

darktheme makes the comments blindingly red

pale star
velvet narwhal
#

then yeah you're fine, light theme is probably just orange

#

you'll want to change the format at the top though

#

!cp

ocean sailBOT
velvet narwhal
#

we're on what, 2.3.0?

lucid iron
#

can u take regular screenshots? instead of photo

#

also for notepad++ you need to enable the json plugin

pale star
#

So I pull all of the character information into the dispos file? Like the gender and all that?

velvet narwhal
#

you'll be doing an editdata action to data/characters

merry rampart
#

So there are some mods that still use Mail Framework Mod. What can it do that CP can't regarding mail?

brittle pasture
#

attaching quality items

velvet narwhal
#

...batch mail?

#

1.6 has %item id though Added %item id <item id> [count] form which accepts a qualified or unqualified item ID. If multiple items are listed (e.g., %item id (BC)12 3 (O)34 5 %%) one set will be picked randomly. This deprecates the bigobject, furniture, object, and tools options.

brittle pasture
#

can't do iridium quality though

velvet narwhal
#

SDVpufferthinkblob interesting

merry rampart
#

hmm i dont think i need item quality

uncut viper
#

you could put an iridium quality thing in as a dialogue action command but it wont show as an attachment, so its like, kinda halfway there ish

lucid iron
#

do you still need mfm for custom backgrounds

uncut viper
#

no

lucid iron
#

then its just being nicer format Bolb

velvet narwhal
#

does mfm put the triggeraction n stuff all into one? cause that could be one benefit

merry rampart
#

I'll just stick with CP then. All I need is for an NPC to send me a crafting recipe

uncut viper
velvet narwhal
#

ah so instead of the multiples of editdata being like, the triggeraction, mail, basically all of the "ways" to get the mail being put into the singular dictionary that it has

#

i haven't read it's docs much because it's hard for me to read off of nexus without glueing my eyes straight onto the screen

pale star
#

I might need help with the "Home" part.

#

For the disposition

#

So like, for the time being, she starts off at Lewis's house, because that's where she works at the start of her story.

round dock
#

Just a question, the vanilla item id’s have the same structure as modded ones right? Just [ModdedItemID]

velvet narwhal
brittle pasture
#

item ids can be any strings, the mod ID thing is just convention to avoid conflict

teal bridge
#

Qualified item IDs don't have a structure per se, although it's polite to use the qualifier.

uncut viper
#

newer vanilla ids are also not just numerical ids

round dock
#

Oh no, yes I understand. I just wanted to spawn them in dialogue and wondered if enclosing them [] like this would do the same as vanilla ID ones.

velvet narwhal
#

shakes fist at Moss

velvet narwhal
calm nebula
#

Moss is one of the good boys

velvet narwhal
#

moss just blocks my path SDVpufferpain green rain pain

velvet narwhal
#

man the .gg looks wild on mobile

#

!unpack

ocean sailBOT
#

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

velvet narwhal
#

lewis' house is called "ManorHouse" iirc

round dock
#

Evelyn’s house being called joshHouse or of the same nature still makes me giggle lol

tiny zealot
pale star
#

Like the story I have is basically, she's a maid who moved to the valley because she wanted work, but she didn't want to be a worker for any of the rich snobs in Zuzu, and really the only person who had the space for her is Lewis. And throughout the story and as you upgrade your house bigger and bigger, you need more help maintaining it, and that's when she comes in.

#

I have no idea how to do any of that but I'll figure it out

velvet narwhal
pale star
#

I'm nowhere near that far. I'm still in the disposition

velvet narwhal
#

a mail sent upon farmhouse upgrade, and that mail is the unlockcondition etc etc

pale star
#

But when I get there it'll be something like you have two hearts and the first upgrade, she'll come over once a week. You have the second upgrade and like 4 hearts she'll come over like twice a week. Each extra room added she'll come over more often, eventually leaving Lewis entirely after you get all the rooms and 8 hearts

#

That's kinda what I want to do

glad zenith
#

Hi guys, I was working on getting a custom background for my letter but instead of loading the custom letter it just inserts the actual text.

brittle pasture
#

that doesn't look like an asset name

#

how did you load the PNGs?

uncut viper
#

the asset name needs to be the same as the Load target you loaded your custom letter texture to

pale star
#

Huh, it doesn't seem that I can use StardewXnbHack

#

A lot of red saying no memory

glad zenith
#

Ohh, I like- didn't do that at all.

brittle pasture
pale star
#

Idk it seems to be working now

#

Just gotta let it do everything

#

Alright it ran

#

So now I have everything unpacked

#

Now what?

glad zenith
#

Ok so, like- I've come to the conclusion of.. I don't know how to that any of that.

velvet narwhal
# pale star Now what?

now you're free to dig into anything you like to see, from how data/characters is set up, to how their animationDescriptions is, etc, in the data folder

pale star
#

I'm trying to figure out where to spawn this character. All I know is somewhere in Lewis's house

old edge
velvet narwhal
brave fable
#

the one time i've ever wanted to use CustomFields and i find it's strings only SDVpufferfush you can't even throw in a list and parse it yourself later

pale star
#

I do want her to be romanceable. I think the story I'm going for is way too complicated though for someone who has no idea what he's doing

tiny zealot
velvet narwhal
#

npcs are just one of the main concepts that has the most moving content patcher parts SDVpufferclueless

calm nebula
brittle pasture
#

Split(",") my beloved

calm nebula
#

And the one time I manage it

#

1.6.9 eats that feature

pale star
brave fable
# tiny zealot why not? it works with ModData

SDVpufferfush
[10:55:21 WARN Content Patcher] Can't apply data patch to Data/Locations: failed converting entry to the expected type 'StardewValley.GameData.Locations.LocationData': Error reading string. Unexpected token: StartArray.

#

i'm sure customfields works real good for the single example in the wiki where it's used for an asset name lol

tiny zealot
#

hmm i'm surprised you can't serialize and deserialize into/out of it

brittle pasture
#

they're both dicts right (ModData and CustomFields I mean)

brave fable
#

i was rather hoping you could

tiny zealot
#

you definitely can with moddata. i'll be sad if it ever breaks because i extremely use it

#

i, too, thought they were both string->string dicts and that the same rules applied

brave fable
#

ModDataDictionary is a string,string dictionary with some fancy wrapping, CustomFields seems to just be a Dictionary<string, string>

next plaza
#

Fun fact: One of the custom fields (I think powersdata?) is string-> object

uncut viper
#

(it is powersdata)

next plaza
#

I wish they were all like that

brave fable
#

one of them, huh SDVpufferfush

uncut viper
#

technically there are others but they arent data assets you can access with CP anyway

next plaza
#

Perhaps then I wouldn't be off in spacechase0.SpaceCore/___ExtensionData land

pale star
brittle pasture
# pale star Because I have no clue

it's an ID to uniquely identify an entry in a list. I don't think what they're named is important, as long as they're unique to other entries

brave fable
#

supposedly Default is fine for an id since you're encouraged to only ever have one Home entry anyway (??)

#

guess we're doing another yet custom data file lol

pale star
#

I honestly think I might be doing something too complicated for later me I might have to change some things

#

My computer is refusing to close discord

brittle pasture
#

custom asset are cool. I have a boilerplate so it's like 2 lines to add another one

pale star
exotic pilot
#

Hi - Sorry to ping you on such an old message, but I'm having the same issue that Lemurkat had with funLeave/Return dialogue for marriage candidates, and you appear to be the only one who understands this stuff SweatSmileIan So as of 1.6, the funLeave/Return dialogue is now occasionally returning "..." for some characters even though it worked previously. What exactly is the solution here? To use {season}_{name} instead? To put the dialogue keys in the generic marriage dialogue file? To change the schedule to use marriageJob and then change the keys to jobLeave/Return? Sorry to bother you, again, and thank you for your time!

lucid iron
# old edge So space core needed?

the game saves location data, so spacecore is needed to properly serialize your custom class, this is separate from having correct constructors

pale star
calm nebula
tiny zealot
brittle pasture
#

I heard only in SC

calm nebula
#

Only with spacecore

round dock
#

funLeave doesn’t work? It works with mine iirc SDVpufferthinkblob

calm nebula
#

We actually asked about it wayyyyy earlier tbh

#

Like last year

tiny zealot
#

boo

pale star
#

I think I'll have to come back to this home thing later

calm nebula
#

Tbh I can understand why they are afraid it'll cause regressions

#

The dayupdate code is nightmarish

#
  • _newDayAfterFade and the code that loads you into a save are just subtly different
velvet narwhal
pale star
#

It only just hit me how long this'll all take in total

brave fable
#

it takes a while SDVpufferfush

azure hound
#

does anyone happen to know what you're meant to put in the for the "rotations" part? i've been trying so hard to find examples of this, but it feels impossible purfecLost
either way, everything i input isn't showing up how i'm trying to have it LOL and i am simply losing my damn mind

uncut viper
#

NPC mods are one of the most long-term and tedious (not difficult, just a lot of stuff to do) projects you can take on, especially as a new modder, so it takes a lot of self motivation

velvet narwhal
#

is that one set to the direction standard? 0=north, 1=east, 2=south, 3=west? i don't remember SDVpufferthink

round dock
#

I imagine you’d still have to worry about portraits, dialogue, sprites, events, schedule etc

azure hound
#

thank you LOL i feel like i always come here with the dumbest questions LOL SDVpuffersweats
but i literally am ripping my hair out at times trying to figure it out hahahaha

velvet narwhal
#

it could possibly be up down left right as well, it's a headache for farmhouse edits SDVpufferpain

pale star
#

I'm still trying to figure out this home thing

azure hound
rancid temple
#

Pretty sure it's an int of how many times to rotate the furniture lol

uncut viper
#

roku got to it before me but yeah lookin at the code im pretty sure thats what it is too

brittle pasture
#

Spin 1/2 furniture when

azure hound
#

thank you!!

#

LOL

uncut viper
velvet narwhal
#

pings leroy

rose forge
#

I'm trying to add compatibility of my mod slow seasons to work with longer seasons, for now just 12 months instead of 4, so 3 spring, 3 summer, and so on

but smapi does not like it when i add any days after 28

        {
        "Name": "SeasonStage",
        "Value": "Early",
        "When": { "day" : "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28",
        }
        },
        {
        "Name": "SeasonStage",
        "Value": "Mid",
        "When": { "day" : "29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 56",
        }
        },
        {
        "Name": "SeasonStage",
        "Value": "Late",
        "When": { "day" : "57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84",
        }
        },```

and advice on how to do this more simply? the way my mod works usually is just applying on specific days of the month, but longer seasons adds multiple months per season, the mod author themselves says to add more days but smapi gets angry and says the numbers are invalid
lucid iron
#

furniture orbital theory

brittle pasture
pale star
lucid iron
#

i guess you can do some maffs with query

rancid temple
#

There's a mod that lets you add more days to a month

rose forge
#

That's the mod that I am trying to add compatibility for

uncut viper
lucid iron
#

query: {{day}} <= {{EarlyDay}}

uncut viper
lucid iron
#

bolbthinking maybe

velvet narwhal
uncut viper
# calm nebula Fixed point

im not a mathematician but im pretty sure a fixed point number will not suddenly change the definition of what an integer is

velvet narwhal
#

i couldn't remember how link implemented it tbh, i just pulled it back up to see if it was relevant SDVpufferclueless

rancid temple
#

The only thing I see on this mod's page is that you change the config settings, so just use GMCM?

#

I'm pretty sure linkoid was just doing math for a hypothetical lol

rose forge
#

I am trying to find the exact error, but it was content patcher saying that the "when" and day category was invalid

lucid iron
#

oh yea u cant just put an object there, when takes a string

uncut viper
#

they did put a string

lucid iron
#

oh i read wrong KasumiDerp

uncut viper
#

When is an object

rose forge
#

Ill see if adding the month names instead will work, I don't think adding extra days will work

lucid iron
rose forge
#
[18:23:14 WARN  Content Patcher] Ignored (CP) Soft Slow Seasons > 'SeasonStage' token: its When field is invalid: invalid day condition: invalid values (57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84); expected one of 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28.```
uncut viper
#

seems like the Day token specifically enforces 28 day seasons?

rose forge
#

Yeah, so I guess more days is not possible

lucid iron
#

does the longer seasons mod expose a separate day token?

uncut viper
#

not with the CP token, no, but yeah id expect the mod to provide one if anything

velvet narwhal
#

the sprang got me again, dammit

rose forge
#

im not good with code just content patcher

#

if you guys wanna take a look

uncut viper
#

oh i forgot the mod is just like, its own t hing, and not intended for mod authors to make use of

rancid temple
#

Yeah I don't see anything about being able to use CP to do anything with it

rose forge
#

yeah, but i have gotten countless asks to make compatibility, even the mod author got asked, but they said to just add more day numbers, which did not work

pale star
brittle pasture
#

that mod seems to just make the values that stop at 28 increase beyond 28

uncut viper
#

ill be honest if someone asked me to make my mod compatible with something that changes something this fundamental id just say no lmao

tiny zealot
rose forge
uncut viper
#

especially if the mod itself does not provide easy ways to provide compatibility

rancid temple
#

Also, what exactly is the incompatibility? It might not be something feasible to even make compatible

brittle pasture
uncut viper
#

your options with content patcher alone would be very limited

pale star
rancid temple
#

Alt tab or alt enter

#

If alt tab, you might have to click the game window then alt tab

rose forge
rancid temple
#

The game focus stuff is bad

pale star
#

X 3 Y 7 got it

uncut viper
round dock
pale star
#

So is the name of the building just "ManorHouse"?

rancid temple
#

There's a Debug Mode mod you can use to get coordinates and location name

round dock
#

Yeah, I also used that mod to spawn ponds at a PIF but thank you! SDVpufferheart

rancid temple
#

Displays as GUI in game

tiny zealot
rancid temple
#

I just always keep the mod lol, I live for debug tools

pale star
tiny zealot
#

yes

pale star
#

Alright

uncut viper
round dock
#

Thank you, ichor SDVpufferheart

rose forge
uncut viper
#

maybe theres something you can do with the DaysPlayed token instead, but itd be some weird modulo stuff

pale star
#

Disposition finally done

uncut viper
#

DaysPlayed plus the query token I mean

tiny zealot
uncut viper
#

(though even with DaysPlayed, thats only still possible if the number of days/months is fixed anyway, which if the original mod makes it configurable, it isnt, so...)

rancid temple
#

The first post in the Posts section has info on making Soft Slow Seasons compatible

#

From the author lol

uncut viper
#

well unfortunately that post just says to add more numbers to the Day token

#

so, its wrong, in other words

rose forge
#

Yes I already saw that and it doesn't work

uncut viper
#

they also said theres nothing they can do on their mods end which is not true, they can add CP tokens to help

tiny zealot
rose forge
#

it would be an easy fix if cp would allow more day token numbers i think

rancid temple
#

Yeah, fixing it from CP side seems like maybe kind of a slim chance right now

velvet narwhal
#

i don't think even the modulo shenanigans would work because the user could have the crazy 999 days SDVpufferthink

rancid temple
#

I'm still surprised this mod even works honestly, it's such a wild change to such a fundamental part of the game lol

velvet narwhal
#

i second button's point, since you can't on your side make it compatible, just preface it that it's incompatible

rose forge
#

Yeah that is what I have been planning, I will at least try to reach out to the author

#

and if nothing can be done I will leave it at that

pale star
#

I'm lost again. I'm on the portraits part of the guide I'm on

rancid temple
#

Then again, it's an updated aeden mod so I guess I shouldn't be surprised, aeden was op

velvet narwhal
#

(now that i had to think about it for a second, maybe the daysplayed % 28/56/84/112, set season change flag could possibly work, but that's getting into the real shenanigans)

undone yarrow
#

Hello theree ! So i wanna actually get started with a small mod where i have to make the farmer find secret notes (before trying to make a npc mod one ) and i heard the mail framework on nexus is the one to help me

#

Any advice or tops to share :00 ?

rancid temple
#

Do you mean actual secret notes or just mail as a stand in?

uncut viper
#

like actual secte notes?

velvet narwhal
lucid iron
#

you can ask ichor about it but it seems pretty straightforward bolbthinking

uncut viper
#

(... secte? cmon brain, at least try a little)

lucid iron
#

usage of the secret notes framework i mean]

calm nebula
#

Sectre

undone yarrow
uncut viper
#

(i saw that)

undone yarrow
uncut viper
#

if you want actual secret notes, the framework avi posted is whatcha want

undone yarrow
#

RAAAAAAAAH

velvet narwhal
#

a second consumer, ichor!!

uncut viper
#

the mail framework mod is for mail in the mailbox specifically and is also mostly superseded by content patcher now anyway

undone yarrow
#

Ooooh okay okay

lucid iron
#

i wish i could make ilspy write out

b.DrawString(
    Game1.dialogueFont,
    text,
    ...
);
pale star
#

I'll be back tomorrow for help with more modding. I am going to go try my luck at making pixel art.

lucid iron
#

instead of putting it all on 1 line

undone yarrow
lucid iron
#

maybe there is linter i could run the output through

undone yarrow
#

Oooh woops

#

Thank you !

tiny zealot
#

a consumer! SDVpufferwow

brittle pasture
#

just add newline after every comma SDVpufferclueless

tiny zealot
# undone yarrow Thank you !!

in all seriousness, ping/ask me anytime if you need help with the secret note framework. i hang out on here all the time

undone yarrow
#

Gotcha SDVpuffersquee

lucid iron
#

i wonder why game doesnt have any 9 slice thing

#

do they just make all the buttons exactly the desired size

tiny zealot
#

something like that, i expect. it is surprising though

calm nebula
#

The game has nine slicing

#

It's just named something like IClickableMenu.drawBox

lucid iron
#

yea i mean a helper func that accepts texture and bounds bolbthinking

tiny zealot
#

that func is one of the first things i banged out when i was doing ui code

#

at least it's very easy to implement

lucid iron
#

yea blobcatgooglyblep

#

i was dumb and extended this texture by drawing a 1 pixel wide bit 10 times kyuuchan_run

uncut viper
#

the smallest thumbs up

velvet narwhal
#

(same brain)

lucid iron
#

DokkanStare ah it does exist

lucid mulch
round dock
#

I had … occurrences too but they usually stemmed from blank dialogue (my own omissions sadly)

lucid mulch
#

but the tl;dr is you need all of them that are name specific, so {season}_{name}, funReturn_{name}, jobReturn_{name}
does not matter if its generic or npc specific, it always loads npc specific roommate first, then npc specific marriage, and falls back to generic (and falls back to ... if that failed too).

#

the mod is just a simple harmony patch that logs when those fallback flows happen (attempts roommate but is missing, attempts npc specific but missing, etc)

round dock
#

Yeah, I was also wondering abt it too. funLeave_SpouseName worked for me, personally.

lucid mulch
#

1.6.9 will log the original dialogue when ... happens now instead of a cryptic error

#

all of them are possible

round dock
#

But generally, my mods from 1.6.8 wouldn’t need too much tweaking, no?

velvet narwhal
#

i think cause you were following my template you should be fine

#

i covered all of the bases SDVpufferthink

round dock
#

(avi what would i do without you 🫂)

velvet narwhal
#

i should triple check my actual dialogue template cause idr if i've slipped in the 1.6.9 changes SDVpuffersquint

lucid mulch
#

I'm just a humble blacksmith, I don't do content work, but I can reverse engineer cryptic errors 😛

round dock
#

But I think… I don’t have blank dialogue anymore. I did my i18n manually so that might have been my main issue SDVpuffergus

#

Really need to recheck the beta patch b_hyperfrog not sure if I coded that event properly (most likely didn’t)

velvet narwhal
#

oh, now that i actually have time on my hands

#

where/how does one cite the findings, because i planned on moving all of the 1.6 NPC changes to their respective pages

#

op nevermind i found the faq

#

oh wait did someone beat me to it SDVpufferthink

#

well--i was gonna fix up dialogue but uh SDVpufferclueless i'd rather not break the wiki with my confusion

mint eagle
#

alright, so there is totally a depth parameter that actually lets me draw what I want. now I need to know when to draw it.
the goal: to draw custom things in the world that aren't bound to existing game objects, for, uh, reasons.
things that won't work:
events.Display.RenderedWorld, because depth is already compiled. events.Display.RenderingWorld, because it says in the docs that drawing is ineffective during this event.
something that would probably work:
harmony patching farmer drawing to add a call to my own "renderAllThatStuff()".
why i don't like it:
is harmony patching necessary for this? am I missing an event where I can draw stuff with depth?

#

for ease of conversation, let's assume I want to draw some particles. (that's half-correct, sort of.)

#

i feel like this might work?

private void OnRenderedStep(object? sender, RenderedStepEventArgs e)
{
    if(e.Step == StardewValley.Mods.RenderSteps.World)
    {
        //draw my lovely particles here?
    }
}
#

but then that might be equivalent to the RenderedWorld event where depth is already shipped

#

guess i can do some test renders and muck about with it

old edge
#

Display_RenderedStep?

mint eagle
#

yeah, that's what I'm experimenting with now

old edge
#

World_Sorted

woeful lintel
mint eagle
#

saw that too. i guess what im not clear on is how Layers vs Depth works. if i draw something during the Buildings step, is that forcibly in front of background layers? what if the thing i want to draw can move behind or in front of a building, contextually?
or do layers not affect sorting?

#

almost done writing my test renderer. so i'll find out in a moment.

old edge
#

Layer depth guessin it is 0.004f

#

Building layer is fine for everything since the game takes care of that I think

#

I managed to hodge podge together a special effect in c#

teal bridge
# lucid iron i was dumb and extended this texture by drawing a 1 pixel wide bit 10 times <a:k...

That sprite is a bit unusual, if you want to draw it with an arbitrary size then you really have to split up what I called the "frame" and the "drawer".
https://github.com/focustense/StardewFishingSea/blob/master/FishinC/UI/SeedFishInfoView.cs

(This might be a different project of yours but if you're already using StardewUI anyway then I suggest using its nine-slice because it actually caches, unlike the mess in drawTextureBox.. and lets you specify scale and target size independently.)

old edge
#

How can I register a location type to spacecore I wonder,?SDVpufferchickhands

brave fable
#

utterly simple:


[XmlType($"Mods_{ModConsts.MyUniqueId}_{nameof(CustomLocation)}")]
public class CustomLocation : GameLocation
{
  public CustomLocation() : base() {}
}

public void RegisterCustomLocations()
{
  this.SpaceCoreAPI = this.Helper.ModRegistry.GetApi<ISpaceCoreAPI>("spacechase0.SpaceCore");
  this.SpaceCoreAPI.RegisterSerializerType(typeof(CustomLocation));
}
#

method can be called once, presumably on GameLaunched

#

xml attribute apparently requires Mods_ followed by some unique identifier of your choice

teal bridge
# mint eagle saw that too. i guess what im not clear on is how Layers vs Depth works. if i dr...

I haven't been through all the decompiles for this, but it's my understanding that the different rendering steps all use different sprite batches, whereas the layer depth is an arbitrary sort order in a single sprite batch (using Deferred sorting). Buildings are drawn in World_Sorted (IIRC) and normally, buildings, like everything else, are sorted top-to-bottom (check Building.draw).

So if you want something to be either contextually in front of or behind buildings then you have to either (a) draw it in the same step and change its layer depth to be higher or lower than that of the specific building in question, which depends on its Y position, or (b) if you want it to be sometimes behind or sometimes in front of all buildings then change the actual step it draws in, for example use World_AlwaysFront, but that affects a lot more than just buildings.

#

It can vary, though. You have to look at the SpriteSortMode. For example, World_AlwaysFront uses SpriteSortMode.Texture instead of SpriteSortMode.Deferred, and that one is... interesting. Similarly, some steps use FrontToBack which means the sorting is in reverse order. Bottom line, you cannot assume anything useful about a specific layer depth without knowing which rendering step it's drawing in (Buildings aren't a step), what sort mode it's using, and what depths the other objects in that step are using since it's all relative.

mint eagle
#

i just need to draw pseudo-objects with believable depth. (and to fix the depth on my spline wire segments lol)
I've given Starbot control of drone NPCs. but i really don't want to have to hack actual NPC objects to all heck to make them behave appropriately when all I need is a sprite.
but i need the sprite to behave, depth-wise.

#

i think i have something that should kinda/sorta work. but im tired so i'll find out tommorow

#

just seems weird that something so simple requires such hacky approaches

teal bridge
#

"Behave" isn't qualitative, it'll behave exactly how you tell it to behave.

#

Y-sorting is pretty typical in 2D; if Y1 is above Y2 then it's also "behind" Y2. That's the typical 2D perspective. That is probably what you mean when you say "behave depth-wise" but of course the game can't know exactly what order to draw things in unless it's told that.

old edge
#

What is modconsts?

brave fable
#

whatever you like ✨ some unique identifier of your choice

old edge
#

So i dont put those exact words? And I copied your example but I'm getting build errors

#

It says name does not exist in current context

brave fable
#

modconsts is just a file i have, again, you can give any name you like to XmlType

#

you also don't need to have an instance of spacecoreapi on your modentry, you can just keep it local if you like

#

it's just example code, i don't know how your project is structured

old edge
#

then another invalid token } in class record struct after " {public CustomLavaLogic() base() {} }

brave fable
#

do you have a background in c#, or just trying things out?

old edge
#

I'm a beginner r level

brave fable
#

ahh okay lol, i'll zoom it out a little

old edge
#

When I type something in where you put modconsts It says it doesn't exist

brave fable
#

the $ at the start of that text indicates it's tokenisable, using {} braces to evaluate expressions -- think like CP tokens

#

so just like in CP, you can have $"some literal text with a {CodeGeneratedValue()}" and have it resolve as a string

#

i just did it there to be extra or something

old edge
#

$"Mods_{dreamygloom.CapeStardewCode}_{nameof(CustomLavaLogic)}")]

#

It says the name dreamygloom does not exist in the context

brave fable
#

it's trying to evaluate it as code SDVpufferthumbsup you can just write it without {} braces, it's fine

old edge
#

Ok this time I got a successful build but

brave fable
#

here's a full working sample:

using System;
using System.Xml.Serialization;
using Microsoft.Xna.Framework.Graphics;
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;

namespace SDVCustomLocationTypeTest
{
  public interface ISpaceCoreAPI
  {
     void RegisterSerializerType(Type type);
  }

  public class ModEntry : Mod
  {
    public override void Entry(IModHelper helper)
    {
      helper.Events.GameLoop.GameLaunched += this.OnGameLaunched;
    }

    private void OnGameLaunched(object sender, GameLaunchedEventArgs e)
    {
      ISpaceCoreAPI api = this.Helper.ModRegistry.GetApi<ISpaceCoreAPI>(uniqueID: "spacechase0.SpaceCore");
      api.RegisterSerializerType(typeof(MyCoolLocation));
    }
  }

  [XmlType($"Mods_MyCoolMod_Nice_{nameof(MyCoolLocation)}")]
  public class MyCoolLocation : GameLocation
  {
    public MyCoolLocation() : base() { }

    public override void drawWater(SpriteBatch b)
    {
      base.drawWater(b);
    }
  }
}
#

now with all the silly bits removed, and lumped into a single file for your convenience

unique sigil
#

@spice inlet pardon the ping, but is it possible to add a warp in a PIF map to another tile in the same PIF map?

old edge
#

Ok so my location is called custom_capekeymaze but the cs file is CustomLavaLogic and it's named that so what do I put as the type?

brave fable
#

what's the name of your project in visual studio?

#

for example, my code above is SDVCustomLocationTypeTest

old edge
#

The whole project?

#

CapeStardewCode.csproj

#

Or the Namespace?

brave fable
#

in that case, your CP component will look like this, depending on the exact asset name of your map and location:

"Changes": [
  {
    "Action": "EditData",
    "Target": "Data/Locations",
    "Entries": {
      "Custom_CapeKeyMaze": {
        "CreateOnLoad": {
          "MapPath": "Maps/Custom_CapeKeyMaze",
          "Type": "CapeStardewCode.CustomLavaLogic, CapeStardewCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
        }
      }
    }
  }
]
#

the namespace should match the project name SDVpufferthumbsup

#

if by 'type' you meant the XmlType, the answer is and always forever will be whatever you like ✨

old edge
#

Do I put the unique id what is in the manifest?

brave fable
#

unique id where 📝

old edge
#

Manifest.json

#

Mods_dreamygloom.CapeStardewCode.CapeStardewCode.CustomLavaLogic?

brave fable
#

to clarify, the "Type" field there is exactly as it should be -- you only want to change the name under "Entries" and the value of "MapPath" if those are different in your mod

old edge
#

It was saying something about unique id

brave fable
#

the value i've given to "Type" is the fully qualified assembly name, which is different to both the xmltype and your mod's unique id

old edge
#

What unique id did you mean

brave fable
#

i never mentioned one, i just asked where you were putting the unique id from your manifest hahah

old edge
#

Idk what the xml type attribute is supposed to look like

#

I just make a random one?

#

So after name of am I supposed to put the location name?

#

Or the subclass name ?

brave fable
#

for example, mine is Mods_Blueberry_Hikawa_House

old edge
#

Testinf

#

Idk I've been at this for couple weeks

#

No still get the same problem invalid type for location

#

Idk how to get the type if I implemented the c# code already?

#

I'm trying everything

#

Invalid type ...

silver pelican
#

hawo! im making like the interiors of a shop map using tiled. do you always set the tile render order left down or right down? for every map u make. (or if it makes any difference xd)

brave fable
spice inlet
unique sigil
brave fable
#

@next plaza stardew valley 1.6.9.24268 is out 🥳
Broken code in SpaceCore.dll: reference to StardewValley.Farmer.checkForQuestComplete (no such method).

#

just as i was getting into some really wonderful wastes of time, too

vernal crest
old edge
#

What's solution folder?

brave fable
#

the folder with your VS solution:

old edge
#

I can simplify the xmltype attribute? You added many brackets and () in your example so is name of necessary?

brave fable
#

please don't worry about xmltype haha

#

share your solution, you can delete/omit the bin and obj folders if you like (they're made whenever you run the mod)

#

alternatively, add this line to your Entry method:

this.Monitor.Log(typeof(CustomLavaLogic).AssemblyQualifiedName);

then run the mod and share your log file here SDVpufferthumbsup

old edge
#

I don't think I get it then

dusty scarab
#

can I ask a question/seek opinions about map layouts in this channel, or would that belong more in mods-art?

vernal crest
#

If it's about the visual aspect of it, probably the art channel yeah. (As opposed to like, mechanic questions about NPC pathing or something.)

brave fable
# old edge I don't think I get it then

the really critical part of this is the "Type" field in your data/locations entry, that's the part that's delicate and needs to match things in code loosely. the log line above should show the needed value

dusty scarab
old edge
#

Modentry.cs?

brave fable
#

the entry method SDVpufferthumbsup as in public override Entry(IModHelper helper) { ... }

vernal crest
dusty scarab
#

that's true

old edge
#

Am I supposed to put Mods_ in the type and the xml part?

brave fable
#

in the XmlType part

#

please leave "Type" exactly as-is lol

old edge
#

I still get invalid type I think misunderstanding something

brave fable
#

you really really really need to share your log file

#

and/or your solution

old edge
#

I have to figure how to do that too

brave fable
#

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

old edge
#

Oh the smapi log it says invalid type I'm trying different names but none work and tried simplify xmltype name. Is there a wiki about it?

brave fable
#

please link the log here SDVpufferchickhug

dusty scarab
#

when making a farm map, do I need to have preset locations for cabins, or will the game randomly pick locations if I do not supply that map data?

rancid temple
#

Pretty sure you need preset locations

dusty scarab
#

irritating, but fair enough

rancid temple
#

Would be more irritating if it chose to put a cabin in front of a warp or directly in front of the farmhouse

dusty scarab
#

I'd assume it'd have some sort of internal logic to avoid putting them too close to an existing building, and you can move them at the carpenter's shop, but that's also a fair point

rancid temple
#

That would require a lot more code lol

#

Especially when you consider that custom farm maps can basically have any layout

dusty scarab
#

I know less than nothing about C#, so I will take your word for it, lol

unique sigil
dusty scarab
unique sigil
#

nope

#

while i wait for the PIF update, time to go back to my roots (i want to experiment making a map with multiple screens!

vernal crest
#

Map with multiple screens?

unique sigil
#

like still just one map, but it has several "screens"

vernal crest
#

Hmm, I see. Is there any advantage to doing that over having multiple maps?

unique sigil
#

nothing. just for the aesthetic

#

dunno for other map types, but it looks nifty for a farm map

#

you could add secret paths in your map. just a nifty feature for the player

vernal crest
#

Ah, I see. To me that example you shared looks like it was a farmhouse made by someone who didn't know how to make custom maps so they tried to hide different "maps" on one giant map (which is very much not something I prefer in a farmhouse because if I zoom out I can see bits that are not meant to be part of the current floor/storey and it feels less immersive for me) but I do think there would be some fun utility in using it for a farm map instead. I saw that DaisyNiko's Capitalist Dream Farm makes use of warps to get between different areas of the map that are otherwise blocked off so it almost feels like they are different maps.

unique sigil
#

yeah that's what i want to try out!

#

you do need a lot of empty space between "screens" so the map could be pretty big

vernal crest
#

Just make sure you don't go over the max map size and I'm sure you will be fine

unique sigil
vernal crest
#

Oh yeah haha that makes more sense for an example of a farm map lol

#

Lucky the farmhouse one did at least have different map sections so I got the idea

#

Speaking of maps: accidental map crimes

unique sigil
#

oh god whats going on in here

vernal crest
#

I forgot to change the patchmode to overlay

#

However, my plans for a path all the way from town to the national park are going to be a compatibility nightmare so I think I might give up on it anyway

rancid temple
#

There shouldn't be a set max map size

#

Just a matter of performance now

vernal crest
#

Has the layering problem been fixed?

rancid temple
#

Should be, SVE has a lot of maps over the size

#

And I made one that was absolutely massive as a test

#

And then tried to run across it and decided absolutely fucking no way

vernal crest
#

Lol

rancid temple
#

I at least didn't notice any issues on my map, though I'm not sure what exactly was breaking in the layering

vernal crest
#

Yeah me either. I've never tried making such a big map anyway because they are exhausting.

#

Bleh map patches are annoying. Begone, bush!

calm nebula
rancid temple
#

!maxmapsize this at least details one of the rendering issues

ocean sailBOT
#

The maximum safe map size is 200x155 (200 wide, 155 tall). Beyond 155 tall, the game starts having major rendering errors. Beyond 200 wide the bottoms of trees are drawn over the tops. Try splitting your map into multiple maps if you want more room!

rancid temple
#

I didn't have any trees on my map

#

Remind me in 6 hours to mess with map sizes again and actually write down the results this time

patent lanceBOT
#

you're in luck, I have one spare egg timer available. I think it's broken but we'll give it try. (#6260520) (6h | <t:1727203621>)

tiny zealot
vernal crest
#

Something I have learned from CA for making my own game one day is to NOT have tilesheets with invisible tiles in some seasons that are visible in other seasons! A tile should have stuff in it in all seasons or none!

round dock
#

You can edit the texts at the strings without it causing a lot of issues, right? SDVpufferthinkblob

#

I mean like, through CP

tiny zealot
#

are you talking about editing StringsFromCSFiles?

vernal crest
#

Texts at the strings? If you mean like in files like StringsFromMaps or StringsFromCSFiles, yeah.

round dock
#

I saw the file where I can get Sebby to sing MCR when he goes to the beach but I've yet to find the "honey you're pregnant" one (ty ichor SBVCute ) but thank you

#

Tia suggested I could do locational dialogue too, though

tiny zealot
#

it's no problem to edit StringsFromCSFiles with CP, but i recommend gating your edit as narrowly as possible behind When conditions, since it's a shared generic resource

lucid iron
plucky reef
#

so if big map cause problem, how SVE make big map with no problem?

lone ice
#

Can anyone help me figure out what I've done wrong 🤣 :

   // Secret woods off south forest
   {
     "Action": "Load",
     "Target": "Mods/{{ModId}}/Maps",
     "FromMapFile": "assets/Maps/ShirahoshiWoods.tmx"
   },
   {
     "Action": "EditMap",
     "Target": "Maps/Forest",
     "AddWarps": [
       "79 107 {{ModId}}_ShirahoshiWoods 13 31"
     ]
   },

   //Location data for the secret woods
   {
     "Action": "EditData",
     "Target": "data/Locations",
     "Entries": {
       "{{ModId}}_ShirahoshiWoods": {
         "DisplayName": "Shirahoshi's Secret Wood",
         "DefaultArrivalTile": {
           "X": 13,
           "Y": 31
         },
         "ExcludeFromNpcPathfinding": false,
         "CreateOnLoad": {
           "MapPath": "Maps\\{{ModId}}_ShirahoshiWoods",
           "Type": "StardewValley.Locations.{{ModId}}_ShirahoshiWoods",
           "AlwaysActive": false
         },```
#

"[game] Couldn't create the 'ShipsAhoy_ShirahoshiWoods' location. Is its data in Data/Locations invalid?"

tiny zealot
vernal crest
lone ice
#

okay let me go back to that

#

I've tried so many things and nothing has worked so far

vernal crest
#

Just make sure your Load Target and your MapPath are both Maps/{{ModID}}_ShirahoshiWoods

plucky reef
#

that was my problem when the warps weren't working, I was loading {{ModID}}_FarmName and putting warps on {{ModID}}.FarmName.

lone ice
#

Do I still format it like this: Maps\{{ModId}}_ShirahoshiWoods for MapPath?

#

or Maps/{{ModId}}_ShirahoshiWoods

#

because the other location data I copied that from had Maps\

#

i'm trying to duplicate \ but discord won't let me

brittle pasture
#

It doesn't matter, though / is usually recommended over \\

#

and you need double backslashes since Discord escapes them (\\\\ becomes \\)

lone ice
#

is this everything I was supposed to change? the game is still saying it's invalid:

  {
    "Action": "Load",
    "Target": "Maps/{{ModId}}_ShirahoshiWoods",
    "FromFile": "assets/Maps/ShirahoshiWoods.tmx"
  },
  {
    "Action": "EditMap",
    "Target": "Maps/Forest",
    "AddWarps": [
      "79 107 {{ModId}}_ShirahoshiWoods 13 31"
    ]
  },

  //Location data for the secret woods
  {
    "Action": "EditData",
    "Target": "data/Locations",
    "Entries": {
      "{{ModId}}_ShirahoshiWoods": {
        "DisplayName": "Shirahoshi's Secret Wood",
        "DefaultArrivalTile": {
          "X": 13,
          "Y": 31
        },
        "ExcludeFromNpcPathfinding": false,
        "CreateOnLoad": {
          "MapPath": "Maps/{{ModId}}_ShirahoshiWoods",
          "Type": "StardewValley.Locations.{{ModId}}_ShirahoshiWoods",
          "AlwaysActive": false
        },```
plucky reef
#

is there more after that last comma?

vernal crest
lone ice
#

oooh ok

#

let me try changing that

vernal crest
#

Just make your type "StardewValley.GameLocation"

lone ice
#

and yeah I was jsut showing a snippet

brittle pasture
#

Well you can, but definitely not in the way you're writing them
and that would require C#

#

Just remove it and the game should default to a regular value

vernal crest
#

Oh yeah removing it works too. You can also remove "ExcludeFromNpcPathfinding" since you're setting it to its default value anyway - unless it's helpful for you to keep it there. My guess is that the default for "AlwaysActive" is also false but the wiki doesn't say and I can't be bothered opening the game decompile to check.

ivory plume
#

Fixed in the upcoming Stardew Valley 1.6.9. Thanks for reporting it!

unique sigil
#

oooo yeah it's coming together

half ether
lucid iron
#

if it seems easy to fix you can ping pathos here

half ether
#

I noticed some bugs, but I’m not sure if they are all easy to fix.

#

Hello @ivory plume ! Here are some bugs I’ve noticed in version 1.6.9:

Information:

  • OS Version: Unix 6.10.10.1
  • Stardew Valley Version: 1.6.9 'beta' (build 24267)
  • Code Decompiled with: Avalonia ILSpy 7.2 RC

Bugs

  1. When a garden pot is placed next to a HoeDirt, watering the garden pot will connect the texture of the HoeDirt (see attached images).
#
  1. When calling Robin with the phone and selecting the "Check building upgrade costs" option, the buttons (move, build, etc.) are invisible. However, if the resetBounds method is called, for example by resizing the window, the buttons become visible and functional.
  2. The 0.7% chance increase for the Crop Fairy event when a fully grown Fairy Rose is present is not applied because the field hasMatureFairyRoseTonight of the Farm class is always false. It should be set to true in the newDay method of the Crop class, but this method checks the value of the fullyGrown field of the crop, which is always false for crops that do not regrow, as the Fairy Rose does. Here is the code:
if ((bool)fullyGrown && indexOfHarvest != null && indexOfHarvest.Value != null && indexOfHarvest.Value == "595")
{
    Game1.getFarm().hasMatureFairyRoseTonight = true;
}
  1. The Meteorite, Stone Owl, and Strange Capsule night events place objects using the following code:
  • Meteorite: targetLocation = new Vector2(random.Next(5, farm.map.RequireLayer("Back").TileWidth - 20), random.Next(5, farm.map.RequireLayer("Back").TileHeight - 4));
  • Stone Owl: targetLocation = new Vector2(random.Next(5, farm.map.RequireLayer("Back").TileWidth - 4), random.Next(5, farm.map.RequireLayer("Back").TileHeight - 4));
  • Strange Capsule: targetLocation = new Vector2(random.Next(5, farm.map.RequireLayer("Back").TileWidth - 4), random.Next(5, farm.map.RequireLayer("Back").TileHeight - 4));
    The code uses the tile size (TileWidth and TileHeight) when it should use the map size (LayerWidth and LayerHeight).
#

Sorry for the inconvenience, I can post on the forum if necessary.

ivory plume
#

Yep, can you post each of those as a separate bug report in the forums? It's easier to keep track of bugs that way.

half ether
#

Sure, I’ll do that. Thanks!

tender bloom
#

The resizing one in particular I vaguely recall resizing being generally fucky

floral canyon
#

Hi guys. have I messed up something or did "SeasonOffset" stop working on custom buildings after latest CP update?

ivory plume
#

SeasonOffset is part of the game code, so not sure why it'd be affected specifically by any Content Patcher update?

pine elbow
#

Does anyone have the bed tile tutorial image on hand?

patent lanceBOT
next plaza
rancid temple
#

I thought I saved that bed image but I can't find it...

#

Wish I remember who I saw post it last

pine elbow
#

Thank you anyway!

rancid temple
#

It was Blueberry!

velvet narwhal
#

(i wish i knew what you were talking about SDVpufferclueless )

pine elbow
#

Ohhh thank you sm sm

rancid temple
#

Not only is it very useful, it's cute as heck

velvet narwhal
#

throws that into the real estate thread

lucid iron
#

are there sideways beds in stardew

rancid temple
#

Nope

#

That would break the illusion

velvet narwhal
#

the bunkbed?

#

it isn't used though

rancid temple
#

It would have to be given some kind of special sitting animation I guess

velvet narwhal
#

just take up 2 sprite indexes to lay sideways and gotta use spacecore

shadow vortex
#

You would need a sideways lying down sprite

rancid temple
#

Not nearly as easy as the current: close eyes

pine elbow
#

Which would probably break the bounds of the sprite limit

velvet narwhal
#

i imagine it'd break everything to have a rotate farmer/npc command

pine elbow
#

Yeah

uncut viper
#

set the farmer sprite to be completely transparent when you touch the tile and add an animated sprite that looks exactly like the farmer but rotated

#

ezpz

pine elbow
#

Interesting...

rancid temple
#

Yeah it's gonna be janky anyways, may as well embrace it

uncut viper
#

(not ezpz but funny)

rancid temple
#

Instant teleportation into bed, no rotate and slide just do it

velvet narwhal
#

the bunkbed you could maybe get away with the 16x16 of just the "head" and a slight little lip of the blanket?

rancid temple
#

If you wanna be fun, you can add a small puff of smoke animation as part of the climb into bed action

uncut viper
#

use one of those wizard teleportation tiles to warp you into bed with a flashbang

lucid iron
#

i was actually just imagine sideways bed that you sit onto

velvet narwhal
#

just that, with the blanket

rancid temple
#

Oooh chair bed

#

Yeah just decapitate the character and put them in place is good too

#

I mean, if you made a sofa but designed it like a bed

velvet narwhal
#

i contemplate it now just to shove marlon into the bunkbed

rancid temple
#

That might work for sitting on

lucid iron
#

i need to stop imagining mods that i dont have the art skillz for blobcatgooglyblep

plucky reef
#

right click to sit in bed so the character is locked into the right spot, then temporary sprite animation to turn them sideways

rancid temple
#

The only two options: give up or become an artist

velvet narwhal
#

!anyonecancook

ocean sailBOT
#
plucky reef
#

I have chosen become an artist, I make one terrible drawing each day with the hopes it slowly becomes less terrible.

velvet narwhal
#

wait what happened to the cooking

rancid temple
#

Lmao, not anyone can cook apparently

lucid iron
#

the food's burnt

pine elbow
rancid temple
#

It's all about how much time and effort you can put into learning a skill

lucid iron
#

I will cook once I get the time yes

rancid temple
#

One of the hardest things about not being an artist is seeing how amazing artists are and not immediately thinking "wow, they're so lucky they can draw" because that shit takes so much effort and practice

lucid iron
#

Which is uh, not until dec or later

velvet narwhal
#

drawing is the time eater

rancid temple
#

Unfortunately I don't remember what the command used to say, so I can't fix it lmao

velvet narwhal
#

i can probably find it

rancid temple
#

Oh yeah, it doesn't change all the previous sent versions, so it should be somewhere

lucid iron
velvet narwhal
#

why'd it get deleted though? SDVpufferthink

lucid iron
#

I think it's not issue with the file, but rather some embed problem

velvet narwhal
#

oh are embeds dead right now

lucid iron
#

What if we turn this into ascii

rancid temple
#

Hm, the bot command site is being slow, maybe a server issue?

#

On the site it's still the image, so probably just an embed issue yeah

velvet narwhal
#

ascii did not work

shadow vortex
#

Have to admit that I have a mod I want to make planned out, but the main thing stopping me is having to draw the NPC portraits.

fossil osprey
#

I want to do a meta mod of Mr. Qi reacting to you having mods installed, and generally bringing out the outworldiness in him (saying shits like "you ask who I am, but have you asked yourself who you are?")

fossil osprey
#

No idea if I'll do it, but I want to

velvet narwhal
#

i'm waiting for my sprite artist to stop being busy and to get her pc upgraded so i can slap her with some money so i don't have to do the world sprites

fossil osprey
shadow vortex
#

And hiring an artist is also an option.

velvet narwhal
#

this is true

rancid temple
#

Command worked in gov's mansion, but there was a considerable delay between it appearing and the embed loading the image, think there's just something wrong with the connection or something

lucid iron
#

sometimes we can cook

uncut viper
#

preheat the bot to 350 first

velvet narwhal
#

make sure all of the pans you left in there for storage reasons are already taken out

lucid iron
#

oh button is the website theme you used for BETA docs open source?

uncut viper
#

it is not i just made it myself, why do you ask

lucid iron
#

i was looking at options for trinket framework docs

#

the examples modal is nice DokkanStare

#

though i prob wouldnt be able to do something like that in md, unclear

uncut viper
#

sorry to say there is no like, template or anythin for you to use then SDVpufferpensive
i would be surprised if you could come anywhere close with just markdown

#

if you really wanna scopecreep you could take this as an opportunity to learn an entirely new field (webdev) just for your mod documentation. how long could that take, really

next plaza
#

Or just use a CMS

velvet narwhal
#

for a nominal fee of-- /j

rancid temple
#

A few hours (try, fail, give up)

next plaza
#

(Not WordPress preferably 😛 )

fossil osprey
#

With framework today, webdev can be learned quite easily

lucid iron
#

oh its not a new field for me, i just havent done it since college

uncut viper
#

you could do that too, though you'd limit all sorts of fun custom functionality you could provide if you only relied on a CMS alone

lucid iron
#

but i suspect there's stuff i can do with docfx's template

brittle pasture
#

Powerpoint Presentation

lucid iron
next plaza
lucid iron
#

i should prob refactor how i did abilities though think

#

should be more events less override

uncut viper
#

tbh even just a very simple .html file with some nice styling is already gonna be a lot better than an md file on github imo so its not likeyou can really go wrong with anythin you do

bright panther
#

gotta love this line

rancid temple
#

TIL if you hold shift while erasing tiles in Tiled it erases from every layer

#

I dunno if this is useful but it sure was a surprise

old edge
#

I'm trying to add this line in my c# code but nothing shows cs this.monitor.Log(type of(CustomLavaLogic).AssemblyQualifiedName); but nothing shows in the smapi.

rancid temple
#

You need a LogLevel

old edge
#

log level. Info?

uncut viper
#

also its typeof not type of

rancid temple
#

It defaults to Trace which only shows up if you have that enabled

old edge
#

Just need it to appear

brittle pasture
#

It should be in the log file if you dont feel like recompiling and rerunning

rancid temple
#

Yeah if you don't need real time logging then you can just open the log file that's generated

#

Info or Debug is usually what I choose for informational stuff

#

Depending on how visible I want it to be, though for testing it's usually just Info and then removed when I'm done with it

old edge
#

For some reason vs is telling me to put ?? After assemblyQualifedName

rancid temple
#

Suggestions from VS are generally suggestions from AI, sometimes it's right, sometimes it's not

#

In order to use intellisense properly you kinda need to know your project well

old edge
#

cs this.monitor.Log(typeof(CustomLavaLogic).AssemblyQualifiedName ?? "CustomLavaLogic type information is unavailable", LogLevel.Info);

lucid iron
#

oh the ?? is cus AssemblyQualifiedName is nullable

rancid temple
#

Or is it intellicode, I can never remember which one is which

lucid iron
#

it is try to make u give default value afterwards, but ur mod is kinda in trouble if AssemblyQualifiedName is null for this class bolbonfire

rancid temple
#

Making things nullable is great for squashing warnings, but shouldn't be done on everything lol

old edge
#

I tried adding it to public override void entry

#

When I add it like I was instructed before it gives a warning CS8604 possible null reference argument for parameter 'message' in void

lucid iron
#

you can do ! like this typeof(CustomLavaLogic).AssemblyQualifiedName!

#

it tells compiler to stop worrying about it

#

(because you know it wont be null)

rancid temple
#

My favorite is when I "know" it won't be null and then I get an NRE SDVpufferblargh

lucid iron
#

skill issue PecoSmile

rancid temple
#

Real

plucky reef
#

you can ignore the warnings, since they don't stop you from compiling.

faint ingot
#

Is there like a content-patcher condition that knows if the spouse is doing their patio thing that day? I have an animation for the patio but it shouldn't play every day.

lucid iron
#

i thought they can only be on patio and play patio anim together

#

can they be on patio without playing their patio animation

faint ingot
#

well they have their NPC animation, but my patio TMX file has its own map animation

#

specifically you can see my post in making-mods-art. They are BBQ'ing but I don't want the BBQ active unless my NPC is there

lucid iron
#

i dont think there is content patcher for this

#

in C# you could reflect for NPC.isPlayingSpousePatioAnimation

rancid temple
#

Yeah, not seeing anything that does that for CP

#

This is one of those spouse schedule things that's pretty hardcoded

lucid iron
#

even if there was something for CP you would have to do on time update and that kinda succ

old edge
#

Nothing appears in the smapi log after I add the line

brittle pasture
#

Did you set log level?

#

but as mentioned you should still see it in the log file

velvet narwhal
#

iirc patio is hard coded to be saturday, right?

#

or was it just outdoors SDVpufferthink

rancid temple
#

Trying to find that lol

velvet narwhal
#

! isRaining && ! Krobus something something

rancid temple
#

if (!Game1.isRaining && !Game1.IsWinter && Game1.shortDayNameFromDayOfSeason(Game1.dayOfMonth).Equals("Sat") && spouse == Game1.MasterPlayer && !base.Name.Equals("Krobus"))

#

So yeah, Saturday

#

You could make the grill only run on Saturday, if it's not winter, if it's not raining, and if the spouse isn't Krobus lol

#

Last one isn't necessary but it is funny

faint ingot
#

works for me! ty!

brittle pasture
#

Make sure to also turn it off at night when they go inside
Safety!

old edge
#

Ok well the errors of the type being incorrect have ceased

#

So I guess I registered the type correctly and added it to data/locations correctly now

#

However went I try to warp to the custom map with my map logic I get [game] Error running debug command warp CapeKeyMaze 14 24'. ArgumentNullException: Value cannot be null. (Parameter key') At system.Collections.Generic.Dictionary2.TryInsert(TKey, key Tvalue value...`

lucid iron
#

did you update the contructors as mentioned

old edge
#

They told me to zip up the solution folder hold on

#

If I was reading correctly constructors are these {}?

lucid iron
#

why did u have references to Stardew Valley.dll think

old edge
#

Idk what is needed

next plaza
#

Started working on SpaceCore docs more, I forgot how time consuming this was

lucid iron
#

so i think the issue is how you are applying class to the location

#

as mentioned the game has mechanism for creating a location with custom class, that bit in Data/Locations

#

you do not need to construct CustomLavaLogic here bolbthinking

old edge
#

So I delete that. I added the data with content patcher in data/locations...

lucid iron
#

the other thing is that you should not need to include ref to the game dll, or spacecore dll

#

this should be enough

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <EnableHarmony>true</EnableHarmony>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.1.1" />
  </ItemGroup>

</Project>
#

for spacecore, you aren't doing anything that needed reference of dll, can use api directly

#

like this basically

ISpaceCoreApi? spacecoreApi = Helper.ModRegistry.GetApi<ISpaceCoreApi>("spacechase0.SpaceCore");
spacecoreApi!.RegisterSerializerType(typeof(YourCustomClass));
#

you need need a copy of ISpaceCoreApi.cs in your proj with RegisterSerializerType

brittle pasture
#

if the mod's already having a hard dependency on SpaceCore a DLL reference is fine, and more convenient

lucid iron
#

but selph what about best practices- bonked

#

i dont think they r in need of hard dep on spacecore though, only need RegisterSerializerType

uncut viper
#

i think needing spacecore for your mod to function counts as a hard dependency

lucid iron
#

hard dep is wrong word, in need of access to internals rather than what api provides

uncut viper
#

(that said i also think that just using the api is probably easier if setting up a hard dll dependency can cause too much confusion for someone who isnt sure how to use it)

tepid escarp
#

Does anyone know of a tutorial for adding in spouse rooms/ patios please?

old edge
#

I'm getting a content patcher error can't apply data patch failed converting Boolean value to the expected type error converting value to False to type StardewValley.GameData.Locations.LocationData'. Path''..

#

Map loads now though but crashes yippee

teal bridge
brave fable
#

unless spacecore breaks in the update too :) and then none of my mods load

brittle pasture
#

In this case it is a bit of a gray area where they're referencing the DLL only to get the API function instead of including a cs file, which I think is probably fine

calm nebula
#

Pretty sure spacecore will never break

uncut viper
#

hm

brittle pasture
#

(aside from that one time right)

uncut viper
#

(that time was last night)

next plaza
#

Hmm my VS is building fine. Wonder why it isn't picking up the changes...

rancid temple
#

The latest beta build seems to have broken a few mods lol

lucid iron
#

you are build to beta right

next plaza
#

Yeah

ivory plume
#

To be fair, SpaceCore hasn't broken even once since the last time an update for it was posted here.

next plaza
#

Since you're here Pathos: Do you hate me? Is that why you broke SpaceCore? /s

#

(It was -2+1 lines of code to fix)

#

Still surprised it was the quest changes that broke virtual currency code in 1.6.9 and not the currency display thing

rancid temple
#

Am I stupid? I just freshly decompiled and am staring at what I think is the constructor in question

lucid iron
#

do the signatures match up

ivory plume
#

(The Func<ISalable, Farmer, int, bool> onPurchase argument was replaced by OnPurchaseDelegate onPurchase; there's a rewriter for it in the next SMAPI update.)

tender bloom
#

Pathos taketh away but pathos also giveth? SDVpuffersquee

rancid temple
uncut viper
rancid temple
#

It has all the required parameters, doesn't even seem like it was using the onPurchase thing

next plaza
#

Optional ones are baked in when compiled

ivory plume
#

(That's why errors often go away just by recompiling the mod, since the compiled IL is stricter than the original C#.)

rancid temple
#

I did try that, no dice there unfortunately, that's what fixed it the last time it broke in 1.6.9 lol

#

Oh wait, it might be fine with just rebuilding

#

Using other peoples projects is always a fun time because I never know what weird set up someone has decided to use

#

AT is one of those that doesn't build to the Mods folder

proud kite
#

hey everyone! im trying to make a retexture for the big chest with AT and i cant get it to show up in game:
{
"ItemName": "Big Chest",
"Type": "Craftable",
"Keywords": ["Mimon", "Star"],
"TextureWidth": 16,
"TextureHeight": 32,
"ManualVariations": [
{
"Id": 0,
"Name": "Star Chest"
}
]
}

am i doing aything wrong here?

rancid temple
#

Yeah, turns out it was just a me problem

brittle pasture
proud kite
#

i dont have the recipe though just spawning them to test on a random world, could that be a problem?

brittle pasture
#

shouldn't be

#

no other errors in logs?
maybe try "ItemId" : "BigChest" instead of item name

#

or "ItemId": "(BC)BigChest" in case it expects the qualifier

#

You are testing on a wooden big chest right? Asking just in case lol

proud kite
#

let me try now!

#

yes wooden big one

faint ingot
#

@rancid temple @velvet narwhal Came up with this but it doesn't seem to be working, thoughts? { "LogName": "Animate Russell spouse patio", "Action": "EditData", "Target": "Data/Characters", "Fields": { "Russell": { "SpousePatio": { "MapAsset": "sdvwarhead.LawAndOrderSV_OutsideArea", "MapSourceRect": { "X": 4, "Y": 0, "Width": 4, "Height": 4 } } } }, "When": { "LocationName": "Farm", "DayOfWeek": "Saturday", "Season": "Spring, Summer, Fall", "Weather": "Sun, Wind" }, "Update": "OnLocationChange" }

velvet narwhal
#

did you load sdvwarhead.LawAndOrderSV_OutsideArea

faint ingot
#

yes

#

it loads the spouse patio, it just doesn't change to the different SourceRect on Saturday

calm nebula
#

Wow

calm nebula
#

The game manually copies the spouse patio in

#

Nothing tells kt to copy again when things change

velvet narwhal
#

i'm trying to figure out what it's set to, you could have the spouse patio be an "off" grill

rancid temple
#

You would have to patch farm map yourself

velvet narwhal
#

and then have your spouse animation frames be the grilling thing?

rancid temple
#

The Aba hack lmao

#

But for patios this time

velvet narwhal
#

it will get very screwy with different farms though no?

faint ingot
ivory plume
rancid temple
#

For sure, it's not a good solution lol

velvet narwhal
#

would setting size on a conditional be detrimental? SDVpufferthink

lucid iron
#

ah cjb cheats broke

rancid temple
#

Yeah, big sad

lucid iron
#

i think i have to change this

socialQuest.checkIfComplete(npc);

to this

socialQuest.OnNpcSocialized(npc);
rancid temple
#

Had to use debug commands

lucid iron
#

theres some big quest overhaul

brave fable
velvet narwhal
lucid iron
#

oh one of extra machine config's patches exploded too blobcatgooglyblep

brave fable
#

every time tho
sdv beta update SDVpufferchickhug breaks dependency used in every single one of my mods SDVpufferchickcry

uncut viper
#

(i suppose i should probably download the beta again to check my mods...)

brave fable
#

your mods are probably broken ☀️

velvet narwhal
#

the footgun is probably broken

calm nebula
uncut viper
#

id be surprised if the harmony stuff was broken tbh

calm nebula
#

Do everything yourself

brave fable
#

i need serialisers like i need doughnuts

calm nebula
#

Quad probe simd accelerated dictionary time

rancid temple
#

Wouldn't spouse animations be 16 wide? They're just frames on the spouse tilesheet aren't they?

brave fable
#

i'll probably explode if i don't load more doughnuts (into me)

lucid iron
brittle pasture
lucid iron
#

it looks like one of ur cooking patches

#

world safe again from snail sashimi all is well

velvet narwhal
rancid temple
#

CraftingPage_clickCraftingRecipe_Transpiler in EMC

brittle pasture
#

brb removing that transpiler and adding a hard dependency on Better Crafting

rancid temple
#

Which is also still broken in 1.6.9 lmao

brittle pasture
rancid temple
#

Khloe hasn't had time to fix it lol

lucid iron
brave fable
#

the world desperately needs more transpilers on ClickCraftingRecipe SDVpufferpensive

rancid temple
#

I tried to pull the project but apparently her project set up is way too next level for me because I couldn't even get it to open properly

brave fable
#

i do rather wish it could be broken up into a few smaller methods to simplify crafting behaviours for mods, but the code goes as pathos wills it

#

yeah i'm not pulling any repo with more than one mod lol

#

bonus points if they have shared libraries

velvet narwhal
#

i'm definitely not gonna transition into the monorepo, i'd like people to tell me i'm stupid without hassle

rancid temple
#

I broke up my mods into separate repos because of how much I hate having to pull down mega repos from others lmao

brittle pasture
rancid temple
#

Nope, Winders

lucid iron
#

oh its just got a few not in the repo projects

rancid temple
#

Like it opens but every reference to the StardewModdingAPI is busted and I have no clue what to do to fix that

calm nebula
#

Also try pulling mine:P

rancid temple
#

Oh right, it kept trying to use my C:/ drive as the game folder

teal bridge
#

Is it pre-ModBuildConfig?

rancid temple
#

And was upset that the game dll wasn't there

lucid iron
brittle pasture
#

ah explains it. When I built on Linux it just puts the files in a folder named C:/ lol

rancid temple
#

I'm not sure, it's been a few weeks so I'd have to pull it again to refresh but I think the NuGet manager said it had it

brittle pasture
#

(On Common.projitems)

brave fable
#

actually @ivory plume hi what're your opinions on separating CraftingPage.ClickCraftingRecipe into a few smaller methods, split at key points in crafting, and passing (currently) locals as params, to allow mod authors to more likely be able to use simple prefix/postfix methods rather than transpilers, which are getting dangerously popular on this method in particular

#

right now it really is the GetFish of crafting

rancid temple
#

Oh, this is probably why none of my changes were working, didn't look at this at all

teal bridge
#

(thereby guaranteeing that every existing transpiler breaks)

brave fable
#

well i'm at least two of those transpilers so i have a stake in this lol

teal bridge
#

Hey, don't dis getFish, having that all in one place sure made my life a lot easier.

brave fable
#

getfish doesn't deserve my respect. admiration yes, but not respect