#making-mods-general

1 messages · Page 70 of 1

teal bridge
#

Oh does "Unity devs" mean "devs using Unity for stuff", not "developers of Unity"

rancid crypt
#

the sarcasm lol

fierce vine
#

I was thinking of giving two options, joystick or dpad, but it would directly control the green bar like the mouse would do. But yeah, now the name for the mod could change

rancid temple
#

Oh that's how I took it, though I guess it wouldn't be that weird for some dev from Unity to want to make SDV mods

lucid iron
#

ill help test if u send a build

fierce vine
lucid iron
#

u can just put it here blobcatgooglyblep

#

or if u got a repo ill just build it

brave fable
#

unless i'm wrong, i really only use the gamepad to test menus lol

teal bridge
#

D-pad control wouldn't be analog, though, obviously. Sounds pretty hard to control that way.

brave fable
#

good enough for the nes, good enough for you

fierce vine
teal bridge
#

NES games didn't have anything as fancy as the Stardew fishing minigame.

#

Actually, if we're going chronologically, very old fishing minigames like the one in BoF2 worked very much like Stardew's, and other games of Stardew's era had already moved onto other mechanics, mostly using the analog stick.

calm nebula
#

Doing my division by writing to a register

#

And waiting eight clocks

teal bridge
#

Pah, who needs division anyway?

calm nebula
#

(Would you believe me if that is the only thing I know about the nes?)

fierce vine
# brave fable i'm fairly sure the dpad is mapped to the joystick axes ingame

I think there's two different key bindings https://stardewvalleywiki.com/Modding:Player_Guide/Key_Bindings#Controller I would use DPadDown/DPadUp vs RightThumbstickDown/RightThumbstickUp

Stardew Valley Wiki

Some mods let you edit key bindings, which are controller/keyboard/mouse buttons which do something in-game. This page explains how to configure them. (This works for any mod using SMAPI's standard APIs.)

brave fable
#

i've waited many clocks for this day..

teal bridge
#

Division is just degenerate multiplication.

lucid iron
#

wait what is BigButton

calm nebula
#

(That and it would take about 10% of the cpu time to render Mario's score due to that weird division.)

teal bridge
brittle pasture
lucid iron
#

is it an accessibility controller?

brave fable
#

looks like a buzz controller to me lol

teal bridge
#

Wow, I didn't realize there were controllers out there worse than the N64, or the PowerGlove, but there it is. Way to go, Microsoft.

brittle pasture
#

it was for a trivia game, the big button is for the buzzer

#

ABXY becomes the choices

fierce vine
teal bridge
#

You don't use SMAPI events for this. Use Input.

brave fable
fierce vine
teal bridge
#

I'm not sure if SMAPI even gives access to the stick values, now that you mention it... might have to just use Game1.GetInputState()

lucid iron
#

was there a big trivia video games phase that i slept through

brave fable
#

yep hahah

teal bridge
#

Correction, that's Game1.input.GetGamePadState()

brave fable
#

buzz and scene it for ps2/xbox were huge. thus started the funky controllers era of guitar hero

teal bridge
#

Guitar Hero was always cringe to me but it at least sort of had a reason to go that way. I mean, the goofy rock star fantasy was half the appeal of the game, and it did appeal to the boomers and some gen-xers.

#

Do we really need a special controller to make a Jeopardy game feel more immersive?

uncut viper
#

.. i wonder how hard itd be to support a guitar hero controller for the instrument item in the mod im making

lucid iron
#

do u own one such controller

uncut viper
#

yes

lucid iron
#

just up to monogame then

fierce vine
#

does it make more sense to fish with the right joystick or left joystick?

uncut viper
teal bridge
#

I'd go with left, since normal directional input is blocked during the minigame anyway.

uncut viper
#

my instinct would be to use the right joystick

fierce vine
#

do i need to do a poll

teal bridge
#

And fishing minigames in other games that use the analog stick invariably use the left as well. It's just what players are used to.

uncut viper
#

no but you can make it a config

teal bridge
#

Left stick is "move", right stick is "aim".

uncut viper
#

(or, if not a config, you really can just probably make both work)

teal bridge
#

You could stick the stick in a config too. Of course there is still the question of which to choose as default.

fierce vine
#

i will just make everything work including dpad good idea

uncut viper
#

you could also go the Halo route and just assign it to whichever joystick the player uses when prompted to

teal bridge
#

I'm not sure how you're designing this but I'd expect a difference in the way d-pad and stick behave.

#

D-pad can only move up or down with some fixed velocity; whereas with a stick, I'd expect the position of the stick to actually mirror the position of the bobber bar.

uncut viper
#

idk how the mod works with mouse so maybe my assumption would change after using it/reading the description but i woulda just assumed the position of the joystick would control the speed of the bobber bar movement

teal bridge
#

That is not really much of an improvement over vanilla behavior, though.

lucid iron
#

yea i mentioned d-pad arbitrarily, i dont play game with controller so my opinion is not relevant blobcatgooglyblep

uncut viper
#

with full throttle up being maximum speed upwards, pointed just a lil bit up being it moves upwards slowly, and vice versa for downwards

#

it would be an improvement for bobber bar bouncing

teal bridge
#

Why, though? The bobber bar is not a 360° axis, it's a fixed range. The stick range is a fixed range. The mental map is 1:1.

uncut viper
#

"why?" because thats how id like it if i was a user. dont really need a reason

#

not saying thats how ruggerbuns SHOULD do it. just chimin in with thoughts from a user perspective for them to take into consideration if they want or discard if they dont

fierce vine
#

guys its ok im not looking for the perfect system yet, i will just do a first easy test version and see how it feels and adjust as i go

brave fable
#

no test. only perfect

brittle pasture
#

yeah I second button, I would not like a "hold the joystick in this expect alignment to keep the bobber in one exact position"

lucid iron
#

if u do make dpad support then i can rebind it to page up and down right ukimasu2

uncut viper
#

you have a Page Down Right?

brittle pasture
#

those space cadet keyboards have lots of buttons

fierce vine
brittle pasture
#

with Generic Mod Config Menu it's pretty easy

#

you can look at its documentation for examples

lucid iron
#

yea, just slight limitation in that u can only bind 1 key at a time even though keybindlist supports multiple

fierce vine
#

ah yes, I have Generic Mod Config Menu setup already, i will look into it

uncut viper
#

you can bind multiple keys

#

just a tad fiddly

#

(and by that i just mean when you bind the second/third/whatever key it will temporarily show JUST that new key on the config menu but will in fact be saved as a keybindlist and look like one the next time you open your config)

#

(you do need to write custom GMCM save function code tho)

calm nebula
fierce vine
blissful saddle
#

My mod works

blissful saddle
#

now I have night-day transitions, Buttom!

blissful saddle
uncut viper
#

now just might wanna make sure it doesnt break with other mods that might need rigid daytime rules SDVpuffersquee

blissful saddle
#

it doesn't change the daytime rules so far

fierce vine
blissful saddle
#

I just postfixed the UpdateGameClock to consider values between 2600 and 3000 when making the ambient light transitions

blissful saddle
#

I hope it works

#

I am so happy that now I can launch a Night Owl Plus with all the things that had broken and with somethings more

#

like getting exhausted if don't sleep and having diminished energy recover if sleeping closer to 6AM

#

the base game already have it to 2AM, I just made it all the way

teal bridge
lament shell
#

question, if i wanted to make a machine where you have to hit it 3 times with a custom tool, would this have to be C#?

brittle pasture
#

yes

lament shell
#

oh boy! thank you

lucid iron
#

do ppl stack crit damage

#

i am make ability that heals u when u land a crit, relative to the damage amount, not sure what % to set

brave fable
#

i think daggers are built around crits

brittle pasture
#

iridium needle crit stacking is a build

uncut viper
#

yeah iw as gonna say crit dagger is my go to build so yes

lucid iron
#

i put 10% of the damage dealt atm

#

maybe i should go down to 5%

blissful saddle
#

it checks the amount of damage given by the weapon or received by the target?

uncut viper
#

what if you went a bit extra and made it scale downwards with the number of crits in a given timeframe

#

first hit gets 10% and every crit after that within a 1 second period goes down 1%

lucid iron
#

thats complicated logic to expose

uncut viper
#

thats why i suggested it to you and not myself

lucid iron
#

but yea i do have general proc timeout

#

if i make it proc only once every second though, that just favors the dragontooth hammer build

uncut viper
#

all the complicated trinket related ideas i had back when i was considering a trinket framework i can now just dump onto you since i dont need to do the annoying implementations. SDVpuffersquee

lucid iron
uncut viper
#

i dont think its necessarily bad for some things to favour some builds. i think thats why builds exist at all

lucid iron
#

number of crits in a given timeframe is like

uncut viper
#

if everything was the same there would be no builds

lucid iron
#

not very hard to impl at all in C#

#

but i think it's too niche to make then try to expose to content pack

teal bridge
#

Is this a random proc in addition to time-limited?

lucid iron
#

this is the type of thing i expect ppl such as button to register an Action for

#

its only random insomuch as "player must get a crit"

uncut viper
#

outsourcing...

teal bridge
#

10% is pretty much a full heal for every iridium needle special, then.

uncut viper
#

tbh, how many people with an iridium needle crit build are really dying anyway?

teal bridge
#

That's not necessarily so bad, I mean you can just bring a stack of cheese, healing is not a huge deal in Stardew.

uncut viper
#

why not make the crit heal exposed to the content pack author

#

like let them change the %

lucid iron
#

it is

uncut viper
#

oh

tiny zealot
#

yeah, i'm team "time freezes to eat and a single iridium-quality magma cap is a full HP/Energy refill, so who cares"

brittle pasture
#

there is Qi's no eating challenge, but that one gives you free healing so eh

teal bridge
#

The main thing it'd be useful for is the Skull Cavern No-Eating quest (I forget the name... Qi's Hungry Challenge maybe?)

lucid iron
#

things already supported by the framework

  • healing based on % damage dealt
  • proc only when crit
  • a cooldown on proc
    thing i am not sure if i want to support
  • dynamic proc magnitude based on number of proc in a time frame
brittle pasture
#

real challenge is crossing the crimson badlands with no eating allowed

lucid iron
#

anyways i dont think ppl are dying by the time they have trinkets

teal bridge
#

Thing is, HP and energy management are more of a mid-game thing. By the time you get trinkets, they're irrelevant.

uncut viper
#

if the content pack author alreeady controls the crit heal % why do you need to worry about 10% vs 5%

lucid iron
#

we have fairy in vanilla after all

#

im the content pack author

#

this is my spirit's eve mod

uncut viper
#

oh. i understand now

lucid iron
#

so im asking for balance advice blobcatgooglyblep

teal bridge
#

Ah, your content mod is an advertisement for your framework, hahahaha

tiny zealot
#

for what it's worth, you could do a very basic dynamic proc magnitude by just setting the power level to 50% of normal as soon as it procs, then lerping it back to 100% over the next <value> milliseconds

#

or change 50 to whatever, i'm not in charge

uncut viper
velvet narwhal
#

Free real estate

teal bridge
#

Yeah I don't have a problem with it. (Insert "I'm not even mad" meme)

uncut viper
#

maybe if i rush my museum framework i can make a halloween museum to advertise mine. whats scarier than an empty museum, after all?

brittle pasture
teal bridge
#

It's funny though.

lucid iron
#

tbh its just me being big slacc about the event

velvet narwhal
#

I did contemplate adding BETAS to mothman but I wanted a quick and dirty npc

uncut viper
#

in that case go with 13% for the healing

#

spooky number

blissful saddle
lucid iron
#

wow smurt

teal bridge
#

No one will see the 13 though. Make it a flat 13 points instead.

#

13% is too abstract.

uncut viper
#

oh yeah true. what frankenfocus said

velvet narwhal
#

it's a float right?

#

can it even show decimal numbers or is that too abstract

teal bridge
#

I think health is an int.

velvet narwhal
#

(i was gonna say make it show 8.00 for "boo")

lucid iron
#

yea it is lol

uncut viper
#

Stamina is a float though for some reason

blissful saddle
#

health is an int

brittle pasture
#

does the framework support crop/machine/forage harvesting SDVpufferthink

tiny zealot
lucid iron
#

originally i wanted to do some cursed spaget where the trinket can perform the function of some tool id you provide

#

it was too cursed though, so i am do it normally now

velvet narwhal
#

SDVpufferthinkblob i would just make a dracula-looking trinket that did a heal over time but idk if you had that implemented

lucid iron
#

i did sort of

brittle pasture
#

kinda like the tractor?

lucid iron
#

spacecore has a hot buff

bronze forge
#

I wish I knew what everyone was talking about.

lucid iron
#

yea kind of

#

although for some reason it cant hoe treasure spots LilyDerp

brittle pasture
lucid iron
#

i think bats should be heal on damage dealt, given the vampire ring

velvet narwhal
#

a -hp one that slowly damages you but boosts your dmg then SDVpufferthinkblob

lucid iron
#

thats on theme PecoWant

brittle pasture
#

I wonder at what point we're going beyond trinkets and into "generic combat buffs for equippables" territory

blissful saddle
#

now I thought about a functional weapon scythe

lucid iron
#

eh spacecore has that already too monS

blissful saddle
#

it has?

brittle pasture
#

because a lot of these ideas I'd want for a ring/shirt/weapon/food/etc

lucid iron
#

there is greater focus on implementing things in a way that are dependent on the companion doing stuff

velvet narwhal
#

ngl i don't think i've ever used the trinkets

lucid iron
#

so like the hoeing works by random tiles around the companion

#

not around the player

#

making these work for wearables is gonna need harmony MitsuYawn

brittle pasture
#

just subclass Ring

#

ah wait nvm you'd need harmony for that as well

lucid iron
#

but i will make separate mod that let you wear more trinkets

brittle pasture
#

to create your class instead if Ring

lucid iron
#

so that the harmony can be quarantined

#

i think wear more rings already has the feature but havent tried

brittle pasture
#

your fairy flies up to a ready machine, yanks the output and flies back to you

#

admittedly that will be only useful if you dont use Automate

lucid iron
#

this seems very impractical yea LilyDerp

teal bridge
#

That sounds slower than walking to the machine and getting it, unless the fairy is super fast.

brittle pasture
#

yeah lol, on second thought probably not

lucid iron
#

the one that i will probably do is forage

brittle pasture
#

I mean you can make it fast

lucid iron
#

so the companion can just yoink stuff for you as you walk around

brittle pasture
#

or even stuff like vacuum every ready machine in a shed

teal bridge
#

If you've got a shed full of machines though, you have to wait for the fairy to go to one, come back to you, go to the next, come back...

brittle pasture
#

and throw them at your feet like debris

lucid iron
teal bridge
#

Yeah, if it could just grab everything in one go through Forest Magic (tm) then that'd work. But then that's basically just Automate, haha

lucid iron
#

oh yea i am still trying to figure out how i want inventory to work

teal bridge
#

It is a fairy, and fairy dust is used to make machines finish faster...

brittle pasture
#

flying chest? or add directly to player inventory?

lucid iron
#

i was going to give the companion an Inventory

brittle pasture
#

former for immersion, latter for simplicity

lucid iron
#

so it can hold stuff for certain purposes

teal bridge
#

I think it'd be interesting for a fairy-type trinket to make machines run faster - but not finish instantly, only run at like 3-5x speed, and only when you're in range.

lucid iron
#

but that is same energy as parking a bot at the minecraft machine to make it run LilyDerp

teal bridge
#

That would actually serve as an incentive against automate, since the time you spend walking around to all the machines actually subtracts total time.

#

Well sure, if your idea of playing the game is just sitting around in one shed waiting for the machines to finish. But that's neither anything a casual player would do, nor a viable minmaxing strategy.

lucid iron
#

i would think ppl dont usually want to stand around in a shed all day

teal bridge
#

That's the point, you're not supposed to stand around all day. You put the trinket on when you go to collect/restart the machines.

lucid iron
#

hrm

#

so it'll be a footstep proc ability that subtract total time bolbthinking

teal bridge
#

We do this with rings - there's even a mod to make it easier (Swap Rings).

lucid iron
#

i think that is doable as long as i make the ability that decrease remaining time

teal bridge
#

It's not really Halloween themed, mind you, was just riffing on the whole "machine fairy" thing that had already come up.

lucid iron
#

later™️

brittle pasture
#

now do I want to un-fix my transpilers so I can submit my halloween mod for 1.6.8 and benefit from the Nexus visibility

lucid iron
#

cant u just do a #if

brittle pasture
#

good point. my brain was too mush to even consider it
it is still annoying with stuff like lights though

lucid iron
#

yea pein

brittle pasture
#

1.6.9 string light IDs my beloved

lucid iron
#

hm

#

what if u put it on sdv forums first, with big text saying SDV 1.6.9 beta only

#

and then release to nexus after 1.6.9

tiny zealot
#

anybody know the range of int direction values an IClickableMenu can receive in the receiveScrollWheelAction method?

#

my mouse does distinct clicks and each of them is -120/120. i figure smooth scrolling wheels or trackpads or whatever will give lower magnitude values at slow speeds?

brave fable
#

i've never checked the actual value, only that positive values are up

#

but then again, loc code..```cs
foreach (GenericPage page in this._pages)
{
if (page.IsVisible)
{
page.OnScrolled(x: cursor.X, y: cursor.Y, isUp: direction > 0);
}
}

this.InventoryManager.OnScrolled(x: cursor.X, y: cursor.Y, isUp: direction < 0);

#

SDVdemetriums i have no idea

tiny zealot
#

i was hoping to avoid having it be too sensitive. maybe that's not a concern?

brittle pasture
brave fable
#

errrrrr

brittle pasture
#

the direction var is presumably the game doing that comparison for you

tiny zealot
#

makes sense. so i guess it just depends on what your hw/os sends

#

i'll just assume everyone has a setup comparable to mine. that's always a sure bet /j

brittle pasture
#

respond to every performance issues with "just buy a $3000 PC"

brave fulcrum
#

smapi tell me that love of cooking, renamed cooking assistant cant find the love of cooking dll? ways to resolve this?

brittle pasture
#

better place for your questions

brave fable
#

selph im right here SDVpufferfush

brave fable
brave fulcrum
#

yes

#

3 folder love of cooking the cp folder adn work folder

teal bridge
#

At least from my experience, it only works in the Y direction. I have a wheel that can scroll in the X direction and receiveScrollWheelAction simply doesn't fire for that.

brittle pasture
#

apparently XNA also keeps track of horizontal scroll separately

tiny zealot
#

hmm, ok. mine is 100% consistent, but i have an old-style mouse where the wheel clicks and each click gives the same value, so who knows lol

brittle pasture
#

the game probably doesn't have that hooked up

brave fulcrum
teal bridge
#

What I meant by erratic is that the values don't seem to correspond to anything objective. They may be consistent on a single machine/device but I would not count on the values to be broadly applicable.

blissful saddle
brave fulcrum
#

manual

brave fable
#

you've downloaded the source folders, which aren't usable ingame without being compiled

#

(the work folder is a bunch of psds and test images and files, hence a dead giveaway 😌 )

teal bridge
brave fulcrum
#

ahh that the reason, ok i check it

blissful saddle
#

as an alternative, you can just set up Visual Studio and compile your own version of Love of Cooking yourself

brave fulcrum
teal bridge
#

(The sparkles emoji looks exactly like the AI buttons being used everywhere today...)

brave fulcrum
#

@brave fable now, i need to find why my cp portraits doenst work, they load but dont show

fierce vine
# lucid iron or if u got a repo ill just build it

Here is the repo for the Mouse Fishing mod: https://github.com/ruggerbuns/MouseFishing The controller support is basic for now. There are no settings or keybinding options yet. If you could test moving the Right joystick, Left joystick and D-Pad that would be great. There is only one speed for now, so moving the joystick a tiny bit vs moving it all the way makes no difference. Let me know how it feels and if I should try to get a more dynamic speed based on how far the joystick is moved.

GitHub

Mouse Fishing mod for Stardew Valley. Contribute to ruggerbuns/MouseFishing development by creating an account on GitHub.

lucid iron
#

im judging you for all these null warnings \s

calm nebula
#

boooooooo

brave fable
calm nebula
#

default value null being indistinguishable from "I told you null"

#

being annoying AGAIN

rancid temple
#

If it's a CP mod they're making then it would just be here lmao

brave fable
#

i suppose so SDVpufferthinkblob are you making a mod or using someone else's?

vernal crest
#

Fairly certain they're not making the mod just using it

rancid temple
#

I'm thrown by the "my cp portraits" part in this case

brave fulcrum
tiny zealot
fierce vine
rancid temple
#

The real magic is the code we stole along the way

teal bridge
lucid iron
#

works as expected though

#

i did find dpad to be easiest to use

#

esp on this test save with 1 fishing

teal bridge
#

Pssh, you curmudgeons can emote however you like, I think Atra knows the score.

fierce vine
#

awesome, that's great news. So do you think a more dynamic speed for the joystick would make it easier to use?

calm nebula
lucid iron
#

tbh it could just be my controller being mystery brand off amazon and therefore trash

calm nebula
teal bridge
calm nebula
#

Also, just...as a personal matter

#

default(bool?) is null

lucid iron
#

u should really ask opinion from ppl who actually use controller to play stardew

calm nebula
#

it should NOT BE SERIALIZED ANYWAYS

teal bridge
teal bridge
#

I mean, if we had undefined, that's what the difference would be.

fierce vine
calm nebula
#

unfortunately, xmlser is metaprogramming

brittle pasture
#

in a perfect world there'd be no world hunger, cancer is cured, and we're all using Optionals

teal bridge
#

XML is just hostile to any language that tries to interact with it.

calm nebula
#

why is it so long

teal bridge
calm nebula
#

why is a bool? or a int? so long in xml 😦

#

realistically what you need in this scenario is a random ass singleton you declared somewhere that means "programmer did not supply value" in your context

#

because I've only come across this in metaprogramming stuff

teal bridge
#

What you need is a Nullable<Nullable<Nullable<Nullable<Nullable<Nullable<bool>>>>>>.

#

Which may not be a valid type, but VS has suggested it to me regardless.

calm nebula
#

why

teal bridge
#

Yeah, xsi:nil

#

Wait, you didn't know that existed?

#

Or is this just further commentary on not knowing the difference between "not supplied" and "actually null"?

calm nebula
#

okay whyyyyyyy

#

I TOLD YOU TO NOT EXIST

#

why are you existing

#

I EXPLICITLY TOLD YOU TO GO AWAY

teal bridge
#

That actually looks exactly like how I'd expect.

calm nebula
#

why? the value matches the default value. according to docs, that should not have serialized

teal bridge
#

Did you set IsNullable = false?

calm nebula
teal bridge
#

Oh, never mind, I just read the very end of the doc, sigh.

#

Well, value types are Like That.

calm nebula
#

yeah, what I want is

true and false to be included in the xml

#

but null to be removed/ignored

teal bridge
#

The doc at the end of the page is pretty explicit, though. Probably the two requirements are in conflict.

#

Spec says that nullable value types must be serialized with xsi:nil when null.

calm nebula
#

really?

teal bridge
#

That's what it says at the bottom of the page.

calm nebula
#

yeah, and that's what the code is telling me, it's just weird that I can't see to get [DefaultValue] to work

teal bridge
#

The default value is an object, it's understood as "null reference" and a nullable value type cannot be a null reference.

#

Default null just doesn't work with value types, nullable or not.

calm nebula
#

that's not how C# defines "default" in this case

teal bridge
#

Possibly, default null doesn't work period, and it just doesn't matter for reference types since they're already default null.

calm nebula
#

yeah, for reference types they're taken out

teal bridge
#

The default keyword and DefaultValueAttribute are two very, very different things...

calm nebula
#

it's a bit hard to have a custom reference type instance in DefaultValueAttribute though 😦

teal bridge
#

Not custom, though I think it works with strings and maybe some convertible types. But sure, it's meant to work with values. It's just that null isn't a value.

calm nebula
#

the attribute is academic, I'm just using it for testing at the moment to see what xmlser will do as I try to follow the code 😛

teal bridge
#

You can get mad, or you can get even. Stick it in a reference type wrapper or, if you can't because of some protocol thing, just override the serialization on the containing type.

teal bridge
#

(Nothing clears the room like XML, amirite?)

lucid iron
bronze forge
#

What kind of bird is that?

brave fable
#

someone else working with little flying bats SDVdemetriums

#

'tis the season

lucid iron
#

(its cus i cant draw and the bat sprites were right there)

brave fable
#

i was so sure there was an event command to show npcs in the location as they exist outside fo the event

#

maybe i'm just going nuts after looking at this so long

umbral void
#

@brave fable How do i compile your open source 1.6 mods like green house entry and love of cooking

brave fable
umbral void
#

Thanks

#

do you know why

#

it says

#

that it requires

#

oh wait

brave fable
#

yep! you didn't copy both folders from the zip file. it needs Love of Cooking as well as Love of Cooking [CP]

umbral void
#

nvm

#

yeah i just saw that

#

mb

winter forge
#

I tried to make a mod for this game but i cant understand the methode namespace or script names concernape uses to get the specific things what i am looking for

#

If i want to change something in the villagers i do not know where to look xD

velvet narwhal
#

depends on what you want to do, if you just want to change names around or make them romanceable, you can use content patcher
if you want more in depth things like new behaviors then you'd have to read c# docs

winter forge
#

Like forinstance there is a mod i would like to get but it does not exist in 1.6

#

It is called action sitting

#

I would love to update that to 1.6

winter forge
#

It is not my mod

amber radish
#

just curious, is it possible to make a mod that adds some tv's into the game that can actually be turned on/off that have little animations to make the tv look like its on all the time playing a movie or tv show. is there anything that would make this impossible ? surprised it hasnt been done if not.

winter forge
#

But the mod maker does not seem to be active

velvet narwhal
#

if it's open source you can just download it off of wherever it's hosted (usually github)

winter forge
#

Jupe

#

Still though kinda difficult to change stuff if i cant understand the naming convencion

velvet narwhal
#

i assume you went through the process of the get started

#

!startmodding

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.

winter forge
#

and dont know what the methodes do for what part of the game

velvet narwhal
#

!decompile

ocean sailBOT
winter forge
#

I have 8 years of active c# expiriance

#

Making a game atm in unity

#

The decompile is handy

#

Will look into that

#

The decompile is cool but not what i am looking for

#

Still thx

blissful panther
#

Just keep in mind you won't be able to release this updated mod.

Decompiling and updating it for personal use is fine, though!

winter forge
#

Thx for the headsup

iron ridge
#

How feasible is harmony patching bits of closed source mods at runtime to fix them for 1.6?

rancid temple
#

Seems to me your mod wouldn't be able to patch it before SMAPI recognizes it's broken

uncut viper
#

can you patch SMAPI to patch the mod after it loads it but before it rejects it

rancid temple
#

Lol, I'm sure you could patch SMAPI to make it do what you want, but I also feel like that's risking really blowing some shit up

uncut viper
#

oh definitely

uncut viper
#

that's the fun part

winter forge
#

Also true

faint ingot
#

Hrmmm. I had some special dialogue for my NPC on spring 16, but they don't say it after marriage. I added a line to their marriage dialogue file but they still don't seem to use it. "spring_16":"{{i8n:Shannon_spring_16}}",

latent mauve
#

Try changing your key to marriage_spring_16?

#

The wiki says that married NPCs don't use the other keys without marriage_ in front

faint ingot
latent mauve
#

Oops, I am tired, I was looking at the schedule data

faint ingot
#

no problem thanks for trying to help

#

In this case I can't use a location schedule to say the line because the dialogue gifts a strong item, and location dialogue repeats itself with every interaction, as opposed to daily dialogue which happens just once.

latent mauve
#

Which dialogue is being used?

#

I know the algorithm section talks about the order it looks for the dialogue strings in, so I am curious as to if a StringsFromCSFiles location line is taking priority

faint ingot
#

so, if I talk to the spouse in the kitchen that morning, they say their line for two kids in the kitchen

latent mauve
#

Ah

faint ingot
#

if I don't talk to them at all in the farmhouse, they say nothing at the desert location, just do the kiss animation

#

(also just do kiss animation if I speak to them in the kitchen in the morning since they already spoke earlier)

#

I guess the two kids line might take priority but that seems kind of weird that anything takes priority over the specific season_day key

#

might be because the second kid just came two days ago idk

latent mauve
#

Very possible

heady crest
#

what am doing wrong

rancid temple
#

Objects aren't formatted like that

heady crest
#

but thats supposed to be a recipe

#

for cooking

rancid temple
#

You're adding it to Data/Objects though

heady crest
#

:(((((((((((oh

#

right

#

im just numb to this feeling of crying over stupid mistakes now

rancid temple
#

Learning is a time consuming process, unfortunately

vernal crest
#

It also requires a lot of grace for oneself because it's normal and okay to make mistakes even though it feels like it isn't.

rancid temple
#

If you're feeling overwhelmed, you can always take a break and recharge before tackling it again

winter forge
#

Take a walk

#

Also talk out loud to a rock

#

Also helps

heady crest
#

the rest is fun to do

rancid temple
#

Yeah, I avoid NPC stuff if I can help it lmao

heady crest
#

but when i noticed the average event is like 3k characters long and no clear way to make it easy to do

#

that just makes me go :(

rancid temple
#

Like, I have a basic knowledge of how things should be formatted, but no desire to become very familiar with it

heady crest
#

this is rlly being fun to make otherwise, ive never done pixel art before and i started now with this

#

and i done some nice lil item icons

#

i think

winter forge
#

2d is easier than 3d

#

Imo

ornate trellis
#

Ayo, finally someone else who cries about event, my brethren...

rancid temple
#

I'm more comfortable making garbage in 3D than pixel art lmao

ornate trellis
#

Mind boggling to me how people do all these cool effects n stuff

rancid temple
#

It's trash either way, but at least I can make it kind of look like what it's supposed to be in 3D

winter forge
#

XD 3d is hell i am lucky to have a artist doing all my art for my game

heady crest
#

i just dont think i can do this

ornate trellis
#

Events are, like, the last things i tend to do

vernal crest
heady crest
rancid temple
#

You could probably use SpaceCore for the animations but I dunno how you would control when they happen lol

vernal crest
#

You just have to take events very slowly and test them frequently

amber radish
vernal crest
#

Yeah I was also thinking of SpaceCore but I knew I could offer Tea's washing machine as an example for FF

winter forge
#

To be fair anything is posible in coding the question is how long will it take before it is made

ornate trellis
vernal crest
#

THe washing machine itself? I don't think she has released it but I'm sure you could ask her about it. Or you could ask Leroy (the creator of Furniture Framework - he's often around and doesn't seem to mind pings).

ornate trellis
#

Maybe i gonna peek at Arks stuff...

vernal crest
#

Yeah Void you should definitely look at the fancy event makers' stuff if you want fancy events yourself

ornate trellis
#

Arks, like, the event god

vernal crest
#

Yeah I've never failed an event before playing his lol

junior fiber
#

hey i dont know if this is the right channel to do/ask this, but i want to re-draw items from Stardew in my style to, maybe, turn it into a mod and i can find anything but the items, like the fruits, the fishes etc. I was thinking it could be the tool im using to unpack the files and turn the .xnb files into .png files, which is StardewXnbHack, but even on the original "Content" file, i can't find anything that might be the items💀 i really want to just change the items's appearance, not how they work or something. So if someone can help me with that, I'd be so so so grateful

#

sorry for the big ahh text and if this is the wrong channel to ask this

rancid temple
#

Maps/springobjects is where they are

vernal crest
#

(And this channel is just fine to ask your question in!)

junior fiber
rancid temple
#

StardewXnbHack is the correct tool, not sure if the other one even works correctly now

junior fiber
rancid temple
#

[[Modding:Index]] is where you'll find most of the modding related info

rancid temple
#

Most other sites aren't going to be very helpful

unreal spoke
#

There’s a wiki article that details which item is which, too. Not sure if it’s on the regular or the modding wiki, though.

#

!springobjects

ocean sailBOT
#

Most vanilla object sprites are in the Maps/springobjects asset. See a table of springobject sprites by index.

Some newer object sprites are in TileSheets\Objects_2. You can check the entry in Data/Objects to see where its sprite is stored; SpriteIndex is the position, and Texture is the asset name (defaulting to Maps/springobjects).

unreal spoke
#

Yup, that’s not the one I meant.

vernal crest
#

Haha I did not know that one existed. The one you were thinking of (I guess) is on the modding wiki.

unreal spoke
junior fiber
rancid temple
#

Could add that link to the spring objects command Oh you said that lmao

lucid comet
#

there's quite a few mods on nexus you could use as reference for how to format the files and where to put stuff

inner harbor
#

With the Winter Star Gift Giving dialogue: can you edit that?

#

is this what the say before gifting it to you?

#

"WinterStar_GiveGift_Before":

vernal crest
#

Yeah

#

There's also roommate and spouse options

#

And the same for what they say after giving it to you

junior fiber
#

just like tracing art or smth

vernal crest
lucid comet
#

^

rancid temple
#

Yeah, if you try to have too much variation then you end up with a broken mod lol

lucid comet
#

the json is basically just telling content patcher where to find things (and what to do with the things you provide)

vernal crest
#

Or weird violations of conventions that are in place for a reason

junior fiber
vernal crest
#

Pretty much, yeah.

lucid comet
#

you do have to change some things in the files - telling cp it's your mod etc

#

that's mostly in the manifest though

vernal crest
#

It's a good idea to try to figure out what is actually happening as you do that so you can take full ownership over the end product (and fix bugs, make improvements etc) though.

junior fiber
lucid comet
#

stardew is very, very easy to get started without much coding knowledge imo

#

(until you want to change that one specific thing that you cant just patch ....)

vernal crest
#

Every time I do something new-to-me in a CP mod I start by copying what someone else has and then playing around with it until it does what I want. And after that, I copy my own work every time I want to do it again lol

#

The only time I ever write CP json from scratch is when I'm helping someone else and I'm on mobile haha

junior fiber
vernal crest
rancid temple
#

There's a few online resources you can use to learn various coding languages for free, but json is easy because it's not actually code so you really only have to learn how CP wants you to format stuff and that's free

junior fiber
vernal crest
#

Most modding for Stardew Valley isn't actually coding. JSON is a text format for storing data, not a programming language, so you only really need to learn its formatting for Content Patcher (using the Content Patcher docs and other mods) and learn how the game stores information (using the wiki and other mods). You can do it completely for free without having to learn any programming.

thorny tiger
#

personally I'd still call it coding

#

it's not a programming language for sure but you're still using formatted text in order to tell the game what to do

#

just not using a programming language

vernal crest
#

I still refer to it as coding and code a lot of the time, but I find that it's helpful to make a distinction when people are feeling intimidated by it.

rancid temple
#

I call it coding because it's easier than arguing about it SDVkrobusgiggle

#

Because nobody cares that vegetables aren't a scientifically accurate category, they're still gonna call a pepper a vegetable

vernal crest
#

Lol except Demetrius

blissful panther
#

I think the best summary is there are opinions on both sides, and sometimes one particular side can get a little bit...

rancid temple
#

The urge to banish this ridiculous tile action set up for my crane game mod and make it pull from a custom data asset instead

devout otter
#

What's the simplest way to make a tile giving out light outdoors? I tried using the light path tile and giving it the forceLoadPathLayerLights properties but that doesn't seem to work.

blissful saddle
#

What is a good boolean config variable name to ask if the mod should take care of late night ambient light or not? I am having problem to define a name not too long to this...

blissful saddle
#

it is a CP or C# thing?

devout otter
#

CP.

blissful saddle
#

ok, so I cannot help. let's wait for an expert

brave fable
#

format is x y 4 repeating for as many lights as you want, where 4 can be various numbers, but usually 4 for a bright light and 1 for a dim light

blissful saddle
devout otter
blissful saddle
#

this may help to define the light strength

devout otter
#

Alright, I'll try it. Thanks!

brave fable
#

playable SDVdemetriums

devout otter
#

Yey it works. And looks very nice too. SDVemoteheart

blissful saddle
#

nice! I loved it!

#

Nirnroot in Stardew Valley

#

ok, so my fellow code cookers more fluent in C#, specially @calm nebula :

        private void OnAssetRequested(object? sender, AssetRequestedEventArgs e)
        {
            if (e.NameWithoutLocale.IsEquivalentTo("Data/Fish"))
            {
                e.Edit(asset =>
                {
                NightFishing nightFish = new();

                var data = asset.AsDictionary<string, string>();
                foreach (KeyValuePair<string, string> pair in data)
                    if (" 2600" in value)
                        data[key] = value.Replace("2600", "3000");
                },
                AssetEditPriority.Late);
            }
        }

It raises an error in foreach because data is of type IAssetDataForDictionary, which doesn't have GetEnumerator() method.

#

just pinging you because it was your idea and I failed to implement it seems like

#

I have no idea how to fix it and iterate over data

brave fable
#

oh, you want var data = asset.AsDictionary<string, string>().Data

blissful saddle
#

ok, that was the original solution. somehow I failed to copy-paste correctly...

#

why I am so dumb sometimes?

#

sorry Atra. Thanks a lot, berry

brave fable
#

everyone makes mistkaes SDVpufferthumbsup

blissful saddle
#

other errors are raising, as they calling pair.Value a bool and not a string, but this I think I can take care

woeful lintel
unique sigil
#

sooo i read that in the wiki, the random bubble spots are only available on riverlands farm; how do i give this feature to an AdditionalFarms farm map?

amber radish
next quarry
#

is there a debug command to check if a event is set as seen or not?

woeful lintel
vernal crest
#

Can't you just not make them TVs, Leroy?

woeful lintel
#

I'm curious, how do you imagine this new TV type to work?

woeful lintel
vernal crest
#

Yeah but what I gathered from their message was that they wouldn't expect them to be watchable

calm nebula
#

The thing I do is patch parse "{{HasSeenEvent|contains=myeventid}}"

woeful lintel
#

@amber radish

next quarry
amber radish
amber radish
rancid temple
#

!modideas so this is more of a loose request/idea

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

woeful lintel
# amber radish yeah i know nothing of modding but it would really add some life to the houses i...

if you want to give it a go, here's the FF documentation https://github.com/Leroymilo/FurnitureFramework/tree/main/doc
All the tools you need is a pixel art editor and a text editor, and if you ever need help with FF, you can always ping me

GitHub

A Mod Framework for Stardew Valley to give more options when making custom Furniture. - Leroymilo/FurnitureFramework

rancid temple
#

Remind me in 9 hours to see if I completely broke this mod or not

patent lanceBOT
#

now that is a quality reminder pacha consider it done (#6315026) (9h | <t:1729549135>)

woeful lintel
#

(the answer is always yes)

lucid iron
#

tv that is always on bolbthinking

#

maybe if the logic was like
use -> watch a channel -> channel stays on until use again -> tv off

tiny zealot
rancid temple
#

Double down with the contest, add spooky images

lucid iron
#

ah yes gotta get some tv ambiance sounds to make it really immersive

calm nebula
#

Hey @ivory plume

What I just pushed to gh is the aquarium 1.6.1. I...apologize.

#

I'm probably going to pause on this for a while, there still stuff I'd like to do (like making TS optional, removing the JA dependency entirely, dealing with possible internal name collisions, and somehow figuring out the MNF migration) but it works!

void aspen
#

Is it possible to render cyrillic in chat while client is using english language? Cuz they just appear like this :(

calm nebula
#

( @chrome mountain and at some point of time I should go over the new extensibility stuff; hopefully in the future fish expansions can add their own aquarium rooms so you don't have to do all of it 😛 )

void aspen
#

Yet it works the other way around when you try to print english letters on russian interface language

blissful saddle
#

@calm nebula Thanks a lot for that solution! it pushed me in the right direction to make the mod compatible with most mods that add fishes to the game

#

I just wanted to properly thank you

lucid iron
void aspen
#

is it possible to counter that somehow?

#

just adding a file of cyrillic font

#

or smth like that

blissful saddle
#

I think would need to edit the english font file to add the characters

lucid iron
#

maybe if u load the ru-RU fonts over the no suffix ones

void aspen
#

hmm

lucid iron
void aspen
#

thanks!

blissful saddle
#

pt-BR has a separate font file that doesn't incorporates our ç

#

this is outrageous

lucid iron
#

!officialbug

ocean sailBOT
blissful saddle
#

if a method has a return type, the only way to patch it with Harmony is with a prefix? or a postfix would do too?

blissful saddle
tiny zealot
blissful saddle
#

the question is if a postfix would replace the returned value successfully or if the original method would return before the postfix is applied

tiny zealot
#

postfixes can absolutely change the return value. it's one of their best uses

blissful saddle
#

maybe I am just thinking in it too much. If Harmony patches works by holding the return before the postfixes runs and making sure the last has precedence, it will work

#

thanks

tiny zealot
#
your void postfix(..., ref T __result)
{
    if (your conditions) {
        __result = the new value;
    }
}```
where T is the return type of the original method
#

broadly, if a postfix can accomplish your goal, you should prefer to use one over the other types of patch

blissful saddle
#

hmmm

#
    class isTimeToTurnOffLighting
    {
        public static bool Postfix(GameLocation location)
        {
            return ((Game1.timeOfDay >= Game1.getTrulyDarkTime(location) - 100) || (Game1.timeOfDay <= 300));
        }
    }

Doesn't work like this so

tiny zealot
#

that is not how to change the return value. see my example above

blissful saddle
#

yeap, I was just confirming this

tiny zealot
#

you need another parameter to your postfix called ref bool __result (exactly so)

blissful saddle
#

I bet that example is given in the harmony documentation

tiny zealot
#

don't count on it. i find the documentation quite terrible

blissful saddle
#
    class isTimeToTurnOffLighting
    {
        public static void Postfix(GameLocation location, ref bool __result)
        {
            __result = ((Game1.timeOfDay >= Game1.getTrulyDarkTime(location) - 100) || (Game1.timeOfDay <= 300));
        }
    }
#

I too. that's why I got focused on the examples on the wiki

tiny zealot
#

that looks better

blissful saddle
#

just to reference, patching this one:

    public static bool isTimeToTurnOffLighting(GameLocation location)
    {
        return timeOfDay >= getTrulyDarkTime(location) - 100;
    }
#

so trying to keep the same structure to easier reading

#

hopefully it will make the windows lights update when indoors on my late hours

#

not successful

#

back to the code reading

hard fern
#

😔 how would i go about making a custom npc mod in this day and age? it's been so long....

tiny zealot
#

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

hard fern
#

tyy

blissful saddle
#

I found a property that is just set once out of context that I am looking for it

#

ExtraMillisecondsPerInGameMinute is set only once as base.ExtraMillisecondsPerInGameMinute in MineShaft.cs under the condition if (!Game1.IsMultiplayer && getMineArea() == 121). But it is used to update lighting in all indoor ambients

#

I have no idea what to do with this

#

I thought changing window light from day to night would be easier after I had made a complete day-night-day cycle... but no...

vernal crest
#

I have no idea what I am doing with git and just deleted half of my mods, woo. Now I have to get them back and add them back to the repo I just deleted them from.

blissful saddle
#

this is also me working with git

#

good luck

#

I have no other idea to change indoor lights...

#

nothing that I do works

#

I know that indoor tiles changes on 1800 and windows get dark at 2000, but have no idea what changes it and how to make them go reverse

woeful lintel
#

so 2:00 a.m. when the farmer faints is actually 2600

blissful saddle
#

for context, I am making another Night Owl mod, which the core mechanic is to override the forced fainting at 2am and let the game run to 6am.

#

almost everything is working fine. I fixed most of the original mod problems and added features of Stay Up Plus. Both are crashing at 6am and other things, because new warp conditions...

#

I just need to patch the method that checks for the time and decides that 200 is a good time to full blow sun through windows

#

I tried to patch two methods already to no avail. I can't find the right method that turns up windows lights

#

the base logic is if timeOfDay >= getStartingToGetDarkTime() { \\\ do nighty things }

tiny zealot
woeful lintel
#

your patch idea is good, but your comparison isn't: your should have (Game1.timeOfDay <= 2700) instead of (Game1.timeOfDay <= 300) because the time between 2 a.m. and 6 a.m. is actually 2600 to 3000 instead of 200 to 600

tiny zealot
#

if memory serves, leroy, he's also changing how time works so it loops back to 200

blissful saddle
#

yeap, but currently the game forces passout if gametime goes above 2600. So the current fix is to jump from 2550 to 150 and count from there

woeful lintel
#

well, check if this works too then, because the isTimeToTurnOffLighting patch should work

blissful saddle
#

the game is full of redundant codes currently

woeful lintel
#

yeah Ik that

blissful saddle
#

I found two instances that activates Game1.currentLocation.SwitchOutNightTiles() at 1900

woeful lintel
#

I had to patch collisions in 4 or 5 places to have FF work properly

blissful saddle
#

I also found a method on GameLocation that seems to be used for it, _updateAmbientLighting(), but it is protected under protected virtual void, so no patching

tiny zealot
#

reflection is your friend for accessing and patching non-public methods

blissful saddle
#

also tried to force the change onUpdateTicking and Ticked, but also to no avail

#

I feel like CA doesn't like people changing certain things

blissful saddle
#

I didn't used reflection yet

woeful lintel
#

the truth is that any game that ships is full of weird code because of how making a game goes

#

except Animal Well, Animal Well gets a pass

tiny zealot
blissful saddle
#

I know. I am kinda used in working with older games

#

one of the reasons I resisted bravely to not look at the decompiled code of SDV lol

blissful saddle
lucid iron
#

why wouldnt u look at the decompile LilyDerp

blissful saddle
#

I already did. too late

#

but I was resisting last week. because I knew it would trigger my coding ptsd's

lucid iron
#

i dont think strange code is a game dev exclusive thing anyways

blissful saddle
#

a full game is more an art instance than an engineering instance

lucid iron
#

plenty of ??? makes it into software

blissful saddle
#

to the joy of it's players and to panic of it's coders/modders

blissful saddle
blissful saddle
tiny zealot
#

yeah, reflection gets you a MethodInfo which you give to the patch function

lucid iron
#

you can use AccessTools from harmony

tiny zealot
#

i am a boorish sort who uses standard C# reflection because that's what i learned first and what i remember how to do

lucid iron
#

it has some qol for when u need constructor but it is the same on the inside

tiny zealot
#

harmony also has a thing called Traverse which makes reflection less of a syntax soup, but i haven't used that either

blissful saddle
#

ok, I am dumb and I don't know how to use it...

#

I think I found how to

#
MethodInfo updateAmbientLighting = helper.Reflection.GetMethod(typeof("GameLocation"), "_updateAmbientLighting").MethodInfo;
#
                MethodInfo updateAmbientLighting = helper.Reflection.GetMethod(typeof(GameLocation), "_updateAmbientLighting").MethodInfo;
                harmony.Patch(
                    original: AccessTools.Method(typeof(GameLocation), nameof(updateAmbientLighting)),
                    postfix: new HarmonyMethod(typeof(_updateAmbientLighting), nameof(_updateAmbientLighting.Postfix))
                );
#

no errors. let's now see if it fries my game

teal bridge
#

Traverse is convenient but it's mainly useful because it caches.

blissful saddle
#

nope, MethodInfo can't reach _updateAmbientLighting too

tiny zealot
#

for original:, you already have the methodinfo. just say original: updateAmbientLighting,

blissful saddle
#

it breaks on defining MethodInfo updateAmbientLighting. it can't find the method

lucid iron
#

there's no updateAmbientLighting only _updateAmbientLighting which is protected

blissful saddle
#

yeap, protected virtual

lucid iron
#

which u accessed with reflection so it's fine

blissful saddle
#

hmmm

lucid iron
#

with accesstools u can just put string instead of using nameof

blissful saddle
#

System.InvalidOperationException: 'The StardewValley.GameLocation object doesn't have a '_updateAmbientLighting' static method.'

#

The patch of my last attempt

MethodInfo updateAmbientLighting = helper.Reflection.GetMethod(typeof(GameLocation), "_updateAmbientLighting").MethodInfo;
                harmony.Patch(
                    original: updateAmbientLighting,
                    postfix: new HarmonyMethod(typeof(updateAmbientLighting), nameof(Patches.updateAmbientLighting.Postfix))
                );
fathom hound
#

anyone know where i can find this? -> aSDVemotequestion

tiny zealot
#

TileSheets/emotes

fathom hound
#

thank you!

blissful saddle
#

I was going to make a joke

#

I am going to make a lunch instead

tiny zealot
#

@blissful saddle if you're using helper.Reflection, it seems you have to pass an instance as the first parameter. if you pass a type, it tries to find a static method

blissful saddle
#

if you have a suggestion how to use better, I am open

#

I copied the format from another code

tiny zealot
#

you could try standard reflection:

MethodInfo ual = typeof(GameLocation).GetMethod("_updateAmbientLighting",
        BindingFlags.NonPublic | BindingFlags.Instance);
blissful saddle
#

trying it. thanks

#

ok, it didn't broke this time

#

thank a lot, eye. the patch didn't did what I expected though. but now it patched

#

it is not _updateAmbientLighting too, but if I find another method now I know how to patch it

tiny zealot
#

the other thing that may give you trouble is that _updateAmbientLighting is virtual, so specific locations may have overridden it and your patch on the base class one won't run

blissful saddle
#

I suspected something like this

#

once I get my motivation back, I will look for specific locations, as farmhouse

#

if windows were coded to reproduce the outside ambient light would be awesome

uncut viper
#

you can see which classes implement a virtual method with ilspy

blissful saddle
#

I need to read IL?

tiny zealot
#

only if you want to write transpilers. ILSpy is the name of a decompiler

calm nebula
#

(Fwiw I tried to argue with ambient lighting for screenshots and still haven't figured it out lol.)

#

Not that I have tried in the last year

velvet narwhal
#

triggered by that top right corner

#

is that, a part of the farmhouse now? SDVpufferthink

hallow prism
#

it looks like a spouse room?

velvet narwhal
#

yeah i made that corner piece, but i didn't place the right corner

#

the 90 degree angle*

#

oh that's gonna bother me there's nothing that reaches up to the ceiling at that angle

#

it draws that corner i'm gonna SMCPensiveMove

lucid iron
#

im psure the beams are hardcoded

#

just give up and put a pillar in that corner blobcatgooglyblep

velvet narwhal
#

i did give up, the beams just weren't there in 1.6.8 so now i also had to set a reminder to fix it in my other mod

#

actually now that it does draw that, i wonder if i can just make it wide, like will it splice the beams the wider i go SDVpufferthink a test for later

chrome mountain
ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 37 C# mods and 36 content packs.

lucid iron
#

Aquarium.Curator is the missing npc?

chrome mountain
#

and Goldie

#

so all of them SDVpufferchicksweatsip

lucid iron
#

fear

velvet narwhal
#

gifttastes?

#

do you have that loaded anywhere?

chrome mountain
#

I shouldn't have to? They are anti-social NPCs

velvet narwhal
#

did 1.6 do away with the data/antisocial SDVpufferthink

finite ginkgo
#

(that was a mod)

velvet narwhal
#

i'm not seeing it in my 1.6.9 unpack- oh

lucid iron
#

maybe u need "CanSocialize": "FALSE",

tender bloom
#

are there spawn conditions on the NPCs?

#

Like how Kent appears in Y2

chrome mountain
#

nope, no spawn conditions

finite ginkgo
#

But you can set npcs to not receive gifts or be social; unfortunately a lot of npc logic still requires them to have gift tastes, not sure if CanSocialize being false negates those

chrome mountain
#

I do have a "CanSocialize": false, for them

velvet narwhal
#

i think by game logic even if it's an antisocial if it doesn't have a gift taste, the npc won't spawn
i don't think the unlockconditions not being there matters, i assume it just sets it to null if it's absent

finite ginkgo
#

(maybe we can get the npc un-gift tastes knitted in tightly for all kinds of random npc logic update in 1.7)

uncut viper
#

Gunther doesnt have gift tastes though and he still spawns

finite ginkgo
#

Yeah i'm not quite convinced gift tastes is the issue, i know i had npcs spawn in during the 1.6 alpha without gift tastes

chrome mountain
#

It looks like it applies everything except the NPC dispositions when I read the patch summary

#

but on an old save they all work just fine

uncut viper
#

doesnt the X mean it did apply them?

chrome mountain
#

first x is for loaded, 2nd is for conditions are met, 3rd is for applied

finite ginkgo
#

I'd maybe double check the Location in the home field, an invalid home feels like the most obvious reason it could happen

calm nebula
#

Home locations, Gervig

tiny zealot
#

you have their Home locations as "FishMuseum" and "CuratorBedroom", but maybe the locations are called "Gervig91.StardewAquariumCP_FishMuseum" and "Gervig91.StardewAquariumCP_CuratorBedroom"

finite ginkgo
#

and here comes atra, immediately confirming my suspicions

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 37 C# mods and 36 content packs.

finite ginkgo
#

the errors are all related to not finding the portraits

velvet narwhal
#

yeah your portraits are named just Curator so you'd need the .png to be named Aquarium.Curator

tiny zealot
#

^ the Target has to match the NPC's internal name (unless you override it). you can call your .png files anything you want

finite ginkgo
#

(alternatively, add "TextureName": "Curator" etc, though i'd prefer just to correctly name the targets instead)

uncut viper
#

that said if you wanna keep using {{Target}} like you are now the pngs do need to change names

finite ginkgo
#

Alternatively change the fromfile to assets/{{TargetPathOnly}}/Curator.png

chrome mountain
#

ooooh

#

thank you guys, now it works!

velvet narwhal
#

my brain is too flat for this one

#

but the only thing that i've found of the gift tastes and the receive gift thing

#
{
    return null;
}
Dialogue dialogue = null;
string portrait = null;```
#

(*but now i must go back to fixing sprites on my non-halloween mod because i've put it off for like, 3 months now SDVpufferflat *)

finite ginkgo
# velvet narwhal but the only thing that i've found of the gift tastes and the receive gift thing

so, the biggest problem pertains not to antisocial npcs, but to social npcs
It's this method in npc.cs

public bool CanReceiveGifts()
{
    if (this.CanSocialize && !base.SimpleNonVillagerNPC && Game1.NPCGiftTastes.ContainsKey(base.Name))
    {
        return this.GetData()?.CanReceiveGifts ?? true;
    }
    return false;
}```

Every single code path that leads to the player creating friendship with an npc uses an `NPC.CanReceiveGifts()` condition before it, so if the npc doesn't have a gift tastes entry, a `Friendship` is never created and you can never 'meet' the npc
calm nebula
#

Can't meet someone without gifts huh

#

Speaking of gifts, where are my hamster pics

latent mauve
#

Good to have the confirmation on the exact reason for GiftTastes requirements for social NPCs, though

fathom hound
lucid iron
#

what lang are they using

fathom hound
#

I'll find out, not sure when I'll get a response though

#

Why would it matter so ik for future?

lucid iron
#

the message mentions translations so i was wondering if it's an issue exclusive to non english

brittle pasture
#

Not sure why that would matter though, a translation wouldn't change the key of the Data/Mail entries

hallow prism
#

if you use the classic "friendship cooking letter" it should not repeat

#

if you use a trigger it should not repeat by default, unless you made it repeat for some reason

#

if you did ensure it is not marked to be repeated, or use the vanilla cooking letter method, then it's possible a mod is interfering with the sending

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.

calm nebula
#

Blueberry I have an objection

#

Why no gourd version of gov

#

Why no pfp

iron ridge
#

There were discussions of different pfps in the land of the bot people

limpid breach
calm nebula
#

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

rancid temple
#

There's a Strings folder in the unpack

#

With so, so many strings for the translating

limpid breach
#

Thank you, much appreciated.

lofty ruin
#

What's the maximum portrait size?

latent mauve
#

64x64 per expression, unless you are using Portraiture

#

And you need the portrait file to never have more than 2 side by side (max-width of 128px for vanilla-supported), but you can go as far down as you want to add more expressions.

tardy adder
#

Has anyone done LightData with IE as object extensibility?

brave fable
#

IE?

brittle pasture
#

Item Extension

tardy adder
#

Yesh

wise berry
#

Is there a way to make NPCs dance on the "female" side of the Flower Dance regardless of gender?

hallow prism
#

no, i suggested this quite a time ago, but it was out of scope, and only the ability to set if they can dance or not was added (not a complain, it was already quite nice to have)

brave fable
#

conditionally patch gender to female for the day of the festival? SDVpufferthinkblob i don't know if it'd affect anything else

hallow prism
#

it may affects display name of the datable relationship

latent mauve
#

Question: is there a way to add a glow/lighting effect to the outside of a farm building (shed in this case) at night through CP?

fathom hound
latent mauve
#

aw

fathom hound
#

You’d need spacecore iirc from what someone told me

next plaza
#

I don't think SpaceCore has functionality to attach lights to buildings

brave fable
#

(it's very simple in c# if you're keen)

fathom hound
#

Oh okay

latent mauve
#

If it's simple enough for someone with zero C# knowledge to do, I wouldn't be opposed?

#

I basically just have a TARDIS shed, so the light on the top is what I want to have a light effect on it. >_>

brave fable
#

ah well zero knowledge is always an important variable hahah

lucid iron
#

can u do it like

#

spacecore tile prop lights

#

on building tile props

latent mauve
#

Yeah, that's my usual issue, blueberry. I know NOTHING of C#, y'all C# coders are wizards as far as my knowledge goes.

lucid iron
#

i feel like that should work

#

but if it doesnt maybe time for smol mod

brittle pasture
#

Solid Foundations support building lights IIRC

latent mauve
#

If there's a Tile Property that does light added by Spacecore, then I can use that, since our pack already uses Spacecore.

brave fable
#

is solid foundations supported, though?

brittle pasture
#

it still works in 1.6, though still with its own format instead of leveraging Data/Buildings

lucid iron
#

spacechase0.SpaceCore_ColoredLights

lucid iron
#

the color for this one isnt inverted right

latent mauve
#

That's a Map Property and not a Tile Property, though, isn't it?

next plaza
#

Yeah it's the map property

lucid iron
#

rip i thought it was tiles

brave fable
#

like you can add a coloured light to a map with spacecore, but it won't move with the building

#

this is a buildable shed, after all

latent mauve
#

I don't think you can set overall map properties for Buildings, or I'd have just used the Light properties

#

yeah.

brittle pasture
#

building exteriors are only for actions

lucid iron
#

smol mod later then

#

gotta deprecate SF piece by piece sleep

latent mauve
#

In the meantime, maybe I can fake it with a well placed torch behind the TARDIS Shed. >_>

lucid iron
#

i had also wanted to make like

#

oh ik

#

there's the invisible fish tanks

#

its genius

brave fable
#

is eventSeen actually used in the base game at all? i don't get any results searching data/events, and using the command in my own event doesn't seem to remove it from the player's eventsSeen list

#

i'm probs going to just remove it with c# on event exit but still

brave fable
#

oh sorry, it's an event command

fathom hound
#

Is it possible to use all of the buff combinations from the ||chef at desert festival|| for a statue buff with CP?

brave fable
#

oh wait butts i think i was meant to add false even if it's the current event id

hallow prism
#

it was added in 1.6, possibly at modder request

fathom hound
hallow prism
#

so it may explain vanilla not using it, and it may explains it being untested

#

how are you formatting it? in case it may be a wrong formatting

#

if it's not, a small repro pack sent to pathos may help

brave fable
#

yep it might be, trying it again

tardy adder
#

My lightdata don't go brrrrr

#

Well time to jump onto why my map isn't mapping anymore

brave fable
#

ok it works too well now, the event replays itself when it ends because it wasn't seen lol

#

didn't think this through

hallow prism
#

without changing map?

brave fable
#

it changes map from original -> temp -> original, so it goes 'ooooh free event' when it goes back to original

hallow prism
#

it shouldn't before changing map according to the Word of Pathos wiki to avoid loop

#

oh yeah maybe that's why

brave fable
#

i think i'll just addmailreceived in the event on success, and remove the event from player.eventsseen at the end of the day if the success mail wasn't received

#

somehow i thought this would be simple

#

where did you get that sacred emoji. you're not staff and i know it

velvet narwhal
#

SDVpufferthinkblob oh yeah linkoid found the eventseen one but I generally don't use it because I change maps a lot

lucid iron
#

wdym its just this server + nitro

brittle pasture
velvet narwhal
brave fable
#

oh my god it is

tough crater
#

(Unrelated):
I'm curious if there's a way to do an if/else statement in json files.
For example, I'm integrating the Spouses React to Player 'Death' mod. However, if the player chooses to not download the mod, but still use the features of it with my NPC, I'd love to do that (obviously using GMC for it to be toggled).

The way I have it right now, I have it so the events only occur:
"When": {"HasMod": "CasualInvidia.SpousesReactToDeath"}

How would I manage to do something similar where I can do:

if {"HasMod": "CasualInvidia.SpousesReactToDeath" -> sets toggle to true} else {<toggle name> = "true"}

I know the code example is hella sloppy, but I haven't used JavaScript or general if/else statements in a HOT minute

brave fable
#

aw tuxedo mask demetriums didnt make it into the emoji

fathom hound
tardy adder
#

Urgh now my map is acting weird with the hasflag

fathom hound
tardy adder
#

Triggeractions so finicky with me >:|

lucid comet
brittle pasture
tough crater
brittle pasture
#

as in blocks in the Changes list

#

and those are When conditions

brave fable
#

sad that end bed from a temp location warps you to the farmhouse door

#

maybe i can say you've been sleepwalking

brittle pasture
#

though just to clarify, since I may have misunderstood - do you want your changes to apply if the mod is installed OR your config is true?

velvet narwhal
#

~it was a spooky dream~

brave fable
#

actually no that's perfect lol

#

oh also can i set conversation topics to be spouse-only

#

somehow

velvet narwhal
#

you can set a condition to the dialogue/NPC edit if they're a spouse with the key being the convo topic yeah

#

you... might have an easier time in c# though considering SDVpufferpain

brave fable
#

oh so like use "Target": "Characters/Dialogue/MarriageDialogue{{spouse}}" with my value

velvet narwhal
#

i think only regular dialogue uses convo topics

#

char/dia/<npc>

brave fable
#

does that mean spice won't?

#

spouses. speece

brittle pasture
#

yeah I was about to ask if it even works with spousal dialogue

velvet narwhal
#

speeses

brittle pasture
#

we all know spouses lose all agency when they get married

velvet narwhal
#

they lose all personality as soon as they put the pendant on

brave fable
#

why is it that whenever i have the simplest idea i hit the most incredible technical roadblocks nobody has ever walked into

velvet narwhal
#

i've walked into them, i just choose not to go that route

brave fable
#

c# is my world hammer

velvet narwhal
#

yeah i suggested c# cause otherwise you'd have to iterate somehow of all spouses in cp... and would that even catch custom npcs etc

next plaza
#

C# is the best hammer

velvet narwhal
#

you're better off with NPC spouse SMCKekLmaoDog

brave fable
#

i just want your husband/wife to say you look like shit in the morning after an event. maybe laugh at you. is this so hard

#

end dialogue <NPC> <"Text for next chat"> hmmmmmmmm

velvet narwhal
#

i was about to ask button

brittle pasture
#

spouse whose only indication you're married is through dialogue, and is otherwise identical to dating mechanics-wise

velvet narwhal
#

wait would [Spouse] work

uncut viper
#

you could just set their dialogue the morning after via C#, BETAS, or a custom action

brave fable
#

i guess end bed isn't putting me in the bed so i may as well try end dialogue

#

i'd use changeLocation FarmHouse after the event but i don't think it'd cover farmhands for cabins

#

unless there's a cp token i can use for player's home location..

#

there isn't, is there

velvet narwhal
#

debug warp farmhouse on mp sends me to the main house

brave fable
#

wonder what end dialogue {{spouse}} abcdefg will do if you're not married

velvet narwhal
#

probably throw an error

brittle pasture
#

spouse probably becomes blank space

velvet narwhal
#

i could've sworn you could fork based on a query but maybe that was a fever dream

brave fable
#

yep, blank: end dialogue "Wow, you look awful today."

velvet narwhal
#

SDVpufferthinkblob [SpouseFarmerText [EscapedText faceDirection [SpouseActor] 2 staring at the wedding code

latent mauve
#

Okay, so another question: Is it possible to change a building's paintmask depending on which skin is used? (if I'm using the Buildings "Skin" property)

brave fable
#

maybe a dynamic token with when on spouse/roommate/random villager

lucid iron
lucid iron
brittle pasture
#

just let SMAPI automigrate it ez

lucid iron
#

ok but i do kind of want to use string light ids...

brittle pasture
#

(it was sarcasm SDVpufferrad )

#

I'm not backporting my animal lights to 1.6.8 lol

lucid iron
#

say did u invert ur light colors

#

i wasnt sure about the convention

brittle pasture
#

yeh

#

also I learned that Glow Buff unconditionally patches the light source draw to make colored lights show up properly

#

so now it's an optional dependency even though I literally use 0 of its framework features

#

so if you cant get your colored lights to look the way you want try installing Glow Buff

lucid iron
#

wait what does that mean bolbwaitwhat

patent lanceBOT
lucid iron
#

does glow buff fix blue lights

brittle pasture
#

apparently, at least on my machine/setup, as unbelievable as it sounds. try it
(you still need the inverting though)

lucid iron
latent mauve
lucid iron
#

yay ok

#

the other thing i rmbr ppl wanting is a better way to do night variants on the building

#

thats not update on time changed

brittle pasture
#

hmm could have sworn draw layers support GSQs

#

might have totally misremembered though

lucid iron
#

maybe, i got no clue

#

lastly i wanna be able to walk into bog's moongate obelisks

#

so i gotta do the SF feature of passable building tiles

#

and then a smol cp mod to edit the warps

brittle pasture
lucid iron
#

tbh it'd be kind of expensive to do like

#

gsq every tick right

brave fable
#

ho ho, end dialogue {{random: list of idiots}} works

#

it may have been a struggle to remember what the characters are called, but by god we did it

velvet narwhal
#

"not custom spouse compatible, sorry, don't care enough"

brave fable
#

i genuinely don't care enough lol

velvet narwhal
#

i want to see this chaos now, so i'm watching the modding-contest with eyes peeled

brave fable
#

maybe i'll drop a playtest in here so it isn't a huge flop when it turns out the thing doesn't work SDVdemetriums

velvet narwhal
#

well you were worried about the playtesting right? SMCKekLmaoDog though button got the hard hitting question out of the way: last version of the mod uploaded is the one that's gonna be judged

uncut viper
#

as long as it works on october 31st you've got time for bugfixes

brave fable
#

even still it helps to release something that actually works

uncut viper
#

very true

brave fable
#

and not like. 3 weeks later lol