#making-mods-general

1 messages · Page 11 of 1

vernal crest
#

Welp clearly I am too dumb for this because ShareX will not record my events at all

#

Ah I will try not using fullscreen

#

Okay that works hooray

rancid temple
#

Gotta love SDV's weird fullscreen

calm nebula
#

I've always wondered if it was a SDV thing, or liike, you know

#

a windows thing

#

(we used to have Fun Issues taking screenshots of autocad too for some blasted reason.)

#

....why are you punching nexus's servers

vernal crest
#

When I remote access my desktop from my laptop I can't run SDV in fullscreen without losing the cursor control

#

But I can run other games fullscreen

uncut viper
#

the fullscreen thing for recording is a windows thing im sure bc sharex does it for me for other games too

ornate trellis
#

so, tell me if i am wrong but cant I do an event to make her move 2 up and the one right and up like
move TheFishmonger 0 -2 0/ move TheFishmonger 1 1 0/? (Idk how to do advancedmove without breaking my event)

vernal crest
#

Reddit post about it

calm nebula
#

(my understanding is that something about games/cad software causes it.)

ornate trellis
#

she jsut walks offscreen with the second command :I

vernal crest
#

You can't have both x and y movement in one move command

ornate trellis
#

damn

vernal crest
#

You have to make her move right first and then up or move up first and then right

ornate trellis
#

so move TheFishmonger 0 -2 0/ move TheFishmonger 1 0 0/ move TheFishmonger 0 1 0/ ?

teal bridge
#

If you're on nvidia hardware then you can just use the overlay to record a video.

#

I'm not sure what ShareX is whining about though, we've all taken plenty of screenshots in the game in fullscreen (or at least I have).

thin hamlet
#

happy squeak

#

Where do I find the vanilla sprite sheet?

brittle pasture
#

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

vernal crest
#

Aaaand I forgot to reload so I just took a video of the same darn thing

ornate trellis
#

yay, Constance isnt jesus walking anymore and also not walking offscreen

vernal crest
#

Yay!

thin hamlet
#

I can unpack already

#

Am I missing files? I only see “objects 2” in tilesheets

brittle pasture
#

maps/springobjects

finite ginkgo
#

i kinda wannna know what a summerobjects or a fallobjects would look like

thin hamlet
#

Thanks Selph :>

vernal crest
#

Same thing but covered in leaves so you can't tell what it actually is

rancid temple
#

Some of the seasonal stuff is literally just colored slightly differently

#

Gives it more of that summer or fall aesthetic while changing literally nothing else

#

Winter feels the most noticeable with a shift to blue

#

But I also like blue, so maybe that's just me :P

thin hamlet
#

I found the rock i want… now what

lucid iron
#

Is <season>objects actually implemented in the game?

#

Would it work if you just load summerobject and such I mean Bolb

rancid temple
#

Probably not, probably needs the _

thin hamlet
#

I found springobjects

brittle pasture
finite ginkgo
#

I use springobjects in a map, sure hasn’t thrown a fit about summer/fall/winterobjects not existing (so it’s never looking for one, definitely needs the _ to become seasonal)

thin hamlet
#

I wanna use the vanilla rock sprite as a template for my ore

brittle pasture
#

open it in your image editor of choice and copy it into a new image to edit?

ornate trellis
#

huh i wish i had seen this earlier, i collected some of em as a bunch for zelda

vernal crest
#

/sadly disables Fast Animations in my test mods folder/

thin hamlet
hallow prism
teal bridge
#

Yup. That's a rock. Or possibly a potato.

velvet narwhal
#

SDVpufferthink contemplates a pr to button about Random r = Utility.CreateRandom(Game1.uniqueIDForThisGame, Game1.stats.DaysPlayed); in birthingevent.cs
i don't think there's another mod that sets it to a config
that or i just do it myself, break some eggs

marble verge
#

Is there a way to see in Tiled which tiles are in use (anywhere) and which aren't?

velvet narwhal
marble verge
#

Example: DesertTiles, the very first 16x16 in the png. Is it used anywhere?

#

Is there a way to find if it is?

#

Other than deleting the tilesheet and seeing if Tiled will warn that something is still in use?

lucid iron
#

say if it's unused, what do you intend to do with it

little crag
#

Hi! I'm not sure what the issue is with this mod but it isn't being sent and I'm struggling a bit.

There's are the jsons.

marble verge
#

Would make it easier to determine whether or not something needs to be recolored

rancid temple
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
#

i guess you can make a tiled extension to check for this think

finite ginkgo
#

It's pretty safe to assume if it's in a vanilla tilesheet it's being used somewhere in a vanilla map

vernal crest
#

I can't think of a way to find out without deleting the tilesheet and seeing what disappears - or recolouring the tilesheet. I definitely can't think of a way to find out how to find out across maps. But Tiled isn't a Stardew-specific thing so there might be info somewhere if you Google it.

little crag
marble verge
rancid temple
#

Right but looking at your jsons as pictures is awful, much better to see them as actual text

lucid iron
#

you can put any json in the validator

#

and the format you are using is just content patcher

marble verge
lucid iron
#

yea exactly just recolor the tile even if its completely unused

#

its only 256 pixels kyuuchan_run

velvet narwhal
marble verge
velvet narwhal
#

but i do agree, throw us the json validator and we'd be able to see it easier

rancid temple
#

I think it's either, recolor everything or recolor some things and then test

#

Which will be also a lot of work

marble verge
#

I figured it was going to be that

finite ginkgo
marble verge
#

Oh well

vernal crest
#

You could recolour in quadrants

#

Quarter blue, quarter red, quarter yellow etc

#

But if you just want to know if it is used rather than where, then like EnderTedi said it's just better to assume it is

little crag
#

I'll retest with the %item cookingRecipe <key> %% I was trying my best to figure it out on my own but I caved after trying to trigger it multiple times. Thank you!

vernal crest
#

Especially if it's not vanilla

marble verge
lucid iron
#

if this is more DTZ related stuff then you just have to take it up with the modder

vernal crest
#

I am interested in why you are investigating that

lucid iron
#

maybe even help them clean stuff up

vernal crest
#

Is it affecting something of yours?

marble verge
#

I'm working on making some modpacks compatible with Earthy Recolor

#

Some do fine straight out of the gate

#

But others have their own versions of vanilla tilesheets

uncut viper
little crag
uncut viper
#

if you're not getting the mail thats a trigger action problem

#

if you are testing on a fresh save and not saving during your tests (so the trigger action doesnt think its already applied) then its probably bc you have it set to DayStarted, but your AddMail action defaults to sending it "tomorrow"

#

so you might just not be sleeping one more day enough to notice that its being sent

vernal crest
uncut viper
#

or, if you were sleeping to get the mail, it means you are saving, and the trigger action was being marked as applied so any changes you made to it over the course of your testing were not going to be checked again

cinder locust
#

I'm working on updating a mod of mine using the Lumisteria Tilesheets but I do not know how I would add the tilesheets to my map in tiled. Normally to use a tilesheet I just add to the assets folder of my mod but since I'm using someone elses tilesheets I can't just do that this time.

vernal crest
#

You do do that actually. Just take them back out for testing.

hallow prism
#

Well i usually dont edit my map in my mod folder

marble verge
vernal crest
#

I always edit my map in my mod folder

hallow prism
#

I copy the map from my editing folder into my mod folder

lucid iron
#

u can symlink stuff on windows i think

#

although i forget if it was convienant

uncut viper
#

that sounds like overkill

velvet narwhal
#

i ctrl+c, ctrl+v straight back into wherever i set my cp load SDVpufferclueless

drowsy pewter
calm nebula
#

You basically have to open poweshell in admin mode

lucid iron
#

feel free to disregard my terminal linux user brain blobcatgooglyblep

hallow prism
#

Anyway basically you have tilesheet with map for map editing but not in mod folder for mod releasing

#

How you achieve that is based on what works for you

cinder locust
hallow prism
#

My mod deals with providing the map to the game content

drowsy pewter
#

can someone clearly explain how it works?

uncut viper
lucid iron
#

maybe it's worth making a command for it

uncut viper
#

once the map is actually loaded into the game, the game will find the tilesheets for you

lucid iron
#

it's covered in modding:maps but comes up alot i feel

cinder locust
uncut viper
#

if you package the tilesheets in with your mod folder, then your map will use those first and ignore any recolours or anything like that that someone else might have installed

uncut viper
#

yes

vernal crest
uncut viper
#

the map file tells the game "i want springobjects.png" for instance and the game will go "okay, heres springobjects.png"

#

it doesnt need to look in your mod folder

cinder locust
#

Ahhhh I understand now

uncut viper
#

but if you include the .png, it WILL look in your mod folder, and thats not the best

lucid iron
#

yea true, it depends on whether you can grasp the content load system

drowsy pewter
#

and to be clear. The same thing happens for other peoples tilesheets. They add the tilesheets to the game folder while the game is running. So you dont need to include the image in your assets

uncut viper
#

(was that explanation good enough, i dont do maps often so i mightve missed something like what lumina said)

marble verge
#

Pet grievance: having to reboot because Windows has decided that a folder is "in use" when it really effing isn't.

velvet narwhal
#

(you just need a manifest dependency if you're using someone else's tilesets)

cinder locust
thin hamlet
#

had to do a little bit of redneck engineering, but id say this isnt bad for my first ever sprite

uncut viper
hallow prism
#

I should be sleeping but ill be around in 11+- hours if you have issues at this point

thin hamlet
#

OMG ITS SO SMALL LMAO

uncut viper
#

you can put their tilesheets in your folder when making the map so you can actually edit with it, but just make sure to delete it before you publish the mod

hallow prism
#

(Missings words : sign i should really go)

rancid temple
#

Well, it's 16x16, which is very small in real pixel sizes

#

SDV scales stuff up

vernal crest
#

Toni if you want to post screenshots it's best to zoom in to 400% and then take a screenshot of that. It will show it at SDV size.

uncut viper
#

or resize it for preview purposes

#

just use Nearest Neighbour scaling

sacred sluice
#

Hey guyss, if i only need to change things that mention Haley's name, i can delete things like that?

vernal crest
#

That seems like so much work Button

sacred sluice
uncut viper
#

its less work than zooming in and screenshotting it if you're just wanting to send it on discord

vernal crest
#

How is it less work?

#

Oh because you don't use the snip tool

uncut viper
#

resize to 4x (same work as zooming in to 4x), copy the image, paste into discored

vernal crest
#

For me it is literally just zoom, snip, paste

uncut viper
#

you can send images in discord directly from your clipboard

vernal crest
#

Yeah that is what I do

rancid temple
#

Can't you just hold control and scroll to zoom in?

grizzled rain
#

so, i'm trying to use Sprites In Detail(framework mod thingy) to make my custom NPC's sprites bigger, but it's off center in the social page, is this a problem on my end, or a problem with the framework mod? I'm not getting any errors in my smapi log either.

uncut viper
#

then you gotta take a screenshot snippy snip and paste it in. thats effort! instead of just a quick ctrl+a copy paste

vernal crest
#

Considering I always work with a 400% zoom preview, it is definitely less work than resizing to just snip and paste

drowsy pewter
#

it takes me two seconds button

uncut viper
#

also it guarantees the size someone sees in discord is the size theyll see it in game

sacred sluice
vernal crest
#

That is the point of the 400% zoom as well though

uncut viper
#

one should not mistake me for someone who has actually strong and not jokingly strong feelings about how one previews their sprites

rancid temple
#

I will concede that you won't get 100% accurate size when using snip because you probably can't pixel perfect select the sprite that way

#

But like it'll be really close

drowsy pewter
#

im just confused by this convo 😅

vernal crest
#

Anywho. Yes. It is possible to do it Button's ~~weird, extra work 😋 ~~ way as well. But either way, SDV-sized previews in discord are the way to go.

rancid temple
#

I'm really out of it today, that's my excuse lmao

brittle pasture
#

typical "SDV modders accidentally revealing how unhinged their setups are" convo

uncut viper
#

i mean if you're gonna call something the "best" way to do something you should probably at least know the other more accurate options that exist

#

even if i wasnt being that serious about it

velvet narwhal
#

we all know i'm unhinged

drowsy pewter
#

toni didnt know how to crop images, i feel like making them learn how to resize would in this case make that option the second best

velvet narwhal
#

while ya'll were bickering about the snip tool, i was trying to read sprites in detail but honestly i don't know how that works

lucid iron
#

hm i know DSV uses sprites in detail but that's about it

velvet narwhal
#

i assume it's like how portraiture suggests 512x512 and it auto registers that

vernal crest
#

Does anyone have Marigold in DSV to check? I was just going to download giant scary Gus to check it

velvet narwhal
#

With this mod, the sprites are instead given 64x128 pixels, however, when drawn into Stardew, they will be scaled so that the sprite will have 32x64 pixels to occupy the normal space.

grizzled rain
#

I wasn't quite sure how big to make the spritesheet so that may be the problem, but i don't know for sure

#

it was a little difficult to follow and figure out what i needed to do

velvet narwhal
#

well each "sprite" will then be 64x128

#

so then you'd have to do a (64x4) width

#

4 for each vanilla "frame"

grizzled rain
#

mm ok

#

thanks!

velvet narwhal
#

i could be wholly wrong, but that's just my intuition

vernal crest
#

I am pretty sure that EnderTedi told me that Sprites in Detail doesn't make sprites any bigger but this is definitely bigger

#

Well. The collision isn't bigger but the image is.

brittle pasture
#

Big Gus

grizzled rain
#

yeap

vernal crest
#

Time to examine big Gus in game

velvet narwhal
#

i've accepted my fate that i'm gonna have to do commits to my mod from my laptop while i'm at school SDVpufferclueless

vernal crest
vernal crest
lucid iron
#

where else do u commit from

#

i dont even own a desktop kyuuchan_run

velvet narwhal
#

desktop

#

oh i guess i'm ritzy

paper sundial
#

The toilet at mcdonalds

grizzled rain
#

yeah idk cause it looks like this in the social menu when you don't click on his page. which is uh. at least it's centered...?

brittle pasture
#

(Gabriel Ultrakill? SDVpufferwoke )

grizzled rain
#

yeas

#

sorry it's for my custom NPC gabriel mod which is actually on Nexus for some reason

vernal crest
#

My gus is sparkly for some reason

velvet narwhal
#

he exploded

grizzled rain
#

rip gus 😔🙏

lucid iron
#

what do ppl call the x radius and y radius of a ellipse

#

or rather if i call it that do you know what i am refer to

brittle pasture
#

major/minor axis?

vernal crest
brittle pasture
#

he's trying to escape into the real world, stop him!

grizzled rain
grizzled rain
vernal crest
#

Biiiig biiiiig Guuuuuuus!

grizzled rain
#

ah sorry for the ping

lucid iron
#

scary

#

hm so major is x minor is y?

uncut viper
brittle pasture
vernal crest
#

I deleted his chest code to stop him exploding so now his crotch breathes instead of his chest

uncut viper
#

major is whichever one is larger

lucid iron
#

blobcatgooglyblep what if i just call it x radius and y radius so it's shorter

uncut viper
#

if you specifically wanna define the width and height of the ellipse id just call them width and height

#

is this for like, trinket orbiting

lucid iron
#

ya

#

im going back and dehardcoding stuff

uncut viper
#

i love when you click on a discord message link like that and discord just stops you at a completely unrelated message until you come back here and click it again

lucid iron
#

yesterday i made the action to activate a trinket's ability and the ability to send a trigger

#

so from now on i expect BETAS to do all the fancy smancy stuff thanks

uncut viper
#

i think X and Y radius are probably clear enough for that then though yeah
i cant decide whether id personally go with XRadius or YRadius or HorizontalRadius and VerticalRadius (or even replace the word radius with distance) but i think either way it'd be clear to me what it was

#

if you make specific requests of the fancy schmancy stuff you'd like BETAS to do id be happy to give it a shot

lucid iron
#

cool good enough for me DokkanStare

uncut viper
#

is the radius in pixels or tiles

lucid iron
#

pixels

uncut viper
#

then as long as you make that clear too it works imo SDVpufferthumbsup

lucid iron
#

yea i already have OffsetX and OffsetY

uncut viper
#

(and in that case i definitely wouldnt use distance. distance feels like a tile-based word to me. no i will not elaborate)

lucid iron
#

although it was weird that i seemingly couldnt do "Offset": {"X": 3, "Y": 2} when it's on a model that's contained in another model

#

so i just turned the 1 Vector2 field into 2 float fields

uncut viper
#

what was going wrong with using the vector2 way?

lucid iron
#

content patcher did not like it

uncut viper
lucid iron
#

it was working when it was top level though

#

lemme try again rn, in case i missed something

uncut viper
#

are you sure the model in your C# code was defined correctly

#

(it shouldnt matter between Point and Vector2 right. i have no idea)

lucid iron
#

yea i did miss something ig

#

too many commits ago to know what i did wrong kyuuchan_run

uncut viper
#

write it off as a cosmic bit flip to absolve yourself of blame

lucid iron
#

ah nope i was not insane

#
[Content Patcher] Can't apply data patch "(CP) Trinket Tinker Examples > Include data/lerp/tinker.json > EditData {{mushymato.TrinketTinker/Target}} > entry #4" to Mods/mushymato.TrinketTinker/Tinker: failed converting entry to the expected type 'TrinketTinker.Models.TinkerData': Error converting value "0, -64" to type 'System.Numerics.Vector2'. Path 'Motions.default.Offset'..
#

its the short form that didnt want to work

#

why is it using System.Numerics.Vector2

uncut viper
#

does content patcher normally let you do vectors like that?

calm nebula
#

Good question but you should be using the monogamy one

uncut viper
#

interesting choice

lucid iron
#

i am using it seriousblep

rancid temple
#

VS usually tries to make me use System whenever I try to use a Vector2 for the first time

lucid iron
#

the Microsoft.Xna.Framework.Vector2 i mean

#

yea this only happens in the MotionData model, which is nested beneath the TinkerData model

#

i can use "0, -64" just fine on TinkerData's Vector2

#

could it be cus i didnt make any interface classes

uncut viper
#

assumin you double checked that motiondata isnt accidentally using system.numerics, ive got nothin

#

such an error is beyond me

lucid iron
#

yea but not big deal, having it be vector in data model holds no advantage since i end up making new vector

lucid iron
#

so on footstep, on damaged, on damage monster, plus timed which is just update on a cd

#

i am debating whether i want to add more proc callbacks by patching, or just by pointing to mod which adds more triggers such as BETAS blobcatgooglyblep

#

in particular why did they make on damage monster callback, but make it unusable for golden spur bc it is not known whether the attack did a crit

uncut viper
#

SDVpufferthink well if you're already tracking whether the equipped trinket has a proc for e.g. on damaged it probably is more efficient than raising a trigger that might not even be used

#

BETAS has triggers for taking damage (not for the other ones though) but it gets raised every time that happens versus a trinket which would only raise it if the equipped trinket called for it, which is better id think

lucid iron
#

yea i have made use of all the existing ones DokkanStare

#

should i go around patching in more is the question

#

ive kept this whole thing harmony free thus far

uncut viper
#

depends on if you specifically wanna include checks for "does the currently equipped trinket even use this?" or not id say

lucid iron
#

oh that part i implemented into the action for procing trinket abilities

modest dagger
#

So i'm using EMC and i'm wondering. I have 1 plant, that'll either be processed with nothing, oil, or a refined oil. In my json file I had to flip it around so that the plant was the additional fuel instead of the oil, is that normal? Like the machine won't register 1 item with 3 possible variants like it needs to be different?

uncut viper
#

i may be not fully understanding your triggers/actions/procs stuff you've already got

brittle pasture
modest dagger
#

The recipe is like Plant -> Product, Plant + Oil -> Product#2, Plant + Refined Oil -> Product#3

#

all in the same machine

lucid iron
#

so the base game class for Trinkets have functions named like OnDamageMonster, which get called in the relevant places like this

if (who != null)
{
    foreach (Trinket trinketItem in who.trinketItems)
    {
        trinketItem?.OnDamageMonster(who, monster, damageAmount);
    }
}
#

ive simply implemented these

uncut viper
#

right. so whether or not you'd wanna patch in more elsewhre or point to something like BETAS is what id say depends on whether or not you want to include trinket checks in wherever you patched other procs in

lucid iron
#

the trigger action i did add (ProcTrinket) requires the content mod maker to add a trigger action like this in order to use it

{
  "Action": "EditData",
  "Target": "Data/TriggerActions",
  "Entries": {
    "{{ModId}}_TrinketProc": {
      // This trigger action listens for the firing 
      "Id": "{{ModId}}_TrinketProc",
      "Trigger": "<any trigger>",
      "Condition": null,
      "HostOnly": false,
      "Action": "{{mushymato.TrinketTinker/ProcTrinket}} <optional trinket id>",
      "Actions": null,
      "CustomFields": null,
      "MarkActionApplied": false
    }
  }
}
uncut viper
#

like if you wanted to patch in a proc for critical hits, if you checked before raising that proc for whether or not the trinket equipped wanted to check for it, that would be a TrinketTinker territory i think. BETAS would raise the trigger indiscriminately, whether the trinket cared or not

wild flax
#

hii i asked this a few days ago but i think my message got lost in the stream and i truly don't know what to do anymore, it's my first time making a mod and i wanted to make a mod to implement sprites using content patcher to most characters in my game including sve characters, and while i followed tutorials and did everything the only characters that have the sprites are bachelors and bachelorettes, but not any other characters, I don't think this is a mod overriding the sprites like looking for love mod because i overrode all the sprites there with my own sprites and i'm truly at a loss at what's wrong, if anyone knows a mod for sprites that works for characters like that please share the content.json with me so i can compare the because I feel like i'm just missing something, my smapi log is: https://smapi.io/log/36892d28df55443a85c687a27641e68d and my content.json for it is: https://smapi.io/json/content-patcher/3d56125f37c04a36833846c3d0064e8c

ocean sailBOT
#

Log Info: SMAPI with SDV on , with 74 C# mods and 122 content packs.

brittle pasture
drowsy pewter
modest dagger
#

Yea I was just wondering about it like, say I had the refined oil, and oil in my inventory along with the plant. It'd probably make more sense to put the oil in so it knows which one I want otherwise how can the game tell

#

Thanks again Selph

wild flax
velvet narwhal
uncut viper
lucid iron
#

no the first phase is me making sure my system can do all the vanilla trinket effects

#
Ability.cs
BuffAbility.cs
DebugDummyAbility.cs
HealAbility.cs
ItemDropAbility.cs
ProjectileAbility.cs
TriggerAbility.cs
uncut viper
#

ahh, gotcha. i was wondering the use for the optional trinket ID, since i assumed that meant you could trigger the same proc effects for trinket A even if you were wearing Trinket B

lucid iron
#

well if i am do all this stuff i'd prob include a more trinkets feature

#

so perhaps you want to target only this 1 trinket out of the 3 you are wearing

#

someone more organized than me would have a trello board but my planing is this 1 discord msg on my private server that i am editing kyuuchan_run

uncut viper
#

i just keep everything in my mind, which has a flawless track record for as long as i can remember

lucid iron
#

hm i thought golden spur was bad enough

#

basilisk claw is in the actual monster classes

#

Thqnkqng why

#

immunity was right there...

brittle pasture
#

just patch hasTrinkerWithID

uncut viper
#

selph if the 1.6.9 patch notes can say trinker you can say trinker too its fine

brittle pasture
#

done

uncut viper
#

cant wait for TrinkerTinket to release

lucid iron
#

trinket isnt even a word anymore

uncut viper
velvet narwhal
#

wait was that fixed or are we permanently trinker

lucid iron
uncut viper
velvet narwhal
#

i am too lazy to make a new folder just to ensure 1.6.8 doesn't break

light jasper
#

hey sorry for being MIA, been on a work trip the last 2 weeks so I've been falling behind. Basically I'm removing that tab entirely to GMCM like focustense mentioned. Hopefully I'll have time this week as I get caught up with my other project work

sacred sluice
#

Hey guys, i have a problem with my code, it says that it can't find the token {{HaleyName}} :/
Is there someone that can help me? I can send the images on #images-and-memes

uncut viper
ocean sailBOT
#

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

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

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

sacred sluice
#

It's REALLY messy and i don't know what i'm doing lol

uncut viper
#

please do not send the json directly in here, please use the uploader that the governor bot links you to

sacred sluice
#

ooh sorry

uncut viper
#

sorry, just for more context, is this a mod that you made, or are you just wanting to change the translations and make Haley's name into Larissa when portugeuse is selected, but this is someone else mod (which isnt updated for 1.6)?

sacred sluice
#

Sorry if it's hard to understand, i'm new at those things and english is not my first language

uncut viper
#

the original mod uses DynamicTokens it set up at the top of the file to use throughout the file, so if you delete all the other tokens, nothing else in the rest of the file will work either. when deleting a bunch of things, you also deleted the part that actually starts the "DynamicTokens" section and so your "HaleyName" part isnt actually creating a dynamic token, so {{HaleyName}} wont work

#

nothing else will work that uses those deleted tokens*

#

and because you deleted all the other tokens too, most of the stuff in the Data/NPCDispositions section will not work anymore because they need dynamic tokens for everyone else. also, if you're going to try to use this in Stardew Valley 1.6, Data/NPCDispositions doesn't exist anymore

sacred sluice
uncut viper
#

im not actually sure why the original mod still had it since it has other 1.6 stuff too, so i think you can probably just delete it, yeah

#

you'll want to delete all the non-Haley lines in your Strings/NPCNames section too

#

and in your Strings/StringsFromMaps section near the bottom, you have a line for Elliott still too, which uses the Elliott token that no longer exists, so you want to delete that line too

sacred sluice
uncut viper
#

okay actually i was a lil bit incorrect (the original json is so long SDVpufferdizzy) bc the original uses both DynamicTokens and config, but the name is actually controlled by the config and not a token (but the same general concept applies in that it was looking for a token that no longer existed)
i assume you dont want Haley's name to be configurable anymore and want it to just be Larissa?

#

like Larissa no matter what I mean

#

if so, then at the top you currently have this:

"HaleyName": {
"Default": "Larissa"
  },

but if you replace it with this:

"DynamicTokens": [
  {
    "Name": "HaleyName",
    "Value": "Larissa"
  }
],

it should work

sacred sluice
#

I'm so confused, I don't understand what i'm doing wrong 😭

uncut viper
#

can you reupload your new content.json to the uploader site again?

sacred sluice
#

Here!

uncut viper
#

ah okay, that ones on me, you need a comma after the ] on line 27

#

ive edited my example in my previous message to add the comma where it needs to go

sacred sluice
#

TYSM I'M SO HAPPY

uncut viper
#

SDVpufferparty glad you got it working!!

sacred sluice
uncut viper
#

gimme one sec

sacred sluice
#

I forgot to change it lol

uncut viper
#

oh yep, there it is haha. you can replace Haley with {{HaleyName}} and it'll work

#

(you can also just write Larissa there if you want but you're already usin the token everywhere else anyway)

sacred sluice
uncut viper
#

SDVpufferheart happy to help!!

past knot
#

Hello all! I am entirely new to creating mods, but I have a moderate project I'd like to get to work on. I'd like to start with making the npcs. If anyone could link me resources and tutorials, that would be so awesome. If you could @ me or send a dm (^-^)/

uncut viper
ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

uncut viper
tiny zealot
#

@past knot i recommend getting to know Content Patcher before jumping into the NPC tutorial. it's essential to have a grasp of what you're doing so you're not blindly editing files

past knot
#

:DD will do! Thanks for being receptive @tiny zealot @uncut viper

uncut viper
# past knot :DD will do! Thanks for being receptive <@1127795093198352445> <@786577578461880...

SDVpuffersalute if y'ever need help along the way feel free to ask questions in here if you cant figure somethin out (tho preferably after reading the relevant documentation and stuff first, since it probably has most answers you'd need) and someone will probably try to help
i only say "probably" bc sometimes you just get unlucky and no one who is currently around either knows the answer or is free enough to help, so you might just have to wait a bit
(though just a heads up, you will tend to get quicker responses for error messages if you include your log and jsons uploaded to smapi.io when you ask for help)

outer schooner
#

is there a guide for how to convert data/spouserooms to the relevant fields in data/characters?

sonic bramble
#

Where do I ask questions about mods, as in neededing assistance with running them while on co-op with a friend (we both have all the same mods installed)

tiny zealot
outer schooner
#

what fields do i need to rename then?

brittle pasture
#

set the SpouseRoom field in the new Data/Characters model

tiny zealot
#

what does the mod have right now for the Data/SpouseRooms patch?

outer schooner
#

assets/maps/eugenespouseroom

#

oh wait in teh content file it says

#

//Load SpouseRooms
{
"Action": "EditData",
"Target": "Data/SpouseRooms",
"Entries":
{
"Eugene": "EugeneSpouseRoom/0",
}
},

// Load SpouseRoom Map
{
    "Action": "Load",
    "Target": "Maps/EugeneSpouseRoom",
    "FromFile": "assets/Maps/{{TargetWithoutPath}}.tmx"
},
tiny zealot
#

leave the second patch as is (you will still need that to load the tmx).
instead of the first patch, in the Data/Characters entry you will need to add

"SpouseRoom": {
  "MapAsset": "EugeneSpouseRoom"
}```
#

since this is a 1.5 mod, the content.json probably doesn't have a patch for Data/Characters, so you might have to splice it in with a Fields or something

outer schooner
#

can i just replace the first patch with it?

brittle pasture
#

(assuming the NPC's name is Eugene) this can work if you don't want to convert the NPC's entire file to the 1.6 format

{
  "Action": "EditData",
  "Target": "Data/Characters",
  "TargetField": ["Eugene", "SpouseRoom"],
  "Entries": {
    "MapAsset": "EugeneSpouseRoom",
  }
}
outer schooner
#

thank you! i don't honestly think i could convert the entire file, i still have very little idea what im doing

tiny zealot
#

make sure that patch selph gave you comes after (meaning, appears lower in the file) the NPCDispositions patch. i assume CP's rewriter leaves patches in the same position in the files, and you want the spouse room edit to happen later

outer schooner
#

yep, its after

#

did not work

#

can anyone take a look at the file and see what's wrong?

brittle pasture
#

put the Data/Characters SpouseRoom patch after the SpouseRoom map load

#

(actually wait does it matter?)

#

please post your log

#

maybe the outdated format could also be an issue

lucid iron
#

@next plaza hello i tried to use RegisterEquipmentSlot, it is draw the bg really big rn.
also it doesn't seem to do trinket init stuff (no companions spawn)

#

oh and i cant seem to unequip anything

next plaza
lucid iron
#

hm the icons r from game

next plaza
#

Yeah the game ones are 64x64

lucid iron
#
if (Helper.ModRegistry.IsLoaded("spacechase0.SpaceCore") &&
    Helper.ModRegistry.GetApi<Integration.ISpaceCoreApi>("spacechase0.SpaceCore") is Integration.ISpaceCoreApi SC)
{
    foreach (int i in Enumerable.Range(1, 3))
    {
        SC.RegisterEquipmentSlot(
            ModManifest,
            $"{ModId}_ExtraTrinketSlot_{i}",
            (item) => item is Trinket,
            () => $"Extra Trinket {i}",
            Game1.menuTexture,
            Game1.getSourceRectForStandardTileSheet(Game1.menuTexture, 70)
        );
    }
}
#

darn ok

next plaza
#

Oh and your slot validator needs to accept null

#

I thought I put that in the docs, maybe not

#

Oh, I did.

* `Func<Item, bool> slotValidator` - The function to validate if an item will be accepted in the slot. Make sure it accepts `null`.
#

So item == null || item is Trinket

lucid iron
#

oh right i just did item is Trinket

#

yep unequip works now

ocean sailBOT
lucid iron
#

ig i gotta copy the game's icon into a 16x16 Bolb

next plaza
#

As for the equip thing, it looks like there's special code for the net list of trinkets

calm nebula
#

On the bright side, it's a list!

#

Chu/e, you can probably get extra trinket slots simply by setting the field that has the max trinket slots hjgher

next plaza
#

SpaceCore manages it's own equipment slots though, so the trinket stuff won't work with it directly

lucid iron
#

yea but i dont want to fight more rings

next plaza
#

That is completely fair

calm nebula
#

Granted, no guarantee on sane menuing

next plaza
#

Why I made the menu in the first place 😛

#

SO

#

For making it work:

#

Hmm, will this idea work though

calm nebula
#

It's weird that it is in the netlist

lucid iron
#

i suppose i will try just setting more trinket slot though, just to see the behavior Bolb

calm nebula
#

Code

next plaza
#

I was gonna say, patch Item.onEquip/onUnequip and detect trinkets and call apply/unapply

#

But I wonder how that would interact with other trinket stuff

calm nebula
#

Which makes it do that stuff in mP

next plaza
#

(Like, there's an unapplyalltrinketeffects somewhere that's used for resetting before save)

calm nebula
#

Like, I'm pretty sure on Equip etc is only called locally

next plaza
#

Ah, true

calm nebula
#

But trinkets are actually have inkt code called for all players

uncut viper
#

is it too late for stardew to go singleplayer only in 1.6.9

outer schooner
#

any ideas how to fix eugene?

calm nebula
#

Stardew 1.7: works on Mr. CA's computer

lucid iron
#

maybe the play is to like

#

make wear more rings: spacecore edition

#

and then i can have the trinket slots ahahaha

uncut viper
calm nebula
#

Does wear more rings not have an api for "number of trinket slots"?

brittle pasture
next plaza
lucid iron
#

it just goes up to 2 i think

calm nebula
outer schooner
#

ooookies

calm nebula
#

(Numv3r of rings is exposed in thr api)

brittle pasture
#

(for future reference please use smapi.io for both JSON and logs. It has validators for the former and neat parsers for both)

outer schooner
#

okie dokie, will do

lucid iron
#

ah hm all the checks for trinketSlots is just != 0 rather than anything more fun

outer schooner
#

it still didn't work!

calm nebula
#

Anyways

#

Sleep time for an Atra

#

Godspeed and good luck

lucid iron
#

snailspeed cus im pushing this to the next sprint sleep

calm nebula
outer schooner
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 64 C# mods and 137 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

calm nebula
#

for _ in range(3) was what I ended up with

#

I also tried to do rust statements in c#, lol

lucid iron
#

the wires are all tangled

uncut viper
#

(ah, it looks like it might indeed be the case that having the old CP format for the rewrite and also targeting Data/Characters might not work?)

calm nebula
#

I need an excuse for a rust program

uncut viper
#

would setting the priority on the Data/Characters patch fix it you think?

calm nebula
#

But the thing I want to build is conceptually very simple and also very UI

uncut viper
#

true, cant hurt

tiny zealot
brittle pasture
#

long shot, but try replace the patch I gave with this:

{
  "Action": "EditData",
  "Target": "Data/Characters",
  "TargetField": ["Eugene"],
  "Entries": {
    "SpouseRoom": {
      "MapAsset": "EugeneSpouseRoom",
    }
  }
},
outer schooner
#

giving a try

uncut viper
#

you'd wanna use fields there, no? not entries

brittle pasture
#

Fields doesn't work with TargetField

outer schooner
#

omg it worked

#

thank you so much!

uncut viper
#

oh you're right i was heirarchying wrong in my mind

calm nebula
uncut viper
#

SDVpufferthinkblob good to know too that you cant targetfield on a list field thats been set to null, i guess

#

(object* field not list field)

brittle pasture
uncut viper
#

is that forum for bugs with specific mods or just. bugs in anything in general though

brittle pasture
uncut viper
#

is this even a bug or just a quirk of updating a mod

calm nebula
#

Button can you help me solve my bugs at work?

uncut viper
#

are you gonna pay me

calm nebula
#

I can tell you literally nothing about anything

#

Nah

#

(I'm kidding, obviously.)

uncut viper
#

im looking for a job so if you can get your company to hire me we can at least both be paid to complain about the same bugs without actually doing anything

lucid iron
#

Have you tried asking Cortana \s

uncut viper
#

i forgot that was a thing

lucid iron
#

She is kill soon right

#

Replace by copilot

calm nebula
#

Poor cortana

#

I actually didn't hate cortana

#

Voice was pretty good

#

I got a kick out of trying to install windows with voice commands until I accidentally set my username to "night"

uncut viper
#

(i still just find it strange they took the Halo character for their AI in the first place... i dont wanna get too off topic tho)

#

oh is that how that happened

#

unrelated but does SpaceCore's PlaySound action only work with sound cues, or can it start playing music, too? (without overlapping on top of the current music, ofc)

calm nebula
#

I wouldn't know for sure

#

But bets are on "allows playing of music"

uncut viper
#

every time i try to find something in the spacecore repo i get lost and tell myself "ill remember where things are next time"
here i am, at the next time... lost

calm nebula
#

Not sure if wants to bet on "replaces current running tracl" or "plays over it"

#

Tbh button I never go to thr spacecore docs

lucid iron
#

But u can search repo right

uncut viper
#

id bet on plays over it but i would also not be surprised if it didnt

calm nebula
#

I go directly to code

#

Just try it

uncut viper
#

if i was at my computer right now i would! i will soon though

#

was trying to think if adding a PlayMusic or StopMusic action in BETAS would be redundant

teal bridge
#

I think music is sound, non? Everything is in Wave Bank.

tiny zealot
#

it may be redundant, but you may also encounter one of the people who don't have spacecore installed (there are dozens of us)

calm nebula
#

Technically I don't have spacecore installed!

teal bridge
#

(More than dozens of us. No disrespect to Casey.)

calm nebula
#

(I have nothing installed so.)

teal bridge
#

You don't have spacecore installed on your feature phone? What's your holdup?

calm nebula
gilded comet
#

what? you don't have spacecore installed into your fridge? where have you been??

lucid iron
#

This looks like just play sound

#

Not switch track

uncut viper
#

if i added it and it was redundant bc they had spacecore too i think id rather them just use the mod that was much better maintained tbh
if they added my mod and not spacecore bc they needed the ability to play sound with an action then... i would also think theyd be much better off with spacecore

lucid iron
#

Although doesn't event script have music related stuff

calm nebula
#

So the question is what playsound does with a music track

brittle pasture
#

would be hilarious if it plays it on top of the current track

lucid iron
#

I think it just plays it over existing sounds yea

#

Rmbr the mod about playing sea sound when couch

#

Needed to track the cue to prevent such things

teal bridge
#

Well yeah, you can't just Game1.playSound("music track"), that would be... not good.

calm nebula
brittle pasture
#

woops that was meant for a different chat window you all saw nothing

tiny zealot
#

i put up a legacy build of nightshade a while back and got reports that it works on android (pure luck), so some people are indeed still at it out there

past knot
#

I suppose I got the general gist of using content patcher for npc making.

#

Now my question now is if sprites and portraits must be separated??

brittle pasture
#

they're different yes

tiny zealot
#

you can load them from the same source file if you really want to, but they need to be loaded into different game assets so there's no benefit to doing so

lucid iron
brittle pasture
#

it's probably just the higher proportion of mobile users among Chinese players in general

lucid iron
#

I seen posts of dl link for full install of 1.5.39 plus smapi plus mods on bilibili before

uncut viper
#

(playsound does just play the music overtop the current music. no clue if it loops or not bc two wavys playing overtop each other is mindflooding and i need to stop it)

calm nebula
#

So it depends

#

Lol

uncut viper
#

oh the sound just restarts if you exit to title and load back in huh

#

or keeps going rather

#

you're right it does just loop anyway

lucid iron
#

Do u want to impl some kind of lru_cache for cues

uncut viper
#

interesting that at least with the typical changeMusicTrack function, you actually cannot force it to play the rain ambient music if its not raining

#

if you change the music track to none it will stop the music and then pick a new ambient track appropriate for the location, like birds or whatever, rather than silencing things completely

#

but if you set it to rain it will silence it completely

#

bc its playing rain but wont let the sound through

#

i also dont think you can change the track at all if its green raining (and you're not on the island)

velvet narwhal
#

(btw don't ever use the sinwave sound)

#

(breaks my events)

glad zenith
#

whats the best way to add the little lights / firelies from the secret woods to the farm?

lucid iron
#

are they critters

calm nebula
#

No

#

You can't without c#

#

It's massively hardcoded

lucid iron
#

Rip

glad zenith
#

il take the L

hollow dust
uncut viper
lucid iron
hollow dust
#

I tried using somebody elses map mod as a base, i aligned the what's suppose to be the warps and entries and such, but when I load the map I just got lots of red texts, so basically idk what I'm doing when it comes to setting map properties

#

I'm tryna make it a custom farm

lucid iron
#

You should post the error log

#

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

hearty folio
#

any tips for someone wanting to get into learning to make mods?

lucid iron
#

I am not at computer so I can't look at your mod files

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

lucid iron
#

First step is to have an idea

uncut viper
#

tip 2) see tip 1

hollow dust
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Pro, with 5 C# mods and 2 content packs.

hearty folio
lucid iron
#

Looks like your tile coords aren't within the bounds of the map

hearty folio
#

never made a mod before but i have some ideas lol

lucid iron
#

Spouse patio specifically

hollow dust
#

i only did the single coordinates ones

#

there was like 9 coordinates there

#

but the spouse patio only got 8, it's a 4×2 tile so I was confused

#

so I didn't touch

lucid iron
#

Although this could be some custom farm loader thing, which I'm not familiar with

hollow dust
#

well, for the mean time I guess I could make it as a replaceable?, how would I do that

lucid iron
#

You don't need that mod to make a custom farm in 1.6 but it does give u some features that you otherwise use farm type manager for

#

Unsure what you mean by replaceable

hollow dust
#

like, the farm replaces the forest farm or any of the vanilla maps

lucid iron
#

Your map itself is erroring

#

Changing to replace a vanilla farm won't fix that

#

And once again you don't need CFL to make an additional farm in 1.6

hollow dust
#

oh okk

#

so should I just fix the spouse area location?

lucid iron
#

Yeah start with that Bolb

hollow dust
#

aye

hollow dust
#

djsiisjdjskshdid

#

tho the bus stop, farmcave, forest, backwoods warp won't work

#

like, I just go out of bounds xD

lucid iron
#

Hm is the mod you based your mod on updated for 1.6?

hollow dust
#

yepp

lucid iron
#

think then the coords should be the same

hollow dust
lucid iron
#

Yeah double check those

#

A helpful mod for this is debug mode, let you see your tile coords in game

#

I sleep now, good luck

misty wind
#

I'm having some issues with a dialogue replacement thing I'm working on - I want it to be a probability based thing (to not be repetitive) but I'd also like a line break in the middle of some of the options. The game seems to see #$b# as another option and not a break? is there a way to next a line break inside of a probability? I am very dumb SDVpufferwaaah

uncut viper
#

the # character is used to separate each of the options in your probability-based dialogue command. but you can do this (with more than just two options, even) with Content Patcher's i18n system pretty easily too

misty wind
#

How would I do that?

velvet narwhal
uncut viper
#

^ there u go much better example than what i was typing up

velvet narwhal
#

lol i got you

uncut viper
#

what avi posted will choose a random i18n entry out of danceRejectionCharacterDialogue_1, danceRejectionCharacterDialogue_2, etc. up to 5 from avi's i18n default.json

#

0 to 5* not 1 to 5

velvet narwhal
#

my default json:

#
"Lance.danceRejectionCharacterDialogue_1": "Maybe next time, I'm still getting used to my bearings here in the valley.$8",
"Lance.danceRejectionCharacterDialogue_2": "Maybe you could ask someone else...? I hardly believe I'm a fitting partner.$8",
"Lance.danceRejectionCharacterDialogue_3": "Apologies, I don't quite understand the steps.$8",
"Lance.danceRejectionCharacterDialogue_4": "Maybe next time, I'm not quite interested in dancing this time.$8",
"Lance.danceRejectionCharacterDialogue_5": "Sorry, you'll have to count me out, I'm a little worse for wear.$8",```
uncut viper
misty wind
#

Oh wow haha that's gonna take my smooth brain a minute, thanks guys!

velvet narwhal
#

it is best practice to use i18n/default.json if you ever happen to get a translator, as well as just ease of access for all of your dialogue being in one spot rather than all over the place

hollow dust
misty wind
#

Yeah I've never coded before, I just borrowed the format from a friend to update some dialogue, gonna need a bit to get the hang of it hah

velvet narwhal
#

oh y'know the content patcher docs doesn't have the range randomiser easily accessible huh SDVpufferthink

uncut viper
#

it just uses the range token, its not a randomizer specific thing

velvet narwhal
#

oh fair

uncut viper
#

i dont think it includes anything for creative nesting of tokens for the most part

velvet narwhal
#

SDVpufferclueless we really do be doin crazy things with tokens

#

do i script my events, or do i continue writing SDVpufferflat

uncut viper
#

.choose events, writing

patent lanceBOT
#

Choose result: events

uncut viper
#

there you go

velvet narwhal
#

okay

#

has to pull out tiled

slender badger
# misty wind I'm having some issues with a dialogue replacement thing I'm working on - I want...
Stardew Modding Wiki

With the game's default dialogue setup, you would be limited to 168 lines of dialogue: one per season, alternate heart level, and day of the week. However, you can use i18n to easily create a pool of randomised dialogue, either to extend the amount of dialogue beyond the 168 line limit or to remove the season/heart level/day conditions without r...

real kiln
#

Sigh, having this error and cant find anyone with an answer from google. Tried spawning in a item using c# and have the manifest.json and .dll in correct places. I can share code if needed. anyway this is the error on SMAPI "1.0.0 because its DLL has no 'Mod' subclass."

modest dagger
#

y'know something tells me I shouldn't have an item with an edibility value of 1600 but I don't care enough to change it

uncut viper
modest dagger
#

oh wait I forgot to remove the +400 that probably adds a lot

real kiln
#

Okay give me a little to work on it, then ill share my code if not able to figure it out if thats okay?

#

Thank you for the quick answer Button

uncut viper
#

did you follow from the wiki guide for getting started with C# mods?

real kiln
#

Yes sorta, I tried playing around with to much I think lol!

uncut viper
#

mightve just removed the mod subclassing by accident then

#

internal sealed class ModEntry : Mod should have this in your ModEntry.cs (assuming you didnt rename anything)

real kiln
#

Uh little lost. Lol ```using System;
using StardewModdingAPI;

namespace SpawnItems
{
public class ModEntry : Mod
{
public IModHelper Helper { get; set; }

    public void Entry(IModHelper helper)
    {
        Helper = helper;

        // Your mod's initialization logic here
        helper.Events.Input.ButtonPressed += OnButtonPressed;
    }

    private void OnButtonPressed(object sender, EventArgs e)
    {
        if (Game1.IsChatting)
        {
            string chatText = Game1.chatBox.Text;
            if (chatText.StartsWith("/spawn"))
            {
                string itemName = chatText.Substring(6).Trim();

                // Check if the item exists in your item dictionary
                if (itemIds.TryGetValue(itemName, out int itemId))
                {
                    // Create the item and add it to the player's inventory
                    var item = new Item(Vector2.Zero, 1);
                    item.Stack = 99; // Set stack size as needed
                    Game1.player.addItemToInventory(item);
                    Game1.chatBox.Text = $"Spawned {itemName}";
                }
                else
                {
                    Game1.chatBox.Text = $"Item '{itemName}' not found.";
                }
            }
        }
    }```
#

In my solution explorer ModEntry.cs is my only ".cs" file and I made the .dll using a referenced debugging builder. Idk. I seem lost hahahaha

uncut viper
#

your Entry() should be an override void and not just void

real kiln
#

public void Entry(IModHelper helper) ?

#

Ok ill try it out

uncut viper
#

public override void Entry(IModHelper helper)

real kiln
#

Thanks one sec ill test and get back to you, appreciate you helping a lot!

#

Getting same error when I rebuild it and put it into right location in the SMAPi mod folder

#

Weird.

uncut viper
#

are you sure there's not a duplicate older/broken version of your mod in your mods folder thats kept there by mistake? if you're using the usual Mods folder and set everything up per the wiki it should already be putting your mod in your mod folder when you build it without you needing to move it

#

unfortunately i need to sleep now though so hopefully someone else will be able to come along and help you out more

real kiln
#

ill keep looking into it thank you! you get sleep ! if someone comes along ill ask them, I will look around to see what I did wrong

old edge
#

do you have visual studio yet?

real kiln
#

Me?

#

I hope its not cause I have .NET 7 and I dont know if I have .NET 6 installed

old edge
#

public override void Entry(IModHelper helper)

#

I think you're missing override

real kiln
#

I have that now!

#

is it possibly because I am on wrong .net?

#

only thing I can think of

#

targeted framework... 4.7.2 LOL is this whats causing it?

old edge
#

do you have the csproj file?

#

you can target net6.0 there.

real kiln
#

yeah! so I just right click on solution explorer on the EntryMod.cs go to properties and target the right .NET ?

old edge
#

yeah you should I just edit the text file

real kiln
#

Okay give me a few minutes installing .net 6

#

should I download arm64 or x64 i am on a laptop

old edge
#

most newer laptops use arm64

#

you need to check

real kiln
#

ye just x64 lol

rancid temple
#

You have to target net6.0 but you can slap <LangVersion>latest</LangVersion> under it to use more modern language features

#

I couldn't begin to tell you what those are, I run into them occasionally based on where I get my solutions to problems from and nobody ever bothers qualifying that they're for a specific language version, just kind of find out if you don't target latest and try to use something that's not available in 6

#

I believe it's the latest version you have installed, so if you want 8 stuff you need to install 8

#

Target will always be 6 unless the game upgrades again

proud wyvern
#

I’d recommend not setting the version to latest, but a specific version (the current latest being 12)

#

While the versions are mostly backwards compatible, sometimes they do introduce potentially breaking changes

rancid temple
#

Ah, good to know

real kiln
#

Yeah I also just realized I am using visual stuido 2019... so I literally have to download Visual Studio 2022 lol

#

For workloads can I just download .NET desktop developments? or do I need ASP.NET and web development as well for now? if im just using for stardew

rancid temple
#

Not sure what that is lol

real kiln
#

Just packages to be able to use .netframeworks

rancid temple
#

No idea, I didn't do anything different from just installing 6 and 8, I already had VS22

real kiln
#

yup lucky LOL

spice inlet
#

asp.net is a framework for web applications, which you don't really need for sdv mods

#

you can always run the installer again to install it in the future

real kiln
#

Yeah thanks , so I got everything setup with the .NET 6 and Studio 2022, but now I have a ton of errors when my code was working before

real kiln
#

Is it because I need to slap in the lattest Lang version like rokugin said?

spice inlet
#

in vs if you double click the project in the explorer you will open the projects .csproj file
there you need to change the target framework: <TargetFramework>net6.0</TargetFramework>

#

can't really help further without you actually sharing what errors you're getting 😄

real kiln
#

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>

Yeah I have that, how do I share a screen shot? can I paste in here?

#

I havent built it yet since I just switched from 2019-2022

spice inlet
#

to me it looks like everything is working fine and you just need to update/fix the code to align with the 1.6 codebase

real kiln
#

can you link me to the 1.6 codebas lol

spice inlet
#

well for one you could decompile the game:

#

!decompile

ocean sailBOT
spice inlet
#

eg. For the third error you'd use "ItemRegistry.Create" nowadays

real kiln
#

LOL oh my god that is a big wiki document ill look into that thank you, I am new to modding stardew

#

thanks for the help!

sleek aurora
#

I'm confused 😩 What should be in these fields:

"ObjectInternalName": "{0} Vinegar",
"ObjectDisplayName": "{{i18n:inputName}}",

so that the result would be Vinegar (Rice)

real kiln
#

if I am trying to find documentation on like part of the stardewvalleyapi can someone link me it? Like I am trying to find the definition for the chatBox method...

ocean sailBOT
real kiln
#

will have to do that once im on wifi, right now im on data. unfortunately.

dense jolt
#

Why do a lot of modders here use a monorepo for their mods instead of separate ones

dense jolt
lucid mulch
#

tbh a lot of it is just mirroring what Pathos does

sleek aurora
#

Is it possible to somehow make my own FLAVORED_ITEM? For example ice cream.

past knot
#

Gah finally I got sprites done to actually put in game... now, I am requesting a tutorial on how to actually create schedules

vernal crest
#

I don't think a tutorial for schedules is really necessary, since you can just look at the wiki page for schedules to see what everything means and copy vanilla schedules, but I did find this set-by-step for how to edit existing NPC schedules which you could adapt for a copy of a vanilla schedule if you wanted. https://stardewmodding.wiki.gg/wiki/Tutorial:_How_to_edit_a_custom_NPC_schedule_for_personal_use

https://stardewvalleywiki.com/Modding:Schedule_data

https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Schedule_changes

slender badger
#

Tia's Making a Custom NPC tutorial also has a section on schedules

vernal crest
iron ridge
finite ginkgo
iron ridge
#

ah ty

glad grove
#

To downgrade/upgrade tools, is there a direct way to replace the item or is it just removing the old item and adding the new one afterwards?

cinder locust
lucid iron
dense jolt
#

Hmm, I'll see then. Would be more work 😅

grizzled rain
#

hello, I am trying to make a config option for my SID(sprites in detail) mod, but I cannot for the life of me, figure out how to do it properly. can I get some help here?

#

i'll get my content.json up in a moment

dense jolt
#

Wait with or without config menu?

grizzled rain
#

with the config.

#

okay, here

calm nebula
#

Shared code = a shared library, etc

#

Ngl cherry's set up makes me want to throw things. She has a separate sln file per project

lucid iron
spice inlet
grizzled rain
lucid iron
#

Could you send that too

#

And it is under the SiD folder rather than main npc CP right?

calm nebula
#

(EPU/STF)

grizzled rain
lucid iron
#

I think it's actually the season query failing
"Query: '{{Season}}' = 'spring'": true

grizzled rain
#

oh i may be idiot

#

thank you so much! I'll try that

lucid iron
#

But wait you should just not use query here

slender badger
#

You don't even need a query for that, SiD uses regular When conditions

grizzled rain
#

ah ok

lucid iron
#

Have 2 entries in when instead

grizzled rain
#

sorry, the guide on the description page says to do that

#

alright, testing it now 👍

slender badger
#

What's the config option you're trying to add?

grizzled rain
#

basically "Sprites": "Enabled"

#

so that anyone who uses the mod can choose to disable them

slender badger
#

As far as I'm aware, SiD will automatically add that option regardless of whether you code it in or not 😆 I never added it for DSV's Marigold, but it still shows up as an option in GMCM

grizzled rain
#

fr?

#

i did not know this

slender badger
#

Yeah, SiD's documentation is pretty poor 😅

#

I have the opposite problem, I can't work out how to make it go away 😆

grizzled rain
#

rip

slender badger
#

Try changing your code to this and see if it works:

{
  "Sprites": [
    {
      "Target": "Characters/ritzygen.gabrielmod_Gabriel",
      "FromFile": "assets/GabrielSpritesSID.png",
      "BreathType": "Male",
    },
    {
      "Target": "Characters/ritzygen.gabrielmod_Gabriel",
      "FromFile": "assets/GabrielSpritesSID-winter.png",
      "BreathType": "Male",
      "When": {
         "Season": "Winter"
      },
    }
  ]
}```
iron stream
#

Question: So far is there a way I can brute force open Marnie's pet shop window? Or raise my pet to full hearts to gain access to the page?

slender badger
#

debug seenmail MarniePetAdoption

slender badger
#

@iron stream Forgot to @ you, sorry!

iron stream
#

aaa thank you Airyn!!

grizzled rain
#

it works now! Thanks Airyn, and chu/e !

grizzled rain
sleek aurora
#

Help me please 😢 I’ve already tried all sorts of different options and I just can’t figure out how to make the name pull up from vanilla objects in the format Vinegar (Rice)

"ObjectInternalName": "{0} Vinegar",
"ObjectDisplayName": "{{i18n:inputName}}",

calm nebula
#

See how cornucopia does it

#

(Disclaimer: I don't remember)

drowsy pewter
#

i need more context to answer

calm nebula
slender badger
slender badger
#

No problem 😄

sleek aurora
#

Cornucopia does this for new objects, but I only have vanilla ones

drowsy pewter
#

i can tell you how to do it but i need more information on what you're trying tk do

sleek aurora
#

The code itself
"Id": "MK_Vinegar",
"ItemId": "(O)419",
"ObjectInternalName": "{0} Vinegar",
"ObjectDisplayName": "{0} Vinegar ({{DROP_IN_ID}})",
"MinStack": 10,
"MaxStack": 10,
"PreserveId": "DROP_IN",
"CopyPrice": true,

drowsy pewter
#

no like. what is this. what are you trying to make. what is the outcome and what are some example output names in this format.

sleek aurora
#

In short, I make a recipe for making vinegar from different ingredients and at different prices.

lucid iron
#

Are you trying to make flavored vinegar

drowsy pewter
#

do it the same way cornucopia does

#

it doesnt matter that its a vanilla item

sleek aurora
calm nebula
#

@ivory plume this may be the weirdest modding request ever but. Can the setter of Game1.player be marked internal, not public

sleek aurora
#

Got it, thanks.
And one more question. Is it possible to somehow make my own FLAVORED_ITEM? For example ice cream.

calm nebula
#

It's pretty much unsafe to assign to Game1.player because it will call unload on the previous instance

lucid iron
#

Yeah that's a feature of extra machine configs

calm nebula
#

I think it's time to stop people from even being able to do it

#

(It may need an annotation for the xml serializer?)

drowsy pewter
#

like not a true FLAVORED_ITEM

#

which is basically identical in function just for machines

drowsy pewter
#

the EMC feature is for other stuff like item generation

lucid iron
#

So u can flavored cooked ice cream

calm nebula
#

Very important

#

The Texas state fair says cooked (deep fried) ice-cream js very important

#

In unrelated I'm really starting to wish c# made IsDisposed a part of IDisposable

sleek aurora
shadow vortex
#

Is there any better documentation or understanding of what the fields for TemporarySprites do? I'm trying to get my new machine to release a continuous trail of smoke while operating but it's just not working.

calm nebula
#

Are you doing this in c$

#

Or CP

#

Because I can already tell you it's not possible on cp

shadow vortex
#

I'm only using CP for now.

#

Not quite at th epoint of touching C# yet

calm nebula
#

I don't think it is possible then

shadow vortex
#

Alright then

calm nebula
#

With only one exception, temporary animated sprites disappear if you transition maps

#

(One hardcoded exception)

#

For smoke effects you would need to bake it into the machine animations

shadow vortex
#

I might just do that

sleek aurora
#

My mod adds ContextTags to some SWE objects for recipe compatibility. In this case, should I ask permission from the author of the mod before publishing my own?

slender badger
#

Yes, you should always ask for permission before publishing edits to another mod unless it has open permissions.

arctic pollen
#

if i’m trying to make a mod, what do i need to download here in visual studio?

drowsy pewter
#

what is SWE?

slender badger
#

SVE with a typo, I assume

calm nebula
#

But it really doesn't matter, all it does is install the sdk for your

#

And you can always install that later

calm nebula
#

(But also, the vast majority of mods do not need c#)

arctic pollen
#

thank you!

sleek aurora
drowsy pewter
#

for SVE, you dont need (to ask) permission

#

read their permissions section

sleek aurora
slender badger
vernal crest
#

Am I just imagining that NPCs sometimes have textAboveHead dialogue outside of events? Like just saying hello sometimes?

slender badger
#

Nah, that's a thing. They say hello to each other if they pass by as an automatic thing

vernal crest
#

Ok thanks Airyn :)

slender badger
#

What text they use is determined by a combination of age, manner, and "social anxiety" (basically how shy or outgoing they are)

hallow prism
#

they also have the greeting when they enter or when you enter a location

slender badger
hallow prism
#

(if added to the proper files, but it had some limitations at some point)

#

pierre's is the one you'll notice the most often

vernal crest
#

Sounds too hardcoded for me to hijack it for mini non-event events without C#.

slender badger
#

What were you wanting to do with it?

vernal crest
#

Some games have little vignettes where NPCs have interactions while the player is around but which don't interfere with the player's actions the way events do. So you can hang around to listen to them or you can leave if you want. I'd like to do something like that.

drowsy pewter
#

very much C#

ivory plume
# calm nebula <@226803198218731520> this may be the weirdest modding request ever but. Can the...

Sure! I'll also add code docs to explain the implications of setting it, for mods that will use reflection to do it.

/// <summary>The local character controlled by the current player.</summary>
/// <remarks>Setting this field will dispose the previous value, if any. The new value must be a completely new instance which doesn't share any texture instances with the previous one to avoid errors.</remarks>
public static Farmer player
{
    get { return _player; }
    internal set
    {
        _player?.unload();
        _player = value;
    }
}
slender badger
vernal crest
slender badger
#

You could theoretically simulate a conversation by having the two characters stand together and give them schedule dialogue that changes each 10 or 20 min slot

vernal crest
slender badger
#

Although you'd run the risk of players not realising what's going on and only talking to them once

hallow prism
#

you can also do the good ol technique of any non C# author, throwing casually the idea when there's lot of C# author around

#

and see if it happens 😄 (but then you may accept that It Will Not)

vernal crest
verbal narwhal
#

hello^^ I made my first "mod" (I want to replace the telephone stand with a matching one" and I think I am almost done but I do struggle with understanding some really basic things (I think?)
is it ok if I just tell you what I did in here (step by step) and maybe someone who understands modding can tell me what I need to do next? I have read through the creating mods page but I am kinda unsure about some things

fathom hound
verbal narwhal
#

thanks!!

#

I will do that!

verbal narwhal
#

the png is in the assets folder.
basically what I did is I located the phone stand in the tilesheets (craftables) and looked up the exact pixel location of it and now I want to just replace it with my png that has the exact same height and width and overall outline, I just changed some colors

supple jackal
#

Is there a flag/game state query/?? for whether the current player has a crib in the farmhouse? IK in the save file it’s
<cribStyle>1</cribStyle> for yes and <cribStyle>0</cribStyle> for no but I’m not sure how to check that in a mod. Want to make a CP event that only triggers if you have the crib

verbal narwhal
#

and as a total newbie I am so confused about the .dll part - if I understood correctly with 1.6 and new smapi I don't need to write any more code besides that, right? Sweating

slender badger
#

Since it's a CP mod, Camiska, you don't need the .dll line in your manifest at all - that's for a C# mod

verbal narwhal
#

perfect!

#

and I am confused where i get the uniqueid from?

calm nebula
slender badger
#

You create it! It's whatever you want it to be. Standard practise is AuthorName.ModName, so for example you could use Camiska.MatchingBrownPhone

verbal narwhal
#

oh great, thank you so much!!

slender badger
#

For the UpdateKeys line, you can fill that in after you create a mod page on Nexus: click the "Upload Mod" button, fill out the first page, then click save & go to the next page, but do not press publish yet - the unique ID will be the 5 digit number in the website URL

slender badger
#

So it should be:

{
      "Format": "2.3.0",
      "Changes": [
            {
                  "Action": "EditImage",
                  "Target": "TileSheets/Craftables",
                  "FromFile": "assets/matchingbrownphone.png",
                  "ToArea": { "X": 96, "Y": 837, "Width": 16, "Height": 26 }
            }
      ]
}```
verbal narwhal
#

thanks!! does the exact location of the brackets matter? or is a simple tab ok?

#

(I am doing this in txt editor and not visual studio or anything)

slender badger
#

As long as the order of brackets is maintained (ie. { Changes [ { Action } ] } then it's fine

verbal narwhal
#

thank you so much!!!

#

also for being so nice

slender badger
#

I'd recommend switching to Visual Studio Code though, it's a much nicer interface, it colour-codes brackets for you to make spotting errors like that easier, and you can set it up with a syntax to automatically check that your code is correct for Content Patcher

verbal narwhal
#

ohh

#

can I find that syntax here on discord? or on the modding guide?

#

I did a lot of sprites for a fangame but I have honestly no idea what I am doing as soon as I leave aseprite 🙈

slender badger
#

It's in the SMAPI documentation! One sec, I'll grab you the link since it's a bit hard to find

vernal crest
slender badger
#

Also this guide which I'd forgotten about until just now 😆 https://stardewmodding.wiki.gg/wiki/Setting_up_json_schema_checker

Stardew Modding Wiki

With fancy software like Visual Studio Code and Sublime, you could get the schema set up so it checks the formatting as you write your mod! Like a built in https://smapi.io/json/. See more details on Pathoschild's GitHub.
Below are screenshots of how it should look in VS Code. You may also be interested in how to search an entire folder with VS ...

verbal narwhal
#

thanks!!

vernal crest
#

Waaah vanilla movement is soooooo sloooooow

spice inlet
verbal narwhal
#

[SMAPI] These mods could not be added to your game.

[SMAPI] - Matching Brown Phone Table 1.0.0 because its manifest has no EntryDll or ContentPackFor field; must specify one.

#

what should I put there? q.q

hallow prism
vernal crest
vernal crest
vernal crest
# supple jackal Is there a flag/game state query/?? for whether the current player has a crib in...

Ok I have had a look and it appears that there isn't a mail flag for a crib being present but there is one for the crib having been removed. So I think you should be able to set your event up so it checks for a farmhouse upgrade of 2 or higher and HasFlag: NOT FirstPurchase_remove_crib (or however the negation would be written, I don't know off the top of my head), I think it should work. One caveat is that the mailflag doesn't get added until sleeping but the crib addition is instant, so there is a possibility that a player could add a crib and then get your event that same day.

supple jackal
#

Cheers, that's a wild hunt you had to go on! I'd looked for ages, thank you so much!!!

#

I might just add a time delay/conversation topic so there's time for the crib removal to register or something as a workaround

vernal crest
#

All good! I just went in game and gave myself a house upgrade and then removed the crib, then checked the mail flags using patch summary lol

supple jackal
#

Wait that's so smart lol

vernal crest
#

The list of mail flags we have documented on the wiki is pretty small compared to the actual number of mail flags so if it's a context that you can get to fairly easily in game it's a good way to check if a flag does exist.

supple jackal
#

I'm gonna keep that in mind in the future haha. Thanks again!

slender badger
#

"HasFlag |contains= FirstPurchase_remove_crib": false

vernal crest
#

Ah, something I just realised is that because the crib only has a FirstPurchase flag for some reason, you might run into an issue if a player upgrades their house (crib), removes the crib (no crib), then adds the crib back (crib). I need to check that.

#

Yes, ok. I can build the crib again and will still have the FirstPurchase_remove_crib flag. However, doing so adds the FirstPurchase_build_crib flag as well.

velvet narwhal
#

((is the event for a crib specifically or would you be able to get away with the pregnancy/adoption check on player/spouse))

vernal crest
#

Ok so you can deal with crib -> no crib -> crib again. But not a second cycle of that, because after you build the crib again you have both mail flags.

real kiln
#

Random question I decompiled StardewValley.dll should I also do the StardewValleyAPI.dll?

brittle pasture
#

there's no StardewValleyAPI.dll in my install. Unless you mean StardewModdingAPI.dll? Not sure why that would be useful

lucid iron
#

For smapi you can just look at the git repo

worn yew
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 25 C# mods and 23 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

final arch
#

C:\Users\fourt\Downloads\Jauna mape (2)\Stardew.Valley.v1.6.8\Stardew.Valley.v1.6.8\Stardew.Valley.v1.6.8\Content\Fonts\Latvian.png.xnb
remove the .png

#

in the FontFile path

gaunt orbit
#

new enhancements for happy home designer (while menu is open)

  • unlimited placement range for furniture & craftables everywhere
  • instant pickup of craftables
worn yew
final arch
worn yew
final arch
#

sure

real kiln
#

Does anyone know how I would go about grabbing text inputted using Game1?

string chatText = Game1.chatBox

#

I been looking through the stardew decompiled .dll but theres so much that i think im skimming through it, im just strictly trying to grab user input in chat box and then write a code if they do "/spawn" I can make something out of it. Been trying all night to do this lol

iron ridge
#

you could probably find where the normal commands are defined and add onto that?

real kiln
#

Thats a very very good point , my brains just in mush rn sorry for stupid questions

iron ridge
#

dw its alright

#

better to ask "stupid" questions than be stuck

hollow dust
frigid hollow
hollow dust
hollow dust
frigid hollow
hollow dust
#

thankss!!, idk how to do that

real kiln
#

Pillow do you know .cs file for commands? I found debugcommands but not regular ones, and nice mod man!

frigid hollow
#

you need mod author role to do that

hollow dust
#

ohh

#

how do I get that role

frigid hollow
#

once you reach level 25, you can request it since you've got a published mod

hollow dust
#

ohh, alrr!!

#

thank you!

iron ridge
#

so you could probably prefix it and do your own checks

real kiln
#

Thank you.

next plaza
#

.choose tomfoolery, shenanigans, mishaps and mayhem, responibility

patent lanceBOT
#

Choose result: mishaps and mayhem

next plaza
#

Phew

drowsy pewter
#

casey is procrastinating again

finite ginkgo
#

What's a responibility /j

hallow prism
#

like a disponibility, but higher res

velvet narwhal
#

No don't remind me my responsibilities start tomorrow SDVpufferflat

next plaza
uncut viper
finite ginkgo
#

@ivory plume in 1.6.9 getting ObjectDisposedException errors related to Audio that freeze the game, only happens when mods change existing/add new sounds/music, most consistent way I've found to trigger the errors is playing an event that uses custom music, once the event ends (either the event ends naturally or it gets skipped) the ObjectDisposedException errors start showing up

Log:
https://smapi.io/log/f0d743737a73403c9a941fe953403965

ocean sailBOT
#

Log Info: SMAPI 4.1.0-beta.1 with SDV 1.6.9 'beta' build 24238 on Microsoft Windows 10 Pro, with 5 C# mods and 1 content packs.

next plaza
supple jackal
# velvet narwhal ((is the event for a crib *specifically* or would you be able to get away with t...

It's sort of a two part question where the event is a "family planning" thing, but the purpose of the event is to inform the player that there's a config setting where they can choose whether they want to have bio or adopted kids which will then temporarily change the spouse NPC's sex based on the player's sex and their answer. So like, if: married to NPC AND have crib AND don't have two kids AND (female player & "bio" config OR male player and "adopt" config) = set NPC gender to male, else remain female. But I don’t want it to be perma-male if the player doesn’t ever have two kids so ideally no crib would prevent the change.

velvet narwhal
#

there's a slightly easier way to set adopts in the form of the new npc dispositions: https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC#Disposition
"SpouseAdopts": true, //If your character is marryable, you can use this field to have your character always adopt.
the problem would be setting that config to each and every npc
adopts can be set to GSQs which can then be config'd

#

((although if casey is working on that template thing then maaaaybe you can get away with the cp alternative))

supple jackal
#

ATM I'm targeting a specific new NPC so there's at least that lol

uncut viper
#

if that setting only matters for the spouse, could you do an EditData on Data/Characters with the key just being the {{Spouse}} token?

velvet narwhal
#

would you have to set the entries: { "{{Spouse}}" ? i don't know if it'll work like that

uncut viper
#

well it'd be Fields in this case, but yeah, thats what i was thinking. tokens do work in keys, thats why {{ModId}} works for unique keys, so id assume it would work... but iunno. dunno for sure

#

id both assume it would work but also wouldnt be surprised if it didnt for some reason im not thinking of

#

(it also wouldnt account for polyamory mods even if it did anyway, though)

velvet narwhal
#

i mean if you can get away with it that'd be nice eyeshake

            "Action": "EditData",
            "Target": "Data/Characters",
            "Fields": {
                "{{Spouse}}": {
                          "SpouseAdopts": {{GSQ}},
                          "SpouseWantsChildren": {{GSQ}}, << i can't remember the name of this one```
finite ginkgo
#

Knowing multiplayer it would probably throw an error for farmhands in multiplayer on the day they join ({{Spouse}} being unready)

uncut viper
#

(i think SpouseWantsChildren being false would mean no kids at all, adoption or otherwise)

next plaza
#

I think patches don't apply when the token is ready

#

Not give an error

uncut viper
#

even if it does i imagine you can just add a When condition to it too

#

to check if the value is null

finite ginkgo
supple jackal
#

I guess I could just make the user input whether they want kids as part of the config and use that instead of a crib check SDVpufferthink

uncut viper
#

if you set SpouseWantsChildren to be false by default and set it to true with a patch then it'd fix the farmhand edge case

supple jackal
#

that one professor told me never to trust my end users though lol

uncut viper
#

since it would only matter if they asked for kids on that first day, but if they didnt want kids, they wouldnt ask

supple jackal
#

that's a good idea!