#making-mods-general

1 messages · Page 105 of 1

calm nebula
#

In b4 19 different implementation of parallax

#

Not me

#

The other mathperson has committed a nerdsnipe

lucid iron
#

is parallax a feature desired by the general public blobcatgooglyblep

velvet narwhal
#

i think it's been at least 3 different people wanting it, so, maybe?

uncut viper
#

what do people even want parallax for, im confused

velvet narwhal
#

3 different authors*

#

~aesthetic~

#

and probably indoor maps

uncut viper
#

but like... aesthetic where

rancid temple
#

Submarine

#

Maybe something with the cable car?

next surge
#

When I was playing modding Baldur's Gate 3 I didn't have time to actually play the game, all time spent making mods. And then I quit BG3, and never even got to play Act 2+ at all even though I played EA for years.

lucid iron
#

i specifically want to make bastion button blobcatgooglyblep

rancid temple
#

An airplane/bus map

uncut viper
#

ive never played bastion

velvet narwhal
#

i can't remember off the top of my head but i think it's something like, windows to have parallax, to not depend on the background being tied to that one strip?

lucid iron
#

although it won't be isometric for obvious reasons, i do think it's cool to see shit beneath u

#

the game itself has parallax in some places

#

like summit

#

and junimo kart lol

uncut viper
#

id rather chu make an arcade minigame framework

velvet narwhal
#

then lemme hack it up for karaoke

next surge
#

I'm tempted to jump into the SDV modding scene but a small part of me screams, "Don't do it!".

lucid iron
#

i cant beat lv1 of junimo kart or lv1 of prarie king

#

would u trust me to make mini game

uncut viper
#

i would like to be able to program a game and have chu's framework load it for me

#

like just let me import a unity project or smth

velvet narwhal
lucid iron
#

but button thats just IMinigame

velvet narwhal
#

isn't that already -- yeah

lucid iron
#

unless its like

velvet narwhal
#

IMinigame is just that woopsDerp1

brittle pasture
#

framework to execute arbitrary pygame executables in a window SDVpufferwoke

uncut viper
#

no i specifically want to give you my compiled .exe of a game i make

calm nebula
lucid iron
#

u want game to start terraria when u interact with the crystal

uncut viper
#

and have you do the work of loading it and letting it run

calm nebula
#

Anyways

#

Incoming nerd snipe

uncut viper
#

im retired dont aim at me

rancid temple
calm nebula
#

It's a great little puzzle!!!

#

V fun

velvet narwhal
#

wouldn't it be more work of making a unity minigame than it is building a ui

rancid temple
#

A minigame that's just an 8 bit version of SDV

#

With a minigame in it that lets you play an even smaller version

uncut viper
#

thats a good idea actually chu just let me program minigames like i can program my ti-86

lucid iron
indigo yoke
shut grove
#

64bit, 32bit, 16bit, 8bit, 4bit, 2bit, 1bit, THE WRIST GAME!

lucid iron
#

educated potatoes

velvet narwhal
#

tbh the "turn everything 8bit" just sounds like pulling an AT crime and replacing all of the draws

tiny zealot
#

turn everything 8bit is also absolutely something i could do with nightshade. i was playing with it at one point but put it down along with nightshade's vaporware update and i have been busy with other stuff

indigo yoke
#

okay the pufferbook emote is super cute

velvet narwhal
#

new april fools idea

#

pufferbook turns everything into pufferfish

wheat finch
#

OMG. TY for spotting that lol. You'd think I'd have done it correctly when I have working CP mail in another mod but I'm very rusty on my modding skills. Gonna try again with the fixes you ID'd.

bright panther
#

great code stardew

teal bridge
#

Conditional compilation, most likely.

next plaza
#

Exactly

#

There is indeed

lucid iron
#

this seems not too strange even without conditional compilation blobcatgooglyblep

#

it just a getter

teal bridge
#

Without conditional compilation it's just sort of pointless, but it makes a lot more sense when you figure there are probably several different implementations of the method for different targets.

tiny zealot
#

it could easily be an interface method, yeah

sweet sphinx
#

is there a way to add a language option to the base game, like a conlang?

lucid iron
#

yea

teal bridge
#

(it's static, so can't be an interface method in .NET 6)

lucid iron
#

custom languages

tender bloom
uncut viper
#

good luck translating everything, though

tiny zealot
#

ah, well. nevertheless,

velvet narwhal
#

isn't there translations of RSV? close enough

lucid iron
uncut viper
#

whats rsv got to do with it

lucid iron
#

this one is traditional chinese for example

velvet narwhal
#

rsv has like, 22k lines of dialogue innit

next plaza
tiny zealot
#

isn't thai a custom language in stardew?

velvet narwhal
#

yep

sweet sphinx
#

wow

tender bloom
uncut viper
#

that was just for example to show it was possible wasnt it

fathom hound
#
    {
        Utility.addRainbowStarExplosion(this, new Vector2(monsterBox.Center.X - 32, monsterBox.Center.Y - 32), Game1.random.Next(6, 9));
    }```
wheat finch
#

Testing again. Wish me luck.

sweet sphinx
# uncut viper good luck translating everything, though

most of it is not translating, but making the words to be able to translate stuff, it took me years to finally get to a grammar system I like for Rhaciya, it just needs more words, there's only like ~300-400 words so far

velvet narwhal
#

oh you're doing an actual fantasy language? i finally looked up conlang

uncut viper
#

i mean i wasnt saying anything about making the conlang itself. just saying that translating every single bit of text in the game is difficult, bc it is

lucid iron
#

You know maybe you could do the other interpretation of "bilingual mod"

tiny zealot
#

continuing with my ongoing multiplayer map shenanigans, i am adding some locations on the fly which (may) require small map overrides to be applied based on world state. this state may differ every time the map is accessed. i've got the locations syncing correctly, but it seems to be the case that the "real" (host) location's map overrides and tile properties are not part of the synced data. farmhands are running the map overrides locally, but that affects only the shadow location, so the overrides aren't showing up when the farmhand warps to the real location.
given a shadow location reference, is there a reliable way to pull the "real" location out of Game1.locations from the farmhand's side, in order to apply the local overrides to that one?

lucid iron
#

Add additional dwarfish style languages

sweet sphinx
next plaza
uncut viper
next plaza
#

You could probably check the location list for the real location and apply them when a farmhand calls resetLocalState on the map

tiny zealot
#

i guess the part i'm not clear on is "check the location list for the real location". what should i be looking for?

uncut viper
#

i dont mean apply it right away, i mean apply it when they finally enter the real one

next plaza
#

Is it a dynamic location or static location?

#

(i.e like Mineshaft or VolcanoDungeon, or like the rest)

tiny zealot
#

uh... i'm not sure which, actually? it's one of two static layouts but it is only generated when needed. once it's made it sticks around

next plaza
#

Hmm

#

Is it in Game1.locations?

#

And/or do you patch getLocationFromNameInLocationsList to return it from elsewhere?

#

Or do you need it to work for anything?

tiny zealot
#

yeah, the real (host) one and the shadow (farmhand) one should both be listed in Game1.locations

next plaza
#

Interesting. Well, Game1.getLocationFromNameInLocationsList should work for getting the farmhand's copy that isn't the current location

#

(Unless it's like the farm, since of course there's no shadow copy for that for example)

tiny zealot
#

hmm, i'll check it out. thanks!

next plaza
#

Although, I wonder if _locationLookup will get in the way

#

Looks like it probably is fine though

tiny zealot
#

(my backup plan if i can't fix this overrides setup is to have multiple copies of the affected map and load the one that applies. but i hate that, so i'm trying this first SDVpuffersquee)

wheat finch
#

I wonder if CP/SMAPI are just disliking the hyphen in the recipe name? I removed the condition from the crafting recipe so it doesn't get learned on level-up automatically but the letter still won't trigger. Either that or it doesn't like the i18n. Gonna remove that rq to test.

velvet narwhal
rancid temple
#

Oh right, I forgot that just gives you the recipe at that level not sends the mail

#

Well, without that you have to send the mail yourself with trigger actions

#

The friendship unlock is the one that sends automatically

velvet narwhal
#

don't quote me on it but hyphens shouldn't matter in the context of the name, considering i append everything with {{ModId}}_

uncut viper
#

thats an underscore

rancid temple
#

The vanilla files use hyphens

velvet narwhal
#

in the context of it i meant it takes symbols KEK

rancid temple
#

Only issue is if CP has any issues with hyphens, but it shouldn't in that location

uncut viper
#

well it probably does break with some symbols

velvet narwhal
#

the schema probably says which ones SDVpufferthink

rancid temple
#

Probably not

#

The problem isn't syntax related, it's how the code is using the entry there

uncut viper
#

if CA really wanted he could parse recipe names by splitting it into multiple strings after every "a" instead of something like every "/"

#

thus you would not be allowed to use "a"

velvet narwhal
wheat finch
velvet narwhal
#

ah yeah if you want the mail to be sent you'd have to add an editdata on triggeractions

#

or make/edit a shop to sell the recipe, entirely up to you

wheat finch
#

Sorry had to step away to fold laundry lol. Ugh okay. I was afraid of that. I thought it would be enough to have the when condition in the mail itself. Maybe I'll just add it to Marnie's. She's the one I have sending the letter with the recipe anyway.

uncut viper
#

the When condition just tells content patcher when to add your stuff to the game

#

the game does not look at the When condition at all

rancid temple
#

Yeah I was suggesting to remove the When because I think that might cause it to delay knowing th mail exists for an extra day

atomic vale
#

In the manifest.json of a mod can you have more than one update key?

wheat finch
#

I'm so rusty on modding I should have known that lol. K. Gonna look at the trigger actions thing and try again. TY both.

velvet narwhal
#

also it looks like it only does the trygets after the name in regards to craftingrecipe

wheat finch
#

K. Added a trigger action. Here's hoping.

fathom hound
uncut viper
#

have you double checked your spriteindex

fathom hound
#

i just have it 16x32 was that an oops?

uncut viper
#

that would mean you'd have index 0 and index 1

fathom hound
#

ohhh not 1 and 2, thank you

uncut viper
#

im also curious, why load the spritesheet but then use internalassetkey

#

(also yea indices start at 0)

fathom hound
#

not sure, im learning from another weapon mod tbh SDVpetcatsad

uncut viper
#

(for like all things)

fathom hound
#

oh thank you

fathom hound
wheat finch
#

Well at least now I'm getting an error to tell me why the mail won't load. Back to the documentation to figure out where I went wrong.

uncut viper
#

if you're loading the texture into Mods/MeowmereWeapons then you can just write Mods/MeowmereWeapons in the Texture lines

#

instead of the internalassetkey token

#

or you can keep the internalassetkeytoken and remove the Load action

#

using the internalassetkey would mean no one else can edit your textures with content patcher

#

i.e. cannot editimage on them

#

or load over them

fathom hound
#

oh okay, which would be better for what im trying to do with c# too?

#

(wanted to add ||meowmere|| effects to them too)

uncut viper
#

i have no idea what you're trying to do with C# but probably the Load

fast urchin
#

How to receive the same email repeatedly

uncut viper
#

if you load it you can then get it with Game1.content.Load or the smapi load helper or w/e

#

email?

wheat finch
#

Does {{ModID}} not pull the mod ID from the manifest's UniqueID?

uncut viper
#

it does

fast urchin
#

sorry, mail

uncut viper
#

you can repeatedly send mail with the AddMail action

fast urchin
#

thank you so much

wheat finch
uncut viper
#

at you, {{ModId}} takes the UniqueID from the manifest.json

wheat finch
#

TY. Log threw an error at me that there's no ID but I used {{ModID}} so it should have.

uncut viper
#

where are you trying to use it?

fathom hound
wheat finch
uncut viper
#

you havent written the same mail key

#

your mail key in Data/mail does not have the {{ModId}} at the start

#

assuming your uniqueid is cosplaywrite.CAP, what you have in your action is AddMail Current cosplaywrite.CAP_cosplaywrite.CAP.MarnieLetter

uncut viper
fathom hound
wheat finch
#

I was really good at modding before 1.6 came along. Now I'm super rusty and everything is different lol

uncut viper
wheat finch
#

That's not a problem. I can create a new junk save and use CJB cheats to set my skill level to see.

uncut viper
#

you can use another action to mark it unapplied temporarily or add the MarkActionApplied field to the trigger actioln itself for debugging

#

that also works

uncut viper
wheat finch
#

Gonna test it and see but if it doesn’t work I think I’ll walk away for the evening.

wheat finch
#

I give up.

fathom hound
#

oh i know what i did i think

#

i think i put hammer in the wrong indentation

#

(?)

rancid temple
#

Oh, you closed Entries

#

And then you put the hammer

uncut viper
#

ah yeha, you did. did you not get an error in your console?

fathom hound
#

yeah that

#

no i didnt but i just realized i need to update CP

velvet narwhal
#

(does the caseSensitivity work in regards of it doing {{ModId}} vs {{ModID}} ?

rancid temple
#

ModId is not case sensitive

#

I don't think any CP tokens are

uncut viper
#

few tokens are

rancid temple
#

I believe some GSQ's are though

velvet narwhal
#

i honestly don't remember which ones are, so i'm on the basis of "everything is caseSensitive until nothing is"

rancid temple
#

Generally, it's better to just assume it's case sensitive

#

It also helps avoid issues with Linux

calm nebula
#

Tokens aren't case sensitive

#

File paths are

#

The gsq resolver isn't case sensitive but the arguments may be

#

My future cat or dog is case insensitive

rancid temple
#

cAt

wheat finch
#

My mod's unique ID is "cosplaywrite.CraftableAutoPetter" does that matter in terms of what I put after the {{ModId}} token?

calm nebula
#

Code is typically case sensitive. Unless you're programming in a bonkers language

wheat finch
#

I can add a link to an updated validated json.

rancid temple
#

If you aren't using ModId everywhere, then you will have mismatch issues

velvet narwhal
rancid temple
#

Because I saw you were using a condensed version of that in places before

wheat finch
rancid temple
velvet narwhal
#

this is probably where it's failing

rancid temple
#

Oh, yeah that's not good lol

wheat finch
#

Trigger Actions and tokenizable strings are all new to me since I was last super active on the mod scene so thank you for your patience here. I used MFM for this mod before and am moving it all over to CP now.

#

Oh geez. That's what I get for copy-pasting.

fast urchin
#

how to know that the player has completed a quest or a special order at a tick

tiny zealot
#

i am going insane.

When a farmhand warps to a location, the game fetches the real location from the host player before the warp completes.
how does this work. where does this happen and why doesn't it include map overrides. how do map overrides work in multiplayer at all if they don't sync and farmhands (seemingly) can't apply them to their own locations

calm nebula
next plaza
calm nebula
next plaza
#

Ah, it's technically MakeMapModifications

#

Which is called in resetForPlayerEntry

next plaza
#

Oh, for receiving maps?

calm nebula
#

It's supposed to be reentrant but somehow it's not

next plaza
#

Really? I'm only seeing it called in overriden versions, or the weird one in FarmerTeam

#

Or in resetForPlayerEntry lambda

wheat finch
#

Well that's a step in the right direction. The letter triggered successfully but got "no translation available" so now I know it doesn't like my i18n.

calm nebula
next plaza
#

Oh, it's resetForPlayerEntry that's called in both places

calm nebula
#

Yup

tiny zealot
#

oh ho, a resetForPlayerEntry lambda? can i just... add one of those

calm nebula
#

It's....supposed to be reentrant and somehow isnt

next plaza
#

What do you mean by reentrant

calm nebula
#

If you call it twice it's irrelevant

tiny zealot
#

hmm i would call that idempotent

next plaza
#

Ah. Well, yeah, it should, since _madeMapModifications bool guards it

teal bridge
#

That's not a normie-friendly definition at all, lol

calm nebula
#

Right. That

#

Reentrant is threading

next plaza
#

Oh wait

#

It reset it to false then immediately checks it

#

Nevermind

teal bridge
#

Yeah, reentrant means it can be called (directly or indirectly) by itself safely.

next plaza
#

(After some calls to resetLocalState where it might be called otherwise)

teal bridge
#

Is it supposed to be reentrant or idempotent?

calm nebula
#

Idempotent

next plaza
#

Idempotent I can't recall the meaning of but doesn't sound right

teal bridge
#

Idempotent means the outcome is the same no matter how many times you call it with the same arguments.

next plaza
#

Looking up the definition though it's just my memory 😛

calm nebula
#

Hmm

#

Not that either

teal bridge
#

Well, actually, times aren't really that important, it means the outcome is the same when called with the same arguments period.

calm nebula
#

I think I mean something more along the lines thar calling jt twice won't apply the map modification twice

teal bridge
#

That's the same as what I said...

fathom hound
teal bridge
#

The outcome only depends on the call/arguments, not prior state.

next plaza
#

Actually both calls to resetForPlayerEntry are in onFadeToBlackComplete - Client.setUpGame is irrelevant here

next plaza
calm nebula
#

Yeah my arrows are bad lol

fathom hound
#

derp

calm nebula
#

ReadActiveLocation was intended to be the other one?

fathom hound
#

thx pufferheart

next plaza
#

@tiny zealot I guess you could override Game1.hooks with a DelegatingModHooks subclass (SMAPI class that automatically calls the existing hooks for you), and then override OnGameLocation_ResetForPlayerEntry to make your modification at the end.

#

Or just patch GameLocation.MakeMapModifications if you're already using harmony

fathom hound
wheat finch
#

Easy fix lol. I hope. I didn’t have the right i18n key in my content json. It didn’t match my default json. 🤦‍♀️

next plaza
calm nebula
#

I think ichor mostly cares about his location anyways

#

Which is a known class

next plaza
#

Ah, true

#

Didn't think of that

velvet narwhal
wheat finch
#

Success!!!

next plaza
#

Though your condition is probably wrong too

#

Since (W)65 isn't going to be the right mail flag I think

fathom hound
#

oh ~_~!

tiny zealot
#

i have been using a plain GameLocation, since i assume it is dangerous to subclass it. i might just patch MMM since i am in fact already using harmony

calm nebula
#

Oh I missed that entirely

next plaza
#

Yeah, if it gets saved you'd need to do the whole remove/readd dance or use SpaceCore (assuming it's not one of the few classes that is xml serialized across the network sometimes, which I don't think it is)

fathom hound
#

so it would be (W)MeowmereWeapons.Dagger?

wheat finch
#

Now to decide if I want to version this 2.0 since it won't work with older game versions and I changed up the contents of Marnie's letter or if I want to just version it 1.0.2 since it's not a huge change.

calm nebula
#

Now if you want to do that dance?

next plaza
#

@fathom hound For the mail flag condition, the proper mail flag I think you want is "hasActivatedForestPylon"

tiny zealot
#

no, the snorlax technique is off the table for this one. the contents have to persist/be saved

lucid iron
next plaza
#

Snorlax technique? That's a new one

calm nebula
#

Is the snorlax technique sleepinf

tiny zealot
#

that's what i call the add/remove dance to avoid serializing a subclass

wheat finch
tiny zealot
#

since i did it for my snorlax log mod

next plaza
#

So yeah, harmony is your best approach without SpaceCore

#

(If I remember correctly you're one of the people who don't play with SpaceCore installed?)

velvet narwhal
#

(ichor destroys snorlax before save SDVpufferpensive then brings it back on load)

next plaza
#

(Or maybe I'm thinking of tiakall)

#

(In addition to focustense and a couple others)

fathom hound
#

[game] Failed parsing condition 'hasActivatedForestPylon': 'hasActivatedForestPylon' isn't a known query or alias. oops, did i put it in wrong

tiny zealot
#

(yep, you caught me)

calm nebula
next plaza
uncut viper
#

(my current modded playthrough also does not have spacecore but it is relatively light)

hard fern
#

🤔 whats the method of converting hair pngs to FS manually?

fathom hound
#

OH i see okay makes sense, thanks

calm nebula
#

Have you seen the fate of poor trash bear

hard fern
#

did trash bear explode

teal bridge
calm nebula
next plaza
calm nebula
#

This is my favorite

fathom hound
#

woohoo it worked tysm Casey pufferheart now for the hardest and last part which is adding the ||meowmere sparkle|| effects SDVpufferprideowo

teal bridge
#

Oh. Yes, correct.

uncut viper
calm nebula
#

Oh no! Get away! The wall of leaves!

lucid iron
#

spenny is too powerful

next plaza
tiny zealot
fathom hound
brittle pasture
#

no, but you can zip both of them up in the same file

fathom hound
#

if it isnt then i am very sad

old edge
#

Oh thank you. It seems the issue is in my coolLava method. I took it from the VolcanoDungeon.cs code but it seems to only work for the first player screen.

uncut viper
#

they will need ot be technically differnt mods to smapi's eyes

brittle pasture
#

ModBuildConfig supports that natively too

next plaza
#

Yeah, and the C# tool (ModBuildConfig)- ^

calm nebula
uncut viper
#

they can live in the same parent folder but must have different unique ids

teal bridge
calm nebula
lucid iron
#

i wonder if u could like

#

make a fake "sparkle" item

#

and set it as the weapon projectile

velvet narwhal
#

animated object?

lucid iron
#

no 1.6 weapons have this projectile field

next plaza
#

Name your dumbest belief as a child: Mine is believing I'd be happy one day Wait what

brittle pasture
#

the sparkle is specifically when a monster is slain

#

not a projectile by itself I think

lucid iron
#

darn foiled by canon

velvet narwhal
#

oh i meant the projectile being the object-

calm nebula
velvet narwhal
brittle pasture
#

yeh

fathom hound
brittle pasture
#

my stupid childhood belief was that I am an automaton with steel interiors

#

no I don't remember how/why/from whom I got that

velvet narwhal
brittle pasture
next plaza
velvet narwhal
#

we just gotta crowdfund casey out of FL, happiness guaranteed

fathom hound
next plaza
#

I'm not in FL

velvet narwhal
#

oh, wait that was button

next plaza
#

I moved to IL with a new job at the end of last year

brittle pasture
next plaza
#

I used to be in FL

fathom hound
#

thank you!

lucid iron
#

you moved into intermediate language??

next plaza
calm nebula
#

We are considering crowdfunding Casey one of those Stardew controllers right?

next plaza
#

I was thinking about getting one

#

Though I purchased something much more expensive today

lucid iron
#

im surprised you dont just get one

next plaza
#

(The Fire & Steel Terraria Meowmeres came back in stock)

lucid iron
#

as company benefit or whatever

next plaza
calm nebula
#

What's a meowmere

rancid temple
#

It's a cat strapped to a hammer

velvet narwhal
#

does it actually meow when you swing it

next plaza
teal bridge
calm nebula
#

Oh I forgot to buy soil

rancid temple
#

Honestly, Meowmere being a sword instead of a hammer is ridiculous

brittle pasture
#

dang 600 cad

fathom hound
rancid temple
#

And that's the only thing ridiculous about that Terraria weapon SDVkrobusgiggle

calm nebula
#

Thr heck is meowmere

lucid iron
#

maybe it means that sdv humans are 2x as large as terraria humans

calm nebula
#

Lol

next plaza
#

Hmm, I could preorder the stardew controller, but I'm unsure if I'll move before the date listed on the website

calm nebula
#

I'll go back to dealing with the stupid word game

velvet narwhal
#

the (1) good thing mankind created, force-activated noisemakers, and it isn't put in a 600cad weapon, i'm disappointed yet again, yoba

calm nebula
#

Arggh

next plaza
calm nebula
#

What do you mean interesting and interest aren't related you ML....

rancid temple
#

One is financial and the other isn't

#

/j

next plaza
#

What's the difference between interesting and interest? Well, I certainly don't find it very interesting to be paying more interest

calm nebula
#

It's telling me depress and gray aren't related smh

velvet narwhal
#

i immediately thought of 'button' when i saw depress

teal bridge
#

Try "grey", maybe it doesn't like the American spelling.

calm nebula
#

Button seems cheerful enough

next plaza
#

It me, the depression

#

No, I don't have depression. I'm literally made of it

rancid temple
#

Well, as long as you don't have it, it's fine

wheat finch
#

Well one mod tested and updated in a night is enough. But at least it got me back in a mod headspace and hopefully future mod updates go smoother. I started with what I thought would be a simple enough one. It was good though because some of what I did tonight will translate to other updates I need to make.

teal bridge
#

I have some tongue depressors in the medicine cabinet.

calm nebula
#

Fade

teal bridge
#

Well, actually, they're more like toothpicks.

calm nebula
#

Fade is what the stupid program wanted

rancid temple
#

Fade to grey?

next plaza
rancid temple
#

You were born in it, molded by it

velvet narwhal
#

casey's gonna make the next psychological horror story mod SDVpufferpensive

rancid temple
#

Right right... this is abnormal, of course

wheat finch
#

Gonna studiously ignore the mods that need more art or conversion off JA for a while.

next plaza
calm nebula
#

🫂

old edge
#

So my CustomLavaLogic code is requiring me to add XML IGNORE before some attributes and it doesn't work if I remove them. Idk why

velvet narwhal
next plaza
#

I wouldn't trust just anyone for something like that 😛

#

Assuming edit access to mod pages and such

#

There are a few I would

velvet narwhal
#

obv KEK i meant your trusted group and even then, cause those numbers probably caused a 6d4 amount of psyche damage

silver pelican
#

Hey all. I've just been wondering how to include some (if not almost all) cornucopia crops to be salable to one of my custom shops.
I tried doing this but it's not really showing in the list of shop items. Oh, and made sure to made cornucopia a dependency in the manifest (because i always forget manifest.json). I couldnt focus as much so I just decided to ask for help im sowwy. SDVdwarf

In my data/shops block.
 {
                            "Id": "{{ModId}}_Cornucopia_Crops_Spring",
                            "ItemId": "ALL_ITEMS (O)",
                            "Condition": "SEASON Spring",
                            "PerItemCondition":"ITEM_CONTEXT_TAG Target Cornucopia.MoreCrops.cornucopia_season_spring, ITEM_CONTEXT_TAG Target Cornucopia.MoreCrops.modid_cornucopia.morecrops",
                            "AvailableStockLimit": "Player",                            
                        },```
brittle pasture
#

those context tags don't look correct

drowsy pewter
#

context tags dont have mod id prefixes

#

what you see in object data is what you get

#

and you dont need the dependency either btw

#

You can copy whatever we did for data/shop_pierre.json

#

or whatever

#

I believe I only set the season tags for pierre's items though so you'd get most but not all seeds from that

fathom hound
#

Sorry -- will delete after response

silver pelican
next plaza
#

Uh, you definitely don't want to prefix return false there

blissful saddle
#

I have a CP with custom tokens which values can be changed by GMCM in-game (or at least that's what I think).

How can I force CP to re-check the and re-edit the assets after something changes in GMCM/Config?

chu said something about forcing invalidation previously but didn't got into more details

blissful saddle
#

so many questions

fathom hound
next plaza
#

Also, I have no idea where you got that method name - "attackWithTool" doesn't exist anywhere in SDV

calm nebula
#

The Traditional TM way to do it is to call patch reload on your content packs

#

Ask ichor SDVkrobusgiggle

blissful saddle
next plaza
#

Yeah, there's no direct way to force a mod's patches to reload

#

Programmatically anyways

calm nebula
next plaza
#

Yeah, you kinda have to abuse the console command

#

And I don't think Pathos plans on adding a way to do it otherwise

fathom hound
ocean sailBOT
#
How do I reload my changes while I'm still in game?

-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload YourMod.UniqueID
-C# Visual Studio has a feature called Hot Reload
-C# Rider also has Hot Reload
-Generally working in C# it will be called "Hot Reload" (usage may vary)

calm nebula
#

Mods that inject commands into the commands queue ++

uncut viper
#

whats wrong with just invalidating the assets

calm nebula
#

The patches don't update

uncut viper
#

<-- barely been paying attention

calm nebula
#

<-- is playing a stupid word game

next plaza
#

Yeah, and from C# you can't see what patches use your token either (to get what assets would be affected)

calm nebula
#

Hey, I'm actually playing a game for once

blissful saddle
#

and there is a way to a c# mod to call a console command?

next plaza
#

Yeah. That's why atra mentioned hat mouse lacey earlier - that mod does it

#

There's not a public API for doing it though

#

(There used to be but Pathos removed it 😔 )

blissful saddle
#

oh! ok. I thought it was an internal slang or something like that

calm nebula
#

Hat mouse lacey is the best example

blissful saddle
#

thanks a lot! I will take a look

brave fable
#

do you want to be the best example of doing things the developers tried to stop you doing though lol

calm nebula
#

(I do it too for chat commands but like....unreadable much)

blissful saddle
#

someone trying to stop me to do something is a motivation for me to look for a workaround

rancid temple
#

Reflection crimes time

next plaza
uncut viper
#

well, its less like "stopping you" and more just "no longer giving youy an easy way to"

next plaza
#

Everyone loves reflection crimes

calm nebula
#

Shhh usually I'm a good example in life

next plaza
#

looks at my mods directly loading assets from other mods / content packs

brave fable
#

reflection is named because it wants you to just look into a mirror for a while and decide if you really need to access those private methods

rancid temple
#

(you definitely do)

naive depot
#

Hey, how would one get item name to item ID? Do I have to manually make a function that does it?

lucid iron
#

in C#?

naive depot
#

Yea

blissful saddle
calm nebula
#

If you look at 1.5 era mods they do this a lot

naive depot
#

Ah, okay

calm nebula
#

But names do not perfectly map to ids

brittle pasture
calm nebula
#

In that you can have two items with thr same internal name

uncut viper
#

(also wouldnt it be easier to just reflect into CP to call its UpdateCommand handler)

lucid iron
#

iirc there's a new fuzzy search method?

#

Utility.fuzzyItemSearch

#

maybe what u want

brittle pasture
#

or that, huh

teal bridge
naive depot
#

Okay, thanks, that's actually super helpful

calm nebula
teal bridge
#

I see it described here sometimes as "a way to access internal stuff" and it does do that, but that's really not what it's for.

calm nebula
#

It's for looking at yourself in the mirror and admiring yourself of course

teal bridge
#

Well, you could argue it's for your code to look at itself in the mirror and admire itself.

uncut viper
teal bridge
#

Which... literally is how it's named. Minus the admire thing.

fast urchin
#

I want to implement a function. After completing my custom special order, I will send item rewards via mail. The special order can be completed repeatedly, and the same mail will be sent each time to give item rewards. But no matter how I write, I can only receive that mail once. Does anyone have any better methods?SDVpufferheart

calm nebula
#

Add a trigger action that removes the mail at night

calm nebula
#

It's the only way it will have any self respect

fast urchin
#

Can you help me see what's wrong with writing like this?{ "Changes": [ { "LogName": "Mail Triggers", "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "RPB_T_Parsnip": { "Id": "RPB_T_Parsnip", "Trigger": "DayEnding", "Condition": "PLAYER_SPECIAL_ORDER_COMPLETE Current RPB_Parsnip", "HostOnly": false, "Action": "AddMail Current PrizeTicketFromChenXiaoMing now" }, "RPB_T_RewardMailRemove": { "Id": "RPB_T_RewardMailRemove", "Trigger": "DayEnding", "Condition": "!PLAYER_SPECIAL_ORDER_COMPLETE Current RPB_Parsnip", "HostOnly": false, "Action": "RemoveMail Current PrizeTicketFromChenXiaoMing received" } } } ] }

tight rivet
#

Hm. It's weird seeing modded added items that once collected don't show up in the collection tab.. 🤔

teal bridge
#

I decline to join the invitation to self-deprecation competition. My standards for modding may be somewhat more lax than professional standards but I still consider most of it to be above-decent.

blissful saddle
#

for what I read, reflection is about a code being able to look at itself and update itself

#

would it be better to transform the CP part of the mod into an Edit Assets c# one?

lucid iron
#

can i ban artifact spots from an Outdoor location

#

i already have ArtifactSpots ArtifactSpots: []

uncut viper
next plaza
next plaza
blissful saddle
#

Me reading myself to reproduce what Ichor did on his code:

rancid temple
#

Can you change it to TreatAsOutdoors instead?

lucid iron
#

i want it to rain there

rancid temple
#

Artifact spots are built from the individual locations entries and the default location entry isn't it?

fast urchin
rancid temple
#

I guess you could patch the default location empty while in that location lol

tiny zealot
rancid temple
#

Or actually, I guess that happens likely at day start or day before

lucid iron
#

i think ill just live with the spots blobcatgooglyblep

teal bridge
rancid temple
#

Yeah, I think you'd have to jump pretty far down the rabbit hole to stop them lol

#

Might be easier to create fake rain at the location

blissful saddle
lucid iron
#

i suppose i could just revert making all this sand diggable

#

then spots will only spawn in planters which is fine

blissful saddle
#

also I am glad you credited the mastermind behind that one in the comments

next plaza
calm nebula
#

Someone needs to take the mickey out of me before I grow an ego

teal bridge
#

Engineers are usually a confident bunch. You kind of have to be when literal lives are at stake.

velvet narwhal
#

(chu were you trying to avoid c# entirely? if not, what about the public bool IsRainingHere() woopsDerp1 )

lucid iron
#

nou

rancid temple
#

Does that make it rain though?

lucid iron
#

im not avoiding C# entirely

#

but i am avoiding anything that's too niche for my map framework lol

#

stopping artifact spots is really not it's job blobcatgooglyblep

brittle pasture
teal bridge
#

I can no longer read the phrase "make it rain" without visualizing the cash cannon.

lucid iron
#

hm

#

what if i put a big light on this map

#

it'll be great

rancid temple
#

My map framework is specifically for whatever niche bullshit I even kind of want lmao

velvet narwhal
#

SDVpufferthink does locationcontext weatherconditions work even on indoor maps

lucid iron
#

well i made it Outdoors T already

#

so it rains and stuff

#

i like how it looks

#

in theory it should get slapped weather mods too

hard latch
#

Does anyone here have experience with the quickquestion command during eventing? The text beforehand works fine, but it keeps breaking once it gets to the quickquestion section

rancid temple
#

Is there any tile data that blocks artifacts?

velvet narwhal
#

but also

#

!json

ocean sailBOT
#

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

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

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

hard latch
velvet narwhal
#

(tbf i made this, last week?)

#

time is a construct, i don't know her

next plaza
#

One day, we will have Yarn Events, and the confusing era of quickQuestion & co. will be over

#

(For those who don't mind an extra dependency anyways)

cinder goblet
#

Do I use the change function for changing dialogue with ContentPatcher?

velvet narwhal
blissful saddle
#

anything that you are chaning with CP you need to put in Changes, yeap

velvet narwhal
#

(you only need 1 per json fyi)

fathom hound
#

First time making a C# mod so I'm sorry if I'm slow atm... but I came up with this and so far the custom weapons aren't showing in the game, and I tried a few things and none of them has been working so far, any help is so greatly appreciated (first is .csproj second is modentry.cs)

next plaza
fathom hound
#

oh, sorry, i thought the mod loader thing was automatic

next plaza
#

You can embed a CP mod inside your C# mod with mod build config

#

Well, not truly embed

velvet narwhal
next plaza
#

In your IDE it will be

#

But in the mods folder it'll be a separate mod

fathom hound
#

thank you casey!

rancid temple
#

Also, it doesn't look like you built that C# mod, which I'm guessing is why you haven't seen SMAPI explode in red

fathom hound
#

im gonna get flamed but ive been using AI to help SDVpetcatsad

rancid temple
#

May as well not make the mod lmao

next surge
#

I mean... using AI to learn isnt' a bad way to go

#

Seeing how the AI builds and going from there.

brittle pasture
#

yes it is

next plaza
next surge
#

it's like referencing other mod authers.

brittle pasture
#

it is a bad way

velvet narwhal
#

stardew is highly specialized, ai will not help you

next surge
#

I would look at other mod author's work first though.

blissful saddle
next plaza
#

Yeah, AI for learning is pretty bad since you don't know how to spot when it's wrong

uncut viper
#

using AI is absolutely a terrible way to learn

#

the AI doesnt build. the AI guesses

velvet narwhal
#

it will tell you 2+2 = window

next surge
#

I mostly use AI for grunt work, myself

#

"Parse this data in this format"

rancid temple
#

AI doesn't have enough targeted source SDV modding to accurately create mods for it

uncut viper
#

its also likely that eventually you will not be able to discuss or share your mod in here should it use AI to create it

velvet narwhal
#

and we will obviously not feed it sdv modding unless it's against our own permissions

next plaza
# uncut viper the AI doesnt build. the AI guesses

Literally, LLMs like what most people call AI today are statistical models that come up with the next word based on what's most probable based on the previous words, using training data as a reference

rancid temple
#

I think discuss was fine, you just can't promote it right?

next plaza
#

"reference" used very loosely here

rancid temple
#

If it's got any AI generated content though it's like fully out

uncut viper
#

you can discuss the concept of mods using AI, but you cannot link to, share, or promote mods that use it

rancid temple
#

Ah, well then

#

That's also fine by me lmao

fathom hound
#

does this count lol

uncut viper
#

there is a draft rule about it in the pins in this channel

fathom hound
#

thanks ill look into it

blissful saddle
#

lmao

teal bridge
#

Nah, that's just getting information, not using the LLM to generate code.

uncut viper
#

thats also all completely wrong in the context of harmony

fathom hound
#

welp

#

i read the wiki afterwards anyway

rancid temple
#

Non-generative and also non-helpful lmfao

teal bridge
#

(and yeah, I didn't say it was correct or useful information but it's not breaking any rule)

rancid temple
#

Perhaps non-generative, there's a possibility it's got some straight up lies in there

#

That would require fact checking it though and that sounds like free work

velvet narwhal
#

I talked nasty about ai and they shut off my internet ig /lh SMCKekLmaoDog

blissful saddle
#

AI is good to generate code and text IF you know before hand what you expect and are able to instantaneously validate their answer

uncut viper
#

to be clear, asking AI about how to do things, from a (proposed) server rule standpoint, is fine, so long as you write your own code after. using it to generate code is not. also posting screenshots of your conversations with AI would not be allowed either

next surge
#

hah

rancid temple
#

24 seems low lmao

whole raptor
uncut viper
#

using it to generate substantially ai-generated code* (excluding things like having the AI finish the syntax of a for loop for you by autocompleting "i < 6; i++" or whatever)

velvet narwhal
#

I don't think autocomplete/intellisense is considered ai but that requires understanding if the auto is correct

cinder goblet
next plaza
uncut viper
uncut viper
teal bridge
#

Personally, rules aside, I'd say if you can use GPT to generate code that actually works and does something useful, all the power to ya, but 9 times out of 10 it's going to be a pile of trash.

blissful saddle
#

it says to CP to open yours instead of the target one when requested

whole raptor
tiny zealot
#

at last! finally feeling like my danged locations are working (until i find the other stuff i overlooked, lmao). thanks to casey and everyone else for your help!

blissful saddle
#

and I thank you Ichor for the help! my c# mod works now!

uncut viper
#

it should also be reiterated that these AI rules are still, afaik, not actually in effect and are just drafted. so whatever you're doing right now is, yknow, whatever. just be aware of it in case you plan on talking about your mod in a future where the rule is enacted

fathom hound
teal bridge
#

Yep, that's the usual result.

cinder goblet
uncut viper
teal bridge
#

GPT is automated bullshit, excellent at producing words that sound very much like information to those who don't already understand it, and are completely wrong to those who do.

blissful saddle
#

Me using a thirdhand solution

calm nebula
#

Anyways

[HarmonyPatch(typeof(GameLocation), "onMonsterKilled")]
private static void Postfix(Farmer who, Monster monster, bool killedByBomb)
{
  if (killedByBomb)
      return;

  if (who?.CurrentTool is not MeleeWeapon weapon)
      return;

  if (weapon.QualifiedItemId is "YourFirstId" or "YourSecondId" || weapon.appearance.Value is "YourFirstId" or "YourSecondId")
     // draw sparkles, lol
}
tiny zealot
#

also if anyone is interested, hot reload does work on two instances of the game at once, but i occasionally get weird results

velvet narwhal
#

(am i back? have the ai overlords turned my internet back on?)

next plaza
fathom hound
#

~_~ thanks atra, will cred you pufferheart

calm nebula
#

goes back to playing stupid word game

tiny zealot
blissful saddle
calm nebula
#

it's a fun word game!

next plaza
next plaza
calm nebula
#

(aside: in the vanilla game, if you kill a monster with a bomb, and you're holding meowmere, the sparkles go off.)

#

hey, casey, you think that's bug or feature?

tiny zealot
#

the weirdest result was debug commands. because of... infelicities i don't quite grok, i have to open a separate terminal to pipe in terminal input or else dotnet eats half or more of my keystrokes

quick adder
#

Question about dialog. I tried to add some dialog with questions into festivals and they seem to break? Questions work fine in regular dialog. Google has failed me.

blissful saddle
calm nebula
next plaza
calm nebula
#

a magic at the distance sparkkles

fathom hound
#

moar sparkles!

quick adder
next plaza
calm nebula
tiny zealot
next plaza
#

I wonder if my autocomplete PR would be better/worse/same considering I reimplemented the terminal handling in SMAPI

calm nebula
#

maybe try $y, that's how CA does questions in events

tiny zealot
#

however, this only happened if they were started at the same time (so, reloading after a rude edit or after manually killing)

rancid temple
#

For some reason I thought attributes was the new way lmao

blissful saddle
#

1:30 AM here, I should be connecting myself to recharge heading to bed as the fellow human that I am

calm nebula
#

attributes are newer

blissful saddle
#

tomorrow I come back to my new mod

rancid temple
#

The Harmony site has a really big emphasis on using them with only like a sad side on manual patching so I just assumed

tiny zealot
#

and also if they start at the same time, i often get warnings due to collisions from simultaneous attempts to access the startuppreferences file (and once an error from a similar collision after cancelling out of the LAN menu)

calm nebula
#

they, however, are problematic, assuming android smapi returns, so your guess is as good as mine about the chances of that

next plaza
#

Maybe I'm misremembering

velvet narwhal
#

cause of the rewriter?

blissful saddle
rancid temple
#

Also SMAPI can't rewrite them I thought

next plaza
calm nebula
#

the real issue is that they can't rewrite the type references for ANDROID

#

which is amusing

#

assuming android smapi makes it back

velvet narwhal
#

writes everything in annotations to deter android smapi

calm nebula
#

but hey, I'm retired so 😛

#

I get to enjoy not deal with androids

rancid temple
#

I guess it depends on how much rewriting it's doing. I would hate for my patch to stop working because of something tiny

next plaza
tiny zealot
#

speaking of my crimes from earlier, implementing a reflection monstrosity for applying my patches to avoid using harmony annotations has to count

blissful saddle
#

I like the harmony.patch(original:<method>,postfix/prefix) thing

uncut viper
next plaza
velvet narwhal
#

where's the quote, did i quote it

uncut viper
rancid temple
#

That's true. focustense had it rewrite something really poorly the other day right?

tiny zealot
#
            /*
             * Apply Harmony patches by getting all the methods in Patcher
             * and going feral with reflection on them.
             * Was this a good idea, since the annotations feature exists? No.
             * But did it save me a lot of work? Also no.
             */```
teal bridge
next plaza
teal bridge
rancid temple
#

Ah

tiny zealot
teal bridge
#

Reflection's just a tool; use it, don't use it, whatever. Using it to pry into another module's internals isn't always the best idea, but that's not a Reflection issue, there are other ways to do that too (like Publicizer/IgnoreAccessChecks).

#

It's definitely not "crimes".

calm nebula
tiny zealot
next plaza
#

writes a source generator so I can use my annotations but still have the no overhead of no annotations

#

...That could be really good for avoiding the "one patch fails and the rest don't apply" problem

lucid iron
#

are annotations reflection

#

or do u mean like, they work by reflection

teal bridge
#

Harmony annotations? Or any attributes?

next plaza
#

Not themselves, but you usuaully need it to use them

lucid iron
#

harmony annotations yea

next plaza
#

(I'm speaking in the general case)

#

Ah

teal bridge
#

Yeah, GetCustomAttributes is reflection.

next plaza
#

Yeah Harmony collects all the uses of the annotation with reflection

teal bridge
#

Just putting the attribute there... no.

lucid iron
#

hm i didnt think to put the harmony.Patch part on the source gen i did for transpilers

#

partly cus the attribute was getting really long

teal bridge
#

But what Harmony actually does is way more expensive and risky than any of the reflection involved in reading its attributes.

#

So to the extent that its attributes involve reflection, it's... meh.

faint ingot
#

Made a property change here and I think it might be drawing day/night tiles from the wrong tilesheet? Is there a way to specify the tilesheet name?

#

Looks correct in tiled but just shows up black in game

lucid iron
#

i think i have to like

#

do a second set of attribute + generation on the method

calm nebula
#

can't like change the tilesheet

rancid temple
#

I think you have to use the index in relation to every tile for all the sheets right?

#

I thought there was an easier way to get this but it has been absolutely forever since I messed with it

shut grove
#

I just had the unfortunate displeasure of finding out that Tiled, if it has a map open, will instead of giving a "this file is in use by a program" error, gives a "you need permission from yourself to delete this" error in windows.

calm nebula
shut grove
#

I apparently had a map from SVE open, to ensure compatability, and couldn't delete the SVE folder to update the mod.

rancid temple
#

Oh, yeah it should just be the index of the sheet for the tile you indicate hm

calm nebula
#

yeah, but no change tilesheet XD

rancid temple
#

Right so you can't change between tilesheets

velvet narwhal
#

you can conditionally patch the og tilesheet

faint ingot
#

OK I must be doing something wrong then because I am using the same sheet that I want the day/night tiles from

velvet narwhal
#

if you wanted custom light fixtures/windows

rancid temple
#

You can get the tilesheet index from Tiled if you have the correct layer selected and hover over the tile you want, at the bottom where it shows coordinates you'll have the index in []

velvet narwhal
#

....TIL....i've literally just been clicking on the tilesheet itself and using the 'ID' from there KEK

rancid temple
#

Yeah, you can get the info in many places lol

old edge
#

My current issue at least it doesn't crash anymore tho.

next plaza
fathom hound
fathom hound
next plaza
#

Basically whatever the dll output of the project is

#

Like, for SpaceCore, it's SpaceCore.dll

fathom hound
#

Okay thank you!

latent mauve
#

Hooray, full test of Satoru Gojo NPC is COMPLETE

#

everything works, just gotta write up the changelog and post it later.

velvet narwhal
#

Changelog: "everything"

lucid iron
#

oh i thought there was one

#

is this like, commission to make it less cursed

velvet narwhal
#

yeah the author gave lily permission to fix

latent mauve
#

^

lucid iron
#

you're a saint

velvet narwhal
#

watches the numbers on that mod skyrocket even further

lucid iron
#

oh yea earlier today i thought of how to steal the manorhouse tile actions

velvet narwhal
#

i thought roku did that

lucid iron
#

did he i forgor

rancid temple
#

I think I have them all now

latent mauve
#

I've been using EMA to do that since he dropped the 1.6.9 update, yeah.

lucid iron
#

cool sleep

rancid temple
#

I am interested in hearing your method, because I just redid all the behavior lmao

latent mauve
#

I need to upload the update of Useable Community center too... >_>

lucid iron
#

i was inspired but the game's weird getfarm().shipitem business for the island shipping bin lol

#

so we obtain the instance of ManorHouse and redirect action to it

rancid temple
#

I tried that, but the question answers redirect to your current location

lucid iron
#

im glad you did

rancid temple
#

And since your current location doesn't have those if you're not on that map, it fails lol

lucid iron
#

was curious to know whether it'd work

#

oh so u need to redirect both

rancid temple
#

I was so hopeful for that, because the dialogue will open, but as soon as you answer it just goes away lol

lucid iron
#

like do tile action for the performAction and prefix answerDialogueAction?

fathom hound
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 0 C# mods and 0 content packs.

fathom hound
#

why was it pulling from data big craftables

rancid temple
#

I'm actually really uncertain how it goes from you giving an answer to sending that answer to your current location looking for a match

#

The way I ended up doing it was with very direct question dialogues that specifically call my desired methods, rather than just answering to the location in general

lucid iron
#

hm is there a GSQ on the lost and found

faint ingot
#

I think I just realized my DayTiles / NightTiles problem... #1 it looks like tiles with animations are not supported for swapping in, and #2... it was raining so they were showing the night tiles during the day in my test

#

Now I try something janky and have the animated tiles always on in the background, and a layer above them that is clear when it's time for NightTiles

rancid temple
lucid iron
#

i was thinking i would have a box (tile on building layer) that appear only if there's stuff in lost and found

#

though hm idk how to condition a map patch on a GSQ either kyuuchan_run

#

besides some round about trigger action mailflag business

next plaza
#

.choose go to bed, be irresponsible

patent lanceBOT
#

Choose result: be irresponsible

next plaza
#

sighs

rancid temple
#

How is go to bed not the responsible choice?

next plaza
#

It is

#

Hence the other one being "be irresponsible"

rancid temple
#

Oh I misread lmao

next plaza
#

Oh and I just remembered

rancid temple
#

I thought the choices were go to bed or be responsible lmao

next plaza
#

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

patent lanceBOT
#

for a moment there I was gonna say no, absolutely not. but kittycatcasey? yeah, yeah i will. (#6359006) (20h | <t:1731547238>)

faint ingot
rancid temple
#

Lost and found is considered to have items in it when Farmer.team.returnedDonations.Count > 0, which the game apparently does draw something different just hardcoded if there are things in the lost and found lol

lucid iron
#

spacecore anim seem to work correct in other locale hm

#

the code never looked wrong so i wonder if that person resolved their problem

quick adder
next plaza
#

Wait, are spacecore animations broken?

#

I got a PR that fixed them in other languages

#

I forgot to test it though, maybe it's not working in english now or something?

lucid iron
#

it is working fine

#

around 1 month ago someone mentioned it wasnt working for them, so it was in back of my mind to check

lucid iron
#

but yea it seems alright in all languages

rancid temple
#

I did not copy this question mark functionality and now I'm wondering if I should lmao

#

I have never actually used the lost and found before testing it for my changes lol

golden basin
#

so anyone else dealing with nexus not loading?

rancid temple
#

Nexus has been KIA for me the last 3 or 4 nights in a row

#

Just dead for hours

golden basin
#

jeez okay yee its not really loading for me currently

next plaza
#

It's been on and off for me a lot lately

golden basin
#

i needed to update a mod fix to fix this crash

olive fulcrum
#

🤔
Question
Is there any way to add a new "name-able" thing, seamlessly, without just having it be a GMCM config option like some mods tend to do?
Example: Someone asks you to name something, the naming screen comes up, then that's the name NPCs will refer to it as? I know you can use the GMCM and certain content patcher tokens for customizable names/terms and such

next plaza
#

Not with CP

#

With C# you'd probably need to trigger NamingMenu and use the value from that

olive fulcrum
#

Ahhh, I figured

fathom hound
#

how many files am i supposed to have with a C# mod besides the manifest? i have this as ModEntry.cs but I don't have a .dll folder like i'm supposed to ~_~'

lucid iron
#

you can have as many as you want

#

or just 1 big file

tender bloom
#

Did you compile?

#

The DLL gets made when you compile

next plaza
#

Welp, I really shouldn't be too responsible, going to bed after all

#

It's already later than I normally go to bed at on work nights

fathom hound
rancid temple
#

Your actual project (the .csproject and all your .cs files) should be in a separate location than your Mods folder, when you build the project in VS ModBuildConfig will place the compiled project into Mods in its own folder

olive fulcrum
#

Or else your dreams will be upset with you

rancid temple
#

Which will usually consist of your .dll, manifest.json and config.json if you have a config

#

And you know, anything else depending on what you're actually doing

fathom hound
#

ty ^^

rancid temple
#

When you're closer to being ready to release, assuming you're gonna distribute, when you build there's also a zipped up version of your mod made for you, so no need to go through the trouble of doing all that

#

Though you'll need to make sure your mod is set up properly to include your CP stuff if you're still doing that separate

fathom hound
#

still trying to figure out how to reference this modbuildconfig package in VS code

lucid iron
#

If you are windows consider just using VS?

#

It's got more bells & whistles

fathom hound
#

I have that too, for sure

rancid temple
#

If you're on Linux, Rider is free for non-commercial use

lucid iron
#

For vscode you want the C# dev kit extension

#

After getting that there should be a panel called solution Explorer

#

Right click on any project in there, then u can add nuget

fathom hound
#

ty!

rancid temple
#

I love VSC for json but I wouldn't want to try to do C# in it lol

fathom hound
#

I see

rancid temple
#

Rider having a free option does eliminate one of my biggest blocks for switching to Linux... ugh

lucid iron
#

I just have vague dislike of fancy things ok

#

Since I just build from cli anyways

rancid temple
#

Anyways, I've put off bed long enough looking at my own bad code. Good luck, have fun

fathom hound
#

Goodnight

fathom hound
#

this is so frustrating argh, feel like i just cant learn this ~_~

brave fable
#

oh yeah programming is a bit like that for a while

fathom hound
#

i have all these red squigglies and idk why

#

;-;

brave fable
#

is there any explanation for the sourcePhrase param in ItemQueryContext added in 1.6.14?

teal bridge
#

You can learn it, but you tend to need a knowledge base before you can do anything really useful.

#

If you just tried to dive right into a mod without knowing any C#, it might be a good idea to back off a bit and read some of the tutorials.

fathom hound
#

ive been reading tutorials for a bit but i dont think im fully absorbing them

brave fable
#

programming tutorials are a bit like that

teal bridge
#

Reading tutorials on C#, or on C# Stardew mods?

brave fable
#

helps to cross-reference with different mods' source code if you can find simple git repositories to use as examples, and search keywords and patterns as you go

fathom hound
#

Harmony patching in particular

teal bridge
#

Yeah, that is really not the place to start.

ivory plume
# brave fable is there any explanation for the `sourcePhrase` param in `ItemQueryContext` adde...

It's explained a bit in the code docs:

/// <summary>If set, a human-readable phrase which describes what's loading the item query.</summary>
/// <remarks>This identifies what's loading the item query in a hierarchical human-readable way, like <c>"building 'Mill' > item conversion rule 'Default'"</c>. This should be formatted for use within a log message like <c>"Item spawn fields for {0} produced a null item"</c>.</remarks>
public string SourcePhrase { get; set; }

Or more info from the commit message:

add item query 'source phrase' to allow troubleshooting item query log messages

For example, this changes vague messages like this:
> Item spawn fields with ID 'Default' produced a null or empty item ID.

With something much more troubleshootable like this:
> Item spawn fields for machine '(BC)163' > output rule 'Cheese' > trigger 'ItemPlacedInMachine' > entry 'Default' produced a null or empty item ID.

To minimize extra allocations, the base game only sets the context at the point where the context was previously constructed (e.g. "machine '(BC)163' > output rules" in the example above).
brave fable
#

oh, so a sort of CP LogName equivalent for queries

#

thanks for sharing the commit, helps explain it a lot SDVpufferthumbsup

ivory plume
#

Yep, exactly like that (and uses the same approach for nested item query contexts).

brave fable
#

suppose it's good practice to include our mod id in the phrase?

ivory plume
#

Usually it would be the path to that field in the asset, so it would include the mod ID if applicable (e.g. via the ID of the entry).

brave fable
#

in this case it's not exactly in an asset, rather a query on a location instance from a tile action, which is used to set an item:

ItemQueryContext context = new(
    location: this,
    player: Game1.MasterPlayer,
    random: null,
    sourcePhrase: $"{this.Name} > {ModEntry.ModData.TileActionCrowTrade} > {nameof(this.CrowTradeItem)}");

which would resolve to "Custom_blueberry_Hikawa_Shrine > Custom_blueberry_Hikawa_CrowTrade > CrowTradeItem"
(yep it still uses Custom_ for ids since this project hasnt changed in forever)

ivory plume
#

In that case I'd do something like "location '{this.Name}' > tile action '{ModEntry.ModData.TileActionCrowTrade}' > {nameof(this.CrowTradeItem)}" for clarity, but otherwise that looks fine.

#

Essentially the goal of sourcePhrase is just so that when an error is logged, it's possible to find what's actually causing it.

brave fable
#

perfect, thanks SDVpufferthumbsup hope that's knocked out a few FAQs for the channel hahah

wheat finch
#

Was testing the festival locations for vanilla for my hat mouse mod and noticed that my custom hats added via JA (was planning to convert to CP for 1.6 but figured I'd test locations in Y2 first) are not showing up for sale in the stalls. The other hats I used STF to assign to the shop are there just fine. No errors in log. https://smapi.io/log/425af02ee2a64b158655d675c89f7b68

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on macOS Unix 12.7.6, with 17 C# mods and 7 content packs.

shut bane
#

Oof. Finally implemented what I think is a compatibility patch for my mod to work with another, and this happens

#

This is on Stardew 1.6.13 with SMAPI 4.1.6 on GOG, by the way

thorny tiger
shut bane
#

My steam install is up to date

unique sigil
#

yes, spacecore issue is fixed along with the SMAPI update to 4.1.7

latent mauve
#

The latest Spacecore (1.26.2) works just fine on SMAPI 4.1.7

shut bane
#

Baller, ty ty

inner harbor
#

Does it rain on tempmaps?

old edge
latent mauve
#

Question: Do custom NPC spouses not do chores by default, or have I just been stupidly unlucky with the rolls while testing?

velvet narwhal
#

so, can't be raining, seeded random above 0.4, porch spot not blocked, and not krobus KEK

latent mauve
#

So... Just very unlucky then? I have tested three different save files with Satoru as the spouse for two years and not ONCE has this man done anything around the farm to help. XD

rancid temple
#

Sleep eludes me. Lore accurate Satoru

latent mauve
#

If only I could figure out how to schedule him to return home without immediately sleeping

hard fern
#

SDVpuffersweats i have only heard bad things about this "satoru"

rancid temple
#

He's a character from a supernatural action anime/manga, it's inevitable that he'd be kinda just meh

#

He has a pretty rabid fanbase (just look at the download numbers for the mod lmao)

latent mauve
#

Yeahhh, a little worried about that with this update, not gonna lie

rancid temple
#

Send to author, cut ties immediately

latent mauve
#

I will cope, they added me to the mod page, so I am already doomed LOL

#

So many notifications

rancid temple
shut bane
thorny tiger
#

unfortunately dalionheart isn't compatible with new stardew versions at all (likely 1.6.9 and up)

#

I checked the mod page and there isn't a new update available

#

the other mod won't be useable until dalionheart is updated

shut bane
#

Which is a bit of a shame, after 70% of the work I just did (I don't necessarily succeed at programming, I muddle through it lol)

lone arrow
#

can someone help me with a content patcher mod I'm making? it feels like no matter what I do it just will not work

shut bane
#

What's the issue?

lone arrow
#

I made a recolor and it just will not show up in game

#

can I send the zip?

latent mauve
#

Are you testing with other mods or just content patcher and yours?

lone arrow
#

I have other mods, I've tried both with them and without them

latent mauve
#

If it's not an isolated test, you might need to do a patch summary of whatever area isn't updating to check the order of what's being applied

rancid temple
#

Did you make sure your Dependencies are set properly for your mod?

brave fable
#

do also share your content file(s) at https://json.smapi.io and send a link to the parsed page here for us to look-over

latent mauve
#

But if you can put your code in the JSON parser and show your mod folders's structure as far as where the assets are, that should be enough to troubleshoot.

#

As well as anything popping up in your smapi log, just in case there's an error loading the assets

brave fable
#

does anyone have an example csproj using IgnoreModFilePaths btw?

lone arrow
ocean sailBOT
#

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

lone arrow
#

haven't downloaded the latest smapi update, I only just got the notice in that test

#

let me update and try again

brave fable
#

that log does show your mod's loaded at least, but since it doesn't include a patch summary from the smapi console after loading into the Mountain map (or Tent interior if the recolour affects it) it's hard to say where it went wrong

brave fable
#

"Target": "Maps/spring_outdoorTilesheet" should be:
"Target": "Maps/spring_outdoorsTileSheet"
SDVpufferthumbsup

#

otherwise looks fine at a glance!

lone arrow
#

...so the entire issue was that I forgot to capitalize the s in sheet?

brave fable
#

well there's outdoors as well

#

but mostly yes haha

rancid temple
#

Plurals will get you

lone arrow
#

I feel so dumb

brave fable
#

best copy asset names from the game files SDVpufferthumbsup

#

not at all, typos happen (a lot)

rancid temple
#

You can rename them, copy the name and don't actually change it

#

(F2 > Ctrl + C > Esc if on Windows, dunno about others)

#

I dunno if they actually are, but typos really do feel like the most common mistake

lucid mulch
lone arrow
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 3 C# mods and 1 content packs.

lone arrow
#

what does it mean it doesn't exist?

brave fable
#

is your custom sprite in an assets folder? if so, use "FromFile": "assets/LinusTentRecolor.png"

lone arrow
#

oh

brave fable
#

as it stands now, it's looking for "Stardew Valley/Mods/[CP] My Cool Mod/LinusTentRecolor.png"

lucid mulch
#

is LinusTentRecolor.png in the same folder as content.json?

lone arrow
#

yeah it's in assets, just fixed the typo... again...

#

I can create pixel art but I can't code for crap -_-

brave fable
#

no different to dropping a pixel on the wrong spot, just fix it up and carry on SDVpufferthumbsup

lone arrow
#

thanks <3

rancid temple
#

All things considered, these are very small mistakes lol

brave fable
#

luckily the game only shows the end product, not the mess we make along the way lol

lone arrow
#

It finally works!

brave fable
#

important: shears are the only tool whose description doesn't end in a period

woeful lintel
#

literally unplayable

rancid temple
#

Think I could get the content smith badge if I submitted that as a mod

silk flicker
#

Do you guys know a mod to see luck a day in advance ?

calm nebula
devout otter
#

How do I make the glow-inside-the-lamp effect at night like this?

#

Do I just make a "lamp turned on" texture and patch it OnTimeChange?

foggy kiln
#

In the Paths layer of the map, there are illuminated lights, and the image is in the shape of a light bulb.

old edge
#

I did not falter on the lava code. Finally showing for players in split screen. But now 2nd player watering can hardening logic mileage is negated upon switching locations. 1st player works fine. Tho.

devout otter
#

Like Clint's house has two versions of the a lamp. One that's turned on and one that's turned off:

#

So I wonder if just patch the right tile over the left tile with OnTimeChange.

lucid iron
#

Night tiles?