#making-mods-general

1 messages · Page 127 of 1

ocean sailBOT
#

🪨 The item ID for Stone is 390.

coarse lance
#

I'm going to note my thanks for the help I got with my questions - it's working now! You do indeed need to put question replies in the specific person's dialogue!

tiny zealot
#

glad to be of help

rancid musk
#

(Delicious rock. Makes the best fried eggs.)

eternal mortar
#

whats path tile index 34? Cause im getting an error for that

#

the error is: [game] Location 'StarKOdoll_MMITown' ignored path tile index 34 (spawn tree) at position Static Tile Index=34 BlendMode=Alpha because the tile has no 'SpawnTree' tile property. Im guessing i forgot to place a path tile? not sure though, cause i spawned in many trees without a path tile (Please ping!)

hard fern
#

i think it's the tile it's being placed on

rancid musk
#

Oh, the DP report came out today. ... I have zero idea how I got so much but I won't complain

desert pagoda
#

Yall publish your mods? nice

brittle pasture
#

I think they changed the DP algo again some time ago, which gives most people more than back in Aug/Sep?

eternal mortar
rancid musk
#

If my DP keeps being so weirdly high I'll be able to buy a new laptop in four more months (well, seven more months but you know).

hard fern
fervent horizon
eternal mortar
hard fern
#

ah

blissful panther
median hull
#

Since 1.6 all music tracks fade in when they start to play, i was wondering where that was configured and if there was a way to bypass it

uncut viper
#

i dont think its that music tracks fade in i think the music is just made with a fade in

blissful panther
#

Should be easy to confirm which it is, at least!

teal bridge
#

(still not opting into DP)

lucid iron
#

I switched dp to donations (which nexus presumably use for tax blobcatgooglyblep)

#

Number go up

brittle pasture
#

also no DP gang. I'm sure EMC would have done gangbusters, but eh

uncut viper
#

i have DP on but havent actually done anything with it yet. i like number go up though. CMCT basically matched my books mods lifetime downloads in November alone so my report was like twice as large as the previous largest... which was october and also because of CMCT lol

lucid iron
#

Rasmodia is powerful

uncut viper
#

yeah thats pretty much the whole reason

lucid iron
#

It is the exact kind of mod that cmct is great for bolbclose

#

A mod for other mods

median hull
uncut viper
#

well its been that way since 1.6 at the very least. i suppose i cant really say about anything before then

faint ingot
#

So I was tinkering with my NPC schedule and trying to troubleshoot why the schedule didn't seem to be working. I decided to make sure mods were up to date. After updating SMAPI my NPCs don't load at all. Am I doing something wrong in my mod that made this happen?https://smapi.io/log/8f1aec90abab48ea85a61099771fe3d4

ocean sailBOT
#

Log Info: SMAPI 4.1.8 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 6 C# mods and 3 content packs.

tiny zealot
#

i'm also no DP gang, but also my mods don't do numbers so it's academic

calm nebula
#

I think it's weird I still get dp lol

#

People shouldn't be downloading my mods

#

They don't work

rotund elm
#

So there is no possible way to add functionality to rings created with CP without the use of C#

silver sand
#

did CA change where the farmer profile bg's are stored?

uncut viper
brittle ledge
#

Jorts and Jean is my only "monetized" mod because all theirs goes to charity

#

(but I have to do it manually so uh I should get on that)

teal bridge
#

Could probably get a decent chunk from DP (I have the "lifetime" Premium already) but it skews incentives too much.

blissful panther
#

Nexus don't have the charity you want, I guess?

lucid iron
#

I'm psure I would get more money to charity if I got a part time job at mcdonalds instead of making mods LilyDerp

#

So it is just numbers go up

calm nebula
#

Mom says I should try selling my knitting lol

#

That would be hilariously little money for the hours required....but would likely still beat dp

lucid iron
#

atravita-etsy

teal bridge
#

And that's the reason not to do DP. Not because the number is low, but because it invokes that entire process of solving the equation, constantly.

#

If I want to think about "what's best for the shareholders" then I'll just do more corporate office drone work.

final arch
teal bridge
#

I'm guessing that as people update to 1.6.9... er, that is 1.6.10, no I mean 1.6.14, they maybe start to take a look at mods again after a lot of their old ones die.

#

I definitely did see an uptick in overall downloads.

rancid musk
#

September was my worst month for DP since April, lol

#

Well that's working too. csharp api.CheckCanCraft += evt => { if (evt.Recipe.Ingredients != null && evt.Recipe.Ingredients.Length > 2) evt.Fail("@C{red}You only have two hands. How are you gonna carry more ingredients?"); };

brittle ledge
brittle ledge
#

No shade on those that do (but please do not monetize all your hobbies, for the sake of your mental health)

blissful panther
#

Yeah, if you're able to monetise and not focus on or pay attention to it (definitely how I do it), it's an ideal situation!

#

And maybe Nexus would consider adding the charity? Might be worth asking!

latent mauve
#

I would feel bad monetizing mine because nothing I've released so far really does much in the way of non-base game or very lightly edited asssets.

teal bridge
latent mauve
#

Feels like I haven't earned it, you know?

calm nebula
#

(Converslry, thr worst of both worlds is when you have responsibility and also aren't monetized worth shit)

blissful panther
latent mauve
#

(I have been known to undervalue my work, but the line is hard to find)

teal bridge
#

Calling it mental health and such is a bit dramatic for me (you do what's best for yours, of course), I just don't want to be lulled into the dull economic calculus because it takes the fun away.

fervent horizon
#

I made Minecraft Marketplace Mods for the last five years, and I had to take a big step back because the actual game had become a job, which was not what I had originally wanted

tender bloom
#

I wonder how open Nexus is to adding new charities

teal bridge
tender bloom
#

There's some relatively specific causes I'd like to support but the Nexus list is pretty plain

brittle ledge
tender bloom
#

Like I would send my pride mod DP to trevor project for example

rancid musk
#

On a related note, I want to say that I'm glad people aren't super negative about DP and talking about it. I know in some communities there'd be people breathing fire like "you accepted money for a hobby?"

brittle ledge
latent mauve
rancid temple
#

DP isn't the same as donations though

latent mauve
#

Yeah, that's my sticking point, honestly

#

I'm so used to thinking about in art terms, which isn't actually how DP works

rancid temple
#

DP is paid by Nexus as an incentive to keep modding communities alive

teal bridge
#

People who feel as though they need the money will take it, there's no sense in starting a holy war about that at the individual level. (At the platform level is a whole other story, though.)

brittle ledge
#

I don't think you have to have a certain value of effort/quality/content for your mod to have value, though. I personally try not to frame my view of my mods by how much I think I'm contributing to the mod sphere.

teal bridge
#

(case in point: No More Lag)

brittle ledge
#

Gauging your work by outside factors almost always ends in disappointment SDVpuffersquee

latent mauve
#

I'm just so used to the legal rigaramole of "you didn't make this asset 100% from scratch and it's unsure if it's enough of a derivative work, so you can't profit from it" that I don't even try if it's not 100% my art involved, and I forget about the code part since I'm not used to coding projects for money.

rancid temple
#

Re: donations though, I have been too poor for my entire life to ever turn down when people wanna give me money, I don't need a reason to accept it lmao

#

The only outside perspective I want on my mods is if they're broken and I haven't noticed/fixed it yet and if a related feature could be added lol

teal bridge
#

Outside scrutiny - "market forces" - are important for the continued creation of genuinely useful work. Whether the Nexus DP system actually meets that criteria is highly debatable.

rancid musk
brittle ledge
#

Anyway I will forever bang the drum that you should have at least one hobby that's not monetized at all, but mods doesn't have to be that one. CA is fine with it, so should the rest of the community SDVpufferheart

teal bridge
#

I might very well "monetize" if monetizing meant selling a product in the traditional way, setting a price and seeing who's interested. But that's not even remotely how the mod "market" works.

#

And of course, I'd probably still split the time between those I make for myself/personal reasons and those intended for "sale". It's all hilariously blue-sky speculative though.

ornate locust
#

as someone who is partly disabled and takes care of my grandmother, the DP is nice, makes me feel like I'm actually doing something instead of that nagging "I am a drain on almost everyone I love" thing. The number doesn't matter so much. But actually setting prices makes me anxious.

#

I have done commissions, I just never feel like I'm good enough at it to ask decent prices, making myself do it is a fight. SDVpufferdizzy

teal bridge
#

Yes, but while YMMV, that's the point I'm making; the products that people will snap up for both zero monetary cost and zero risk are very different from those they'd take economic or personal risks for.

#

Designing for profit in an ecosystem where the "customer" is making decisions with an everything-is-free mentality is just hilariously distorted and broken.

#

You can thank a generation of "ad-supported" services for these perverse incentives.

brittle ledge
#

So really, skaiPG13 capitalism guiuwutine

ornate locust
#

I believe that's what it is, they're basically saying "your work brings us revenue, mostly ad revenue, here is a portion of it"

#

but if you take it, definitely do not fall into the trap of figuring out the number. Be bad at math, like me, go "ah, number nice" and do not think about it further. That way lies madness

teal bridge
brittle ledge
#

I mean I can say " skaiPG13 all forms of economic exploitation and class warfare" but "capitalism" is a bit more accessible SDVkrobusgiggle

teal bridge
#

So, feudalism then?

pseudo roost
#

Im working on a romanceable NPC: The would be 4th Princess of the Ferngull Royal Family! Hiding out in Pelican Town at the Stardrop Saloon....poorly I might add.

brittle ledge
#

Socialism seems pretty okay.

teal bridge
#

Right on, let's bust out the bread lines comrade

ornate locust
#

days since someone in a Stardew discord has been weird about economic systems: 0

rancid musk
#

@brave fable Hey there! Just letting you know that a Better Crafting update was just released with those new API events I mentioned before. https://github.com/KhloeLeclair/StardewMods/blob/main/BetterCrafting/IBetterCrafting.cs is up to date (and over 2,000 lines now :D) and as a little code example: ```csharp
var stone = api.CreateBaseIngredient("390", 1);
api.ApplySeasoning += evt => {
if (evt.Item is SObject sobj && sobj.Quality == 0 && evt.HasIngredients(stone)) {
sobj.Quality = SObject.bestQuality;
evt.SetUsedLastMessage();
evt.ApplySeasoning(stone);
}
};

api.CheckCanCraft += evt => {
if (evt.Recipe.Ingredients != null && evt.Recipe.Ingredients.Length > 2)
evt.Fail("@C{red}You only have two hands. How are you gonna carry more ingredients?");
};```

teal bridge
#

Also, I just realized I've been reply-pinging a ton of people because the plugin that's supposed to disable auto-ping is broken. So, apologies for that all around.

blissful panther
#

Me: SDVpufferpingowo

ornate locust
#

I'm fine with pings myself

rancid musk
blissful panther
#

...wait what?

rancid temple
#

This is a good knowledge, thank you

blissful panther
#

Holy hell, it actually does.

teal bridge
#

Well, I got the plugin fixed, but that is indeed good to know.

#

I wish Discord would put the indicator itself in a place where you can actually see it.

ornate locust
#

I hang out in 50/50 places where people want and don't want pings, remembering which is which is a whole dang thing

#

I'd kill for some server-specific setting

blissful panther
#

There's definitely a higher percentage of people in this server who don't want pings than I've seen anywhere else.

ornate locust
#

Oh I've been in no-ping entire servers

#

where like maybe two people were fine with pings

teal bridge
#

I just turn them off as a matter of principle. I use replies for context in busy channels, so people know who/what I'm replying to, and don't like them being associated with "really need to get this user's attention".

ornate locust
#

fully about 50/50 on my end

teal bridge
#

Though I'll admit it is kind of annoying when someone constantly reply-pings you over and over again in a channel where you are the only 2 people talking.

#

But... that's really Discord's fault for shitty feature design, not the other individual's fault.

desert pagoda
#

Why does the content patcher documentation go from assuming you know nothing to assuming you are John wick of modding without anything in between

ornate trellis
#

0

#

sorry, that was my cat

desert pagoda
#

Am I missing something t-t

ornate trellis
#

what are you looking for

desert pagoda
#

How does one understand the documentation

ornate locust
#

If you tell us what part of the documentation you are having a problem with, it would be easier to help you with it

tender bloom
#

The CP documentation has some examples you can copy paste

#

and there's also some tutorials on the modding wiki we can point you towards depending on what you're trying to do

desert pagoda
#

Add a door

tender bloom
#

Ah...so you've picked something tricky

desert pagoda
#

Doors are tricky?

tender bloom
#

Let me dig around for what you might need, but the hard parts of adding a door are mostly on the Tiled side

#

Interior doors are tricky

#

Like the door to Pierre's room?

desert pagoda
#

No I just want a door that leads to my custom map.

tender bloom
#

Oh, in that case you want a warp, not a door

#

Sorry, stardew uses some weird terms sometimes

#

But this tutorial should help you out

#

It's a tiny bit out of date but off the top of my head I think things are similar?

desert pagoda
#

I worked up a magic warp but how do you make that door into the map without overwriting the entire map

#

I tried doing the overlay thing but failed horribly

tender bloom
#

You can do a map patch at a specific coordinate

desert pagoda
#

You are a saint thanks!

uneven dagger
#

Hello gurus. When building a C# SMAPI mod, how does one go about getting the localized text?

Example unpacked file for Data\PassiveFestivals:

{
  "NightMarket": {
    ...
    "StartMessage": "[LocalizedText Strings\\Events:BeachNightMarket_NowOpen]",
    ...
  },
  "DesertFestival": {
   ...
    "StartMessage": "[LocalizedText Strings\\1_6_Strings:DesertFestival_NowOpen]",
    ...
  },
  "TroutDerby": {
    ...
    "StartMessage": "[LocalizedText Strings\\1_6_Strings:TroutDerby_NowOpen]",
    ...
  },
  "SquidFest": {
    ...
    "StartMessage": "[LocalizedText Strings\\1_6_Strings:SquidFest_NowOpen]",
    ...
  }
}
uneven dagger
faint ingot
#

How can I check that a player has unlocked the quarry as a precondition for an event?

#

(the event does not actually take place there)

uncut viper
#

check for the ccCraftsRoom mail flag

#

though actually idr if farmhands get that

calm nebula
#

Can't you check hostplayer flags lol?

uncut viper
#

i dont know anything about event preconditions

#

i know you could do that in order to conditionally patch the event into existence

#

but idk about in the precondition itself

uneven dagger
latent mauve
faint ingot
#

so I should mark the event as host only and broadcast it? I don't have much experience with multiplayer

#

Oh I see now just use the Hn check for the precondition for the host flag

#

but I still don't completely get how broadcast works generally, is that only a host player thing or can any player broadcast an event if they are the first to encounter it?

brittle ledge
#

SBVLmaoDog as I should have expected

brave fable
#

these decompile repo invites are getting harder and harder to get SDVpufferpensive

brave fable
shadow pagoda
#

I'm working on a mod that gives the player tasks. I have a task in the top left to get 15 seeds in total. It checks how many the player has in their inventory and then tells the player to get the remaining seeds needed. I would also like this count to update when the player has the item in their cursor. In the first picture, I would like the count to be 1 instead of 15. I was able to get this working for when the player in the inventory menu (second picture) using this line Game1.player.CursorSlotItem, but it seems like each menu has their own script/file/object.

What would those files be for check Pierre's Shop specifically? I know the location name internally is "SeedShop", but idk if that's relevant to what I want to do.

latent mauve
#

If you are looking for Shop name, it is also SeedShop, but it's stock list, open hours, etc., is set in Data/Shops

uncut viper
#

they dont want the shop data, they want the currently held cursor item when you have that shop menu open

latent mauve
#

I don't know anything about the Game Methods, though, this is just the physical location of the data in the unpacked files

uncut viper
#

(i do not know which menu it is specifically)

latent mauve
#

ah, I see

uncut viper
#

it might just be ShopMenu

#

i doubt Pierre has a specific menu just for himself but i cant say with 100% certainly. only like, 90%

lucid iron
#

it should be just shop menu

brave fable
#

yeah you don't want the player value for cursoritem, you want menu.heldItem

rancid temple
#

I do wonder about overriding CursorSlotItem while in a shop, since that usually reflects what you've purchased

lucid iron
#

although i should warn u that if u use gamepad the item goes into inventory immediately

rancid temple
#

It almost seems like what you want instead is to draw a separate thing entirely somewhere

shadow pagoda
shadow pagoda
brave fable
#

as simple as if (Game1.activeClickableMenu is ShopMenu menu) { var item = menu.heldItem; }

shadow pagoda
#

Thanks!

still frost
#

is there a command that can be done to send me the link to the page that will teach how to make a map? its been too long since i did the last one and need the refresher lol

acoustic summit
still frost
#

awesome, tysm

#

o7

proven spindle
#

I think the command is !mapmaking

#

!mapmaking

ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

proven spindle
#

There we go

still frost
#

gotcha, tyty

tardy adder
#

I has question:
When it says that the ShowNextIndexWhenReady stacks with the IncrementMachineParentSheetIndex it means that it will show the next index after ze IncrementMachineParentSheetIndex (if no other shownext ones is true)?

brittle pasture
#

yeah

still frost
#

anyone know the name of the .tmx file of george/evilyn/alex's house? im not seeing anything with any of their names in the maps folder or one with 1 river road(which is apperently the address according to the wiki)

calm nebula
#

joshhouse

still frost
#

OH right i forgot he had another name

#

tyty

tardy adder
# brittle pasture yeah

thanky wasn't sure if I was understanding right since I am better with visuals than words ><

still frost
#

just wanted to say i appreciate all the help from this chat, would have given up on natalie a long time ago without yall 🫡

dense solstice
#

Hi folks! I'm new to Stardew modding, but have learned a TON about making SMAPI mods from the wiki, this chat, and poking around other folks' source code. I have a question now that I am really struggling to find an answer for on my own and I hope someone here is willing and able to help.

#

I'm not sure how best to handle removing or renaming options in config files in new versions of my mod. Say I initially create my mod with a single boolean option called "useBlue" that tells my code whether to use the blue thing or the not-blue thing. Then later down the road I want to add support for a variety of colors, so I would ultimately want to remove the "useBlue" option and replace it with a string option like "selectedColor". Is there a way to have the updated mod code find the old option, update the new option from that old one, then remove the old option from the config file or will my mod need to kinda maintain all my old options for backwards compatibility with old config files for as long as I want an easy update path for players?

lucid iron
#
  1. use an enum
  2. i think read config would just skip the field in this case, if it cant map to type?
#

so u get default value

#

the other possibility is that it throw err which u would just catch PecoWant

dense solstice
#

Wouldn't I have to include the old option as a property on my ModConfig class in order to read the old option from the config file, which would then mean that old option gets written to new config files since it is a property on my ModConfig class?

tiny zealot
#

public bool MyOldOption { private get; set; } = true;

dense solstice
tiny zealot
#

correct. you can choose how long to continue supporting it, so it doesn't have to be forever

#

like at some point you can remove it and just tell people they have to fix it manually or generate a fresh config

dense solstice
#

Perfect! Thank you both!

dense solstice
blissful saddle
#

I just love the fact that GMCM can make drop menu options to strings in configs

dense solstice
#

GMCM is awesome. I especially love that you can support it in your mod without it being a requirement for your mod. I suspect I have a lot to learn still about what all I can do with it.

tender bloom
#

I was a late adopter (compared to some other mods I picked up early) but I can't live without it anymore

blissful saddle
calm nebula
#

Oh hey, a new MathsPerson! SDVpufferheart

elfin stirrup
#

hey guys, im new to modding, but what do you think about a mod for 1.6 that makes Trinkets available at Lvl 1 combat?

#

im wondering how i would approach this

tender bloom
#

you'd want to start by thinking of a mechanic

#

like, do you want them to drop normally?

#

have them for sale?

dense solstice
#

I haven't even played the updates long enough to experience trinkets yet! lol

tender bloom
#

NPC gives you one in dialogue?

dense solstice
#

started playing 1.6 after a loooong hiatus and got almost immediately consumed with my new hobby of learning to mod the game instead.

elfin stirrup
#

of course adding custom trinkets thru content packer would be encouraged too, but mechanics are what im focused on

tender bloom
#

so probably some C# there

#

you'll want to decompile and take a look at what adds the slot

elfin stirrup
#

ok

tender bloom
#

there's a framework mod for trinkets

lucid iron
#

when i made trinket mod i balanced it around being available late in the game

#

endgame content is important sleep

elfin stirrup
teal bridge
#

Trinkets are definitely OP early game so this would be a cheat mod, but of course, that's OK if that's the intent.

lucid iron
#

opening slot is as easy as incrementing the trinket_slot stat

teal bridge
#

I believe the triggers for trinkets are fairly specific and hard-coded so yeah, you can't do that with Content Patcher alone.

elfin stirrup
teal bridge
#

(Does opening the slot make them drop, though?)

lucid iron
#

yea

#

CanSpawnTrinket is just f.stats.Get("trinketSlots") != 0

#

that said i would prob change this blobcatgooglyblep

uncut viper
#

(you can also patch that with BETAS too—)

teal bridge
#

Ok, then I guess it is possible with CP.

lucid iron
#

and make some weaker trinkets that u can buy

#

but ban the vanilla fairly strong stuff u kno

teal bridge
#

Like the L4 Parrot. Money printer go brrrrr.

lucid iron
#

this framework doesn't have any features for unlocking slot its for making custom trinkets

elfin stirrup
#

yeah

#

thanks

latent mauve
#

I mean, I personally like the idea of some trinkets being available at max friendship with the people who love them, even if you don't have Mastery yet

#

Random NPC gift trinket sometime after max hearts could be cute.

uncut viper
#

the problem is just to use it you have to enable the drops of every other trinket too

elfin stirrup
#

@lucid iron i'm a beginner at C# so if you could help me out if i need it, i'd appreciate that

lucid iron
#

just ask here

elfin stirrup
#

thanks

lucid iron
#

but trinket tinker isnt for C#

#

u just edit in the data with content patcher

elfin stirrup
#

yeah

latent mauve
lucid iron
#

yea that'd work Bolb

uncut viper
#

i mean you'd have to patch every trinket in the game

lucid iron
#

do an edit conditioned on having mastery for the vanilla ones

teal bridge
lucid iron
#

u cant control modded ones but there arent that many PecoSmile

latent mauve
#

There aren't many vanilla ones, so that's not too bad.

#

only 8 entries

#

The variants aren't separated

uncut viper
#

can you do an OR with two separate tokens on a when condition in CP?

#

or do you just mean make it only check for mastery

#

not mastery or friendship

#

(also can CP tokens even check mastery)

lucid iron
#

oh no i was thinking like

  1. edit data can drop to false until u get mastery on the 8 vanilla trinkets
lucid iron
#

i think u can do stat tho

uncut viper
#

not with CP

lucid iron
#

but i forgor why i went for anvil recipe

uncut viper
#

you'd need esca's mod to add a Stat token

lucid iron
#

anvil recipe it is then

teal bridge
latent mauve
#

You know how we had that one code block to set every vanilla NPC to be false for WinterStarGiftParticipants? Could do a similar code to hit all the trinkets at once.

uncut viper
#

i dont know how, no

latent mauve
#

we absolutely had one, it's in this or the NPC thread

lucid iron
#

but if u need other C# stuff in ur mod anyways

uncut viper
#

i mean im not doubting you did im just saying i dont remember/know it

lucid iron
#

u can just do smth about CanSpawnTrinket

uncut viper
#

patching every single trinket and also not accounting for modded ones doesnt seem like a very good solution to me personally

#

but it is not my mod

latent mauve
#

Found it

elfin stirrup
#

where would i write CanSpawnTrinket f.stats.Get("trinketSlots") != 0

lucid iron
#

CanSpawnTrinket is a method

elfin stirrup
#

ok

lucid iron
#

you can suffix patch it to check for something besides trinketSlots

latent mauve
#

I don't know how to do C#, I only know CP

elfin stirrup
#

definitely got to crawl before i can walk lol

lucid iron
#

i'd say u worry about CanSpawnTrinket rules later PecoSmile

#

to unlock the slot u just gotta do Game1.player.stats.Set("trinketSlots", 1);

#

either in ur C# mod or through BETAS

uncut viper
#

or with a trigger action

lucid iron
#

is stat up a vanilla action

uncut viper
#

yes

#

IncrementStat

lucid iron
#

ah nice thats all then sleep

teal bridge
#

Yeah I said that as soon as you confirmed it's just a stat check, lol... it's a 5-line JSON.

#

Obviously would massively break early game balance without additional work, but that's the starting point.

elfin stirrup
#

do u have anywhere to reference that for JSON

lucid iron
#

i think it'd be fun if u just

#

straight up banned all vanilla trinkets from random drop

#

and reassign them to villagers

#

maybe jas gifts u a fairy box is u gift her a fairy rose at 10 hearts Dokkan

teal bridge
#

Interesting idea, but then you'd also need a different progression system for trinket tiers.

lucid iron
#

the anvil's still locked behind mastery yea

#

unfortunately i think vanilla trinkets all spawn with random level bolbthinking

teal bridge
#

Eh, I've never used anvil at all, just kill a bunch of enemies until the high-level trinket drops.

rancid temple
#

Yeah, anvil too expensive

teal bridge
#

The anvil mechanic could use some work - having it be RNG-based is bleh.

rancid temple
#

That's fair, I would pay the price if it wasn't random

lucid iron
#

unfortunately i didnt do anything about that in trinket tinker either Dokkan

#

besides making it impossible to roll the same level cus thats dum

elfin stirrup
#

thank u so much

teal bridge
#

^ that's the page I was trying to dig up but couldn't find in time.

elfin stirrup
#

ok

teal bridge
elfin stirrup
#

can Level cap be expanded with CP or do u need C#?

lucid iron
#

level cap?

elfin stirrup
#

each stat/skill is capped at 10

teal bridge
#

Surprisingly, a Nexus search doesn't turn up any anvil mods. I guess late-game mechanics don't get a ton of attention.

lucid iron
#

thats a whole other mod

rancid temple
#

Uncapping player level seems like the kind of thing that you'd be better off writing a new game instead

teal bridge
lucid iron
#

definitely C#, but i think there's skill prestige that let u go to 20?

brave fable
#

level extender used to exist, but not for a long time

lucid iron
#

or was it some other name

teal bridge
#

(And how many mods out there assume 10 levels? Probably also hundreds)

rancid temple
#

For some reason I thought prestige was 100 lol

lucid iron
#

the usual approach to like

brave fable
#

spacecore at least assumes 10 hahah, i wouldn't screw with skills when custom skills exist

lucid iron
#

late game leveling type things

#

would just be adding whole new skills

rancid temple
#

oh Skill Prestige is just for resetting to get additional professions

lucid iron
#

oh ok

teal bridge
#

New skills or special quests are both OK progression mechanics.

lucid iron
#

its less about design and more about not exploding everyone else's mod

teal bridge
#

Careful of skill bloat, though, you don't want Rune Factory's "you have researched breathing" meme bait.

elfin stirrup
#

lol

brave fable
#

or do u...

rancid temple
#

Level Extender is the one that bumps all the skills up to 100

#

But it's pretty out of date

lucid iron
#

love of respiration

teal bridge
brave fable
#

try and stop me from making the Love of Looking with xp gains for moving the camera

#

skil icon: SDVpuffereyes

teal bridge
#

Love of walking?

lucid iron
#

thats traveling

rancid temple
#

Love of Booking, you have a day job where you book vacation trips for people

lucid iron
calm nebula
#

Love of PCB layout

teal bridge
#

How about... love of menuing, where you get XP for every second spent in menus.

calm nebula
#

I dare you

lucid iron
#

love of labview

teal bridge
#

Leave game on pause for 14 hours = instant mastery

calm nebula
#

No one loves labview

#

I spent an entire day between Sunday and today debugging stupid type errors

#

You know, the ones you usually want to throw up an error, not quietly do nothing

rancid musk
teal bridge
latent mauve
brittle pasture
#

Love of Not Playing = gain XP by not playing the game

teal bridge
latent mauve
#

Idle Valley, LOL

lucid iron
#

anyone know if event lookup's ui sprites are loaded into some target

teal bridge
lucid iron
#

why r these sprites custom anyways seriousblep

latent mauve
#

I did enjoy TWEWY's gimmick of "you haven't played in a while, welcome back and here's upgrades to all your pins!"

brave fable
#

is the The Love of going to be the new Better Immersive

rancid musk
calm nebula
#

The Love of Transmission Lines

hard fern
#

The love of better immersive overhauled redux revamped expanded improved

teal bridge
uncut viper
#

i don't think Stanley parable was the first idle game

calm nebula
#

The Love of Water Towers

latent mauve
teal bridge
#

Remixed and Remastered

elfin stirrup
#

thank u everyone for ur input, im gonna get started.

rancid musk
#

It's not an idle game. Idle games still run. Stanley Parable is don't play for five years. Don't even start the game. Just... go outside.

#

So it wins at "Love of Not Playing"

calm nebula
#

Okay

uncut viper
#

you dont typically have to have an idle game open to earn

calm nebula
#

Am outside

#

Am. Cold.

rancid musk
#

atra haven't you knit anything to stay warm

lucid iron
#

did u find any grass

latent mauve
#

Touching the frozen grass?

uncut viper
#

seek warm chocolate drink

latent mauve
#

I'm about to seek toasty warm bed

uncut viper
#

id recommend keeping the toasty warm bed inside instead but i wont tell you what to do

calm nebula
wooden cypress
#

Updating TakeItSlow, running into a problem with ItemStockInformation, wondering if anyone can lend a hand

#
Failed loading type 'StardewValley.ItemStockInformation': TypeLoadException: Could not load type 'StardewValley.ItemStockInformation' from assembly 'TakeItSlow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' due to value type mismatch.
  at TakeItSlow.ModEntry.OnMenuChanged(Object sender, MenuChangedEventArgs e)```
#

The code and error in question

#

It's been so long since I cracked this open I'm having trouble figuring this out lol

teal bridge
#

I remember looking at that for the Krobus mod, I think itemPriceAndStock used to just have integers as the value instead of ItemStockInformation.

#

Although I think there's something missing from this example. Like some issue with dependencies. It's not the code itself.

#

Like, why is it trying to load StardewValley.ItemStockInformation from the TakeItSlow assembly instead of the StardewValley assembly? There's some broken reflection involved here, I think.

wooden cypress
#

How do i go about debugging that

teal bridge
#

At the moment it's not even clear how or when you're encountering the error - you posted the error but not the repro steps, full stack trace, SMAPI log, etc.

lucid iron
#

this ItemStockInformation thing changed types

#

if u just rebuild against 1.6.14 it'll work i think

wooden cypress
#

i'll give it a shot

teal bridge
#

Yeah, it sounds like either a bad dependency or bad reflection, although the error is misleading in that case.

wooden cypress
#

yeah rebuilding just worked

#

tyty

elfin stirrup
#

for IncrementStat <stat key> [amount] where is the reference for what each stat key is

elfin stirrup
#

i cant find combat on there

brave fable
#

combat is a skill, not a stat

elfin stirrup
#

o

brave fable
#

stats are arbitrary counters like trinket slots and steps walked

#

are you trying to increment combat skill level or something?

elfin stirrup
#

umm

#

actually

#

what is the trinket slot stat key

elfin stirrup
#

ok

#

trinketSlots

#

IncrementStat <stat key> [amount] would then be IncrementStat trinketSlots 1, assuming

brave fable
#

looks good to me SDVpufferthumbsup

elfin stirrup
#

ok

#

if i wanted to trigger this then...

#

or actually

#

i think i can just make it an action

#

hmm

brave fable
meager dome
#

sorry if this is a dumb question but which of these in npcnames is the one thats displayed under them in dialogue?

#

or is it a different area of the code entirely

#

i assume the first is what theyre reffered to to be called internally and then the second is what it says under their portrait

elfin stirrup
#

no such thing as a dumb question

meager dome
#

but i just wanna make sure

brittle ledge
#

I'd think it'd be in their disposition SDVpufferthinkblob one sec

brave fable
#

their Data/Characters entry just points to this file iirc

meager dome
#

yeah i found it from looking there because thats where i initially assumed it i would find it

brittle ledge
#

oh well technically it is in there SBVLmaoDog

meager dome
#

i guess i could just

#

replace it in there lol

#

dont need to make it call this file

elfin stirrup
#

is there a concise list of Item IDs anywhere, esp for 1.6 items?

acoustic summit
brave fable
#

if you want up-to-date game data, it's best to unpack the game content

#

or alternatively, patch export data/objects from the SMAPI console in a loaded save

#

though that'll give parsed item data, not source

elfin stirrup
#

i unpacked it with the .exe

tender bloom
#

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

tender bloom
#

I look here for most numeric IDs

#

and in the game data otherwise

brave fable
#

ah well they said especially for 1.6 items

#

which don't appear in that table at all

tender bloom
#

ah

#

I missed that bit

#

those just have names tho

meager dome
#

im trying to use the modder's guide on the wiki in conjunction with looking at other mods to understand how this shit works, what is configschema and how is it different than modconfig

#

well modconfig isnt like. real

#

that a class you make but

uncut viper
#

ConfigSchema is the content patcher format you use to specify what your config options should be

meager dome
#

it doesnt mention configschema

#

ohhh

uncut viper
#

if you're making a CP mod

meager dome
#

ok

#

yeah

#

i see i see

#

is there somewhere i can find content patcher documentation

meager dome
#

ty!

uncut viper
#

it is also on its nexus page

elfin stirrup
#

why couldnt my content pack load

#

said content pack must specify the Changes or CustomLocations fields..

uncut viper
#

you didnt follow content patcher's format

#

or put things in the wrong layer of json

elfin stirrup
#

`{
"Format": "2.4.4",

"Actions": [
                    "IncrementStat trinketslots 1",
                    "AddItem (TR)FairyBox"
                    
                ]

}`

uncut viper
#

you need to read the content patcher author guide i linked a few messages above and the trigger actions page that was sent to you earlier

elfin stirrup
#

ok

uncut viper
#

you need to format a content patcher mod a certain way and trigger actions need to be edited and formatted a certain way to match what the game expects too

elfin stirrup
#

alright

#

i have content patcher

elfin stirrup
#

i got it

old edge
#

First put format and you need to add the changes

#

Hello

#

Back from grave

elfin stirrup
#

Hi

#

How do I make custom letters?

faint ingot
#

Akai asking my question may help answer yours : ) --- I have the following code which sends a letter at 8 hearts: { "Action": "EditData", "Target": "Data/TriggerActions", "Entries": { "sdvhead.LawAndOrderSV_Russell_Mail_8heart": { "Id": "sdvhead.LawAndOrderSV_Russell_Mail_8heart", "Trigger": "DayEnding", "Condition": "PLAYER_FRIENDSHIP_POINTS Current Russell 2002", "Actions": [ "AddMail Current sdvhead.LawAndOrderSV_RussellClinic", ] } } },

#

I want to add a condition that the player has also seen an event, can someone help with that? The examples I see on the wiki all have only one condition

#

and actually I think I figured out my own question about adding a condition, I can just do it further down with a "when" after "entries" instead of putting multiple conditions in the triggeraction

proven spindle
#

And the game state queries wiki page should have the wording needed for that specific condition

faint ingot
#

unrelated question (i'm knocking things off my checklist here) : ) ---- I have an event near Jodi's house, and I have the viewport set at (10,88) which is very far left, often resulting in a blacked out portion of the screen on the left. Is there like a 'minimum x' i should use or other way to force the viewframe not to leave the map?

elfin stirrup
proven spindle
faint ingot
#

you need to create an entry in Data\Mail, for example "Action": "EditData", "Target": "Data/Mail", "Entries": { "sdvhead.LawAndOrderSV_RussellClinic": "{{i18n:Events.239791004.Mail1}}", }, in this case I store the text of the letter in my i18n file, check the wiki i linked for more info

faint ingot
#

Hmmmm I probably need a few more events before I can be done with my mod... one NPC has heart events at 2 / 4/ 6 / 8, and the other at 2 / 6/ 8 / 10. So one is missing a 'dating' event and neither have 14heart marriage events

shut edge
#

anyone know mods that add their own new mines-like areas? only thing i can think of is deep woods

#

wanna look into making my own combat zones

#

gem isles too i suppose

hallow prism
#

!vmv has one but not randomized

ocean sailBOT
#

Visit Mount Vapius (https://www.nexusmods.com/stardewvalley/mods/9600) is an expansion mod that adds a new region in the mountains. Accessible by train, you'll enter the hamlet of Glimsap, with its tight-knit group of villagers, that holds a market twice a week. You'll get to explore new places, fight monsters, get new crops and forage, trade local coins for exclusive goods, and complete tasks to unlock special items, including machines, buildings, and animals.

hallow prism
#

look at Sword and Sorcery who is using spacecore dungeon feature for a randomised one

shut edge
#

i suppose it's the kind of thing that just needs to be done via custom code eh

#

ah is it? rad

#

thanks

hallow prism
#

there are some ways to randomize with just CP but it's obviously more simple

shut edge
#

yeah this looks like it might be the sort of thing i want to see as an example, cool. thanks

#

never did dig deep into that mod yet, wasn't even aware it had that

solid ocean
#

Im having troubled properly converting CP-A mods

#

when i convert the mod nothing changed, stuff still isnt animated

deep cypress
#

Imma go look at that, going to store that information for the later day!!!

deep cypress
solid ocean
#

items

#

and stuff on the map too ig

#

animated gemstones

open summit
#

I'm a beginner in mod creation.
I want to replace the portrait of a custom NPC with a high-resolution portrait, but I don't know how.

hard fern
#

i think you would need something like portraiture for that?

#

🤔 unless there's something else that can support high def portraits

open summit
#

I tried putting it in the portraiture mod folder, but it didn't change, so I don't know what to do...

hard fern
#

are you sure it's named correctly?

open summit
#

Both png files have the same name.

hard fern
#

ok, can you show where you're putting these pngs?

open summit
#

C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\Portraiture\Portraits\mycharacter

hard fern
#

is "mycharacter" a folder, or the png

open summit
#

Sorry, it's a folder.
It contains the files I want to replace.

hard fern
#

and you hit P to change the portraits, right?

open summit
#

When I press P in-game, the folder name changes, but the portrait remains the same.

hoary lake
#

Idea: a website where you can make a outfit then you import that preset of equiped clothing items into stardew somehow...

rancid temple
#

SpaceCore and Scale Up 2 also offer ways to replace portraits in a targeted manner, through CP

open summit
#

thank you! i will try!

tame anchor
#

Excuse me,
I am using "Space Core" to make HD portraits (because I want to switch HD portraits of NPCS after the event). I've been working on it for a long time and found that only the first emoji works properly, all the others will have problems.
Is there any way to solve it

wanton pebble
#

Quick question: Is there a way to add exceptions to Event Limiter without adding it as a dependency?

lucid iron
#

Not sure why they cjb cheat menu has mod LilyDerp

tame anchor
#

Ah, I wrote the cjb menu wrong! Thanks. I'll try

blissful saddle
#

doki doki library club much?

rancid temple
lucid iron
#

Nop Dokkan

#

The other way I imagine this working is like

#

An override entry per emote

rancid temple
#

Yeah, I'm thinking that might be the way it's intended

#

Which sounds like hell

tame anchor
#

This is not what I had in mind! T T

rancid temple
#

I'm not sure SpaceCore is designed to handle the whole portrait at once

#

The purpose of TextureOverrides in the first place is for animations

#

The cramming a bigger image into a smaller space was only added recently, so might still need further tweaks

blissful saddle
rancid temple
#

You can use Scale Up 2, I was hoping to at least create an example of doing this with SpaceCore but I'm not about to target every frame

tame anchor
#

T T Thanks. I'll try

#

I originally used “HD Portrait”, but it hasn't been updated in a while🥲

lucid iron
#

Yeah unfort

lucid iron
rancid temple
#

In my experience, when you make the target rect bigger than 64x64 it just stops working entirely

lucid iron
#

Yeah worth a shot Dokkan

tame anchor
#

Right!! I tried but he stopped working instead

lucid iron
#

Then u just gotta do 9 entries of the override edit

#

256x256 one per portrait

rancid temple
blissful saddle
#

chase doesn't have an understandable tutorial to use this spacecore functionality yet?

lucid iron
#

It's ok content patcher 2.5.0 will take care of it

rancid temple
#

Casey has been working on documentation, but it's slow going

lucid iron
#

With the local tokens

blissful saddle
#

I see

lucid iron
#

I think this isn't technically a new feature?

rancid temple
#

Cramming bigger images into a smaller space is

#

But texture override in general isn't

lucid iron
#

Yeah just extended

rancid temple
#

That said, Casey's base readme leaves a lot to be desired vis a vis examples lol

#

Hence why I was trying to make one

hard fern
#

🤔 ive got a weird question about crops, i wanted to make rice regrow, but all the other regrowable crops extend into where the giant cauli is..

#

i dont think i should accidentally chop into it...

#

and additionally, i can't find a page on how to add furniture via CP? if anyone knows how, pls let me know.. >.<

frigid hollow
#

i think you can just add a new "fully grown but harvested" sprite to the right of the harvestable rice just fine?

#

unless regrowable crops are hardcoded to use like. the 8th sprite instead of just +1 on the harvestable sprite index

hard fern
#

honestly im not sure

#

i guess the only way is to actually test it though so

frozen elm
# hard fern and additionally, i can't find a page on how to add furniture via CP? if anyone ...
Stardew Modding Wiki

This tutorial explains how to add custom furniture using the new 1.6 game update features and Content Patcher. The tutorial assumes you already have the game unpacked and that you have some basic familiarity with the Content Patcher format. The mods referenced as examples in this tutorial are Bonsai Trees (formerly Bonsai Trees for DGA) and Magi...

hard fern
#

ooh thanks

gray bear
#

as far as i'm aware u can making a custom sprite for the rice crop and use it instead

hard fern
#

was looking on the wrong wiki

royal stump
hard fern
#

😔 idk how it chooses the sprite either

#

so

#

hm

frigid hollow
#

yeah to replace vanilla rice you'd have to patch Data/Crops and change it's texture

hard fern
#

alright i could probably do that easier XD

frigid hollow
#

and it's probably one of those text operation things so not Super intuitive SDVkrobusgiggle

lucid iron
#

Crops is a proper model

hard fern
#

after spending way too long in npc gift tastes, i still dunno what text operations do

#

i just know how to add stuff to it

#

😔

frigid hollow
#

ah, yeah it'd just be a targetfield

#

i'm confusing that with text operations bc i was fiddling with them at the same-ish time

#

so like,
"TargetField":["273","Texture"] to hit the rice texture? i think?

#

wait no not that far

#

just "TargetField":["273"] ?

rancid temple
#

You could just use Fields for this

frigid hollow
#

oh yeah i forgot that exists

rancid temple
#
"Target": "Data/Crops",
"Fields": {
  "273": {
    "Texture": ""
  }
}
long jungle
#

Using CP or/and JA, is it possible to change the name of Vanilla Items and add a recipe for crafting it, assuming it was not a craftable item before?

rancid temple
#

Fully possible with CP

astral rover
blissful panther
#

I tried uploading an exported image and the TMX itself just to check, and... it doesn't seem to work with either option for me! Seems to be just bugged right now for that.

eternal mortar
#

For my custom shop, i put this tile data down in actions: OpenShop StarKOdoll_CustomGuomys Right 1100 2000, Though im not sure if this is correct?

slender badger
#

Got a weird bug if anyone's available to help? I'm making a custom wedding mod with temp map locations and 5 of the 7 are working perfectly fine but 2 are moving the farmer down one tile for some reason SDVpufferthinkblob The code doesn't change, I just swap out the co-ordinates via dynamic tokens depending on the config/map, and I've confirmed all the co-ordinates are correct

#

The particularly weird thing is that I'm using queries to adjust everyone's event co-ordinates in sync with the farmer's, and they're in the correct positions on those two maps but the farmer isn't

tiny zealot
#

which are the two maps? they might have some wacky player position code in them

slender badger
#

I used the desert and Flower Dance maps as a base for them SDVpufferthinkblob Might also be because I extended them up & to the left when creating them?

tiny zealot
#

i'm not sure what the bug is but i did see your viewport is -1000 -100 which may be intended to be -1000 -1000, and you have a warp [SpouseActor] 28 6 in there which does not seem right

#

(i don't think the 100/1000 one matters, really; i only know -1000 -1000 is the magic "don't render stuff" position. -100 is still safely way off screen)

slender badger
#

They're both copied from the original wedding event code SDVpuffersquee But I'll fix those up, thanks

tiny zealot
#

fair! i haven't looked at that in some time

slender badger
tiny zealot
#

i mean in the C# code for the location; Desert i know has all the bus stuff hardcoded into it so i suspected it was one of the problem areas SDVpuffersquee

slender badger
#

Ah, so it wouldn't affect things for a temp map?

tiny zealot
#

that i don't know, sorry. if the temp map still ends up using the Locations.Desert class then it might use special player position behavior (if any of it would even cause this. i'm mostly spitballing)

slender badger
#

Hm, that could make sense if it's trying to move the player down one like when getting off the bus SDVpufferthinkblob

tiny zealot
#

more or less what i was thinking of!

slender badger
#

Aha, it does have LocationContext Desert in the metadata, I'll try changing that

#

No luck SDVpufferchickcry

tiny zealot
desert pagoda
#

Is it harder to use the outdated shoptiled framework, or used the 1.6 content patcher thingy.

serene tapir
#

Definitely use the CP shopdata stuff imo, outdated mods can't be expected to continue support indefinitely, and there's more current documentation for CP

tiny zealot
#

i never used shop tile framework. i would not use it now, since it's no longer useful

desert pagoda
#

But which one is simpler tbh?

hallow prism
#

i find CP simpler, but each person is different, even twins

desert pagoda
#

so the tiled framework has some complexities that CP doesnt?

#

Understood

slender badger
#

Okay, Ichor, apparently 33 13 on the desert map is just a cursed tile

#

No idea what the hell is going wrong, but the farmer does not want to stand on it. I ended up just shifting the entire ceremony down a tile SCsigh

tiny zealot
#

i'm glad you found a working solution, but what the actual hell (i couldn't find anything to go on)

lucid iron
#

Can we find more cursed tiles

serene tapir
desert pagoda
#

So it requires less coding knowhow? Understood

tiny zealot
desert pagoda
#

Where in the CP shop data I am supposed to put the coordinates the shop is in?

tiny zealot
#

you put a tile property on the map to do that
(buildings layer): Action|OpenShop YourShopId (one more edit for clarity: don't put the <> brackets in)

calm nebula
tardy adder
#

ichor's secret notes framework is so tasty :3

tiny zealot
#

ooh are you getting up to mischief with it?

tardy adder
#

less mischievous than my usual chaos, but yesh :3

#

its so good to add more lore into sdv

meager dome
#

is there any sort of way to quickly trigger a mod and check if it works

#

eg. calling a line of dialogue or checking if a spritesheet functions

lucid iron
#

Kath is collecting frameworks for pdw like a pokedex

tender bloom
ocean sailBOT
#

A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.

  1. Load up a save (with Content Patcher installed)
  2. Type patch export <FILEPATHOFTHING> in the SMAPI console and hit return
  3. Look in your patch export folder in the game folder for the relevant json file or image
  4. If it's a json file, you can share it via smapi.io/json. If it's an image you should just be able to look at it.
fervent horizon
lucid iron
tender bloom
lucid iron
#

So that it reload faster and u don't mess up ur save

latent mauve
#

Is Spacecore Animations still broken for vanilla objects or am I just screwing up my code somehow?

#

My code: { "LogName": "Earth Balloon_A", "Action": "EditData", "Target": "spacechase0.SpaceCore/TextureOverrides", "Entries": { "Earth Obelisk": { "TargetTexture": "{{InternalAssetKey: assets/animation/Earth Obelisk.png}}", "TargetRect": { "X": 0, "Y": 0, "Width": 48, "Height": 128 }, "SourceTexture": "{{InternalAssetKey: assets/animation/Earth Obelisk.png}}:0..24@5", }, }, "When": { "Earth Obelisk": true, "Animation": true } },

#

(and yes, the config options are both enabled)

calm nebula
#

Your target texture shouls be like buildings/earthmumvle

latent mauve
#

I tried that and it told me it couldn't convert it to a path

#

But I'll try again and drop the exact error if it pops again

tiny zealot
#

earthmumvle

fathom hound
#

Gosh I finally have time to finish my meowmere mod

latent mauve
#

...okay, not sure why, but the animation is working now but it really made SinZ's Several Spouse Spots mad at me when I patch reloaded just the HotAirBalloons mod.

#

Gonna exit and reopen in case it was a patch reload oddity

#

yep, patch reload oddity, since it doesn't throw the angry error from Several Spouse Spots if I just load up and build the obelisk again.

#

Weird.

meager dome
#

thank uu

quaint moss
#

Is the Introduction conversation topic valid for things like the PLAYER_HAS_CONVERSATION_TOPIC GSQ?

lucid iron
#

you dont have to use spacecore

#

assuming this is the earth obelisk farm building

calm nebula
#

It's an animated overrid

lucid iron
#

instead u can do draw layer

calm nebula
#

Doesn't seem like it

#

if you get a good night's sleep and don't wear your fitness tracker does it even count

brittle pasture
#

see also: vanilla mill

#

I know no one builds it so I'm pointing it out

calm nebula
#

Honest to God I thought that just spun a texture

lucid iron
#

my chimkins need feeding selph

tardy adder
winter dust
#

Does the Calico Desert Festival only happen if the Bus is fixed?

#

I'm assuming that's a requirement that would need to be forcefully changed through either Harmony?

blissful panther
#

(Walk to the Festival Redux: 2? SDVpufferlurk)

#

But yup, only post bus repair!

winter dust
#

I will hack this code apart with my Iridium Axe.

lucid iron
#

do u expect to path the whole village to the festival on foot LilyDerp

winter dust
#

They will all take umbrellas like Mary Poppins.

brittle pasture
#

poor George/Evelyn

winter dust
#

We will do it like they did in the olden days.

brittle pasture
#

~~maybe Alex can carry them there, one on each arm SDVpufferwoke ~~

winter dust
#

They could always drive the various vehicles that lie around the area.

calm nebula
#

(Isn't this mostly controlled by gsq)

winter dust
uncut viper
#

so you can presumably just change the condition on the desert festival in Data/PassiveFestivals

tardy adder
#

I has question:
Adding in some Fish entry to Default in Data/Locations adds it in all locations?

calm nebula
#

Oui

tardy adder
#

Merci

#

Time to fill in ze trash fish :3

latent mauve
# lucid iron instead u can do draw layer

I don't know how that works in this case, as the obelisk is a balloon that is constantly floating up and down, rather than there being any static element like the mill that just has one animated element on top.

#

I am converting a CPA mod for personal use, Spacecore seemed the least mentally taxing to make it work since I already have it on one of my saves

brittle pasture
#

You can have a giant block of animation with transparent tiles

trim cloud
#

Is there a souls like mod to stardew valley ?

uncut viper
trim cloud
#

Ok thanks ❤️

faint ingot
#

Is it possible to hide the farmer's shadow during an event? HideShadow seems to work only for NPCs

tardy adder
#

Me: why this item not loading?
Also me: forgets to actually load in the json...

faint ingot
#

this shadow is ruining the vibe SDVpufferwaaah

brittle ledge
#

There isn't a way I know of offhand, but what about swapping their positions so the NPC hides it?

faint ingot
#

actually I was just thinking I'll try warping the farmer several tiles away and giving them a huge offset... wish me luck

tardy adder
#

I has another question:
To target the dialogue for the travelling merchant would it go like "TargetField": [ "Traveler", "Owners", "AnyOrNone", "Default", "RandomDialogue" ],
Or did I go too far o-o?

#

Shop Owners always confuse me ><

light bramble
#

Question, do I need to do the appearance in the dispos of my custom npc if I do not have seperate outfits?

brittle ledge
#

If you only have one set of portraits/sprites you should just need a regular load, so no

rancid temple
#

Appearance is optional, technically you could achieve the same thing with some insane separate edits lol

light bramble
#

Ok, and then I can also make stuff based on a configurable thing right? Like using GMC to allow a user to switch between two sprite sets right?

eternal mortar
#

can i change the appearance of like a building on certain times or days? for example putting up a closed sign or something. (please ping.)

faint ingot
#

dang positionOffset takes the shadow with it

light bramble
#

is there a wiki post on how to do config schema?

rancid temple
#

Easiest way I can think of to have the config affect the sprite would just be to have it affect which sprite it's loading

#

Though I think that method would require restarting the day or sleeping

uncut viper
#

or a quicker updaterate

light bramble
#

Yeah I just wanted to make sure I knew what I was doing was correct lol. Need to do some updating for other mods and I kinda forgot how to do the config schema in content patcher

rancid temple
#

Yeah, I always try to avoid high update rates lol

faint ingot
latent mauve
#

Try to stop on the level before your key, which in this case, is RandomDialogue

tardy adder
#

Oh 😮 thanky

latent mauve
#

RandomDialogue (when there are entries and it's not null) is a list, though, so unless you're trying to completely replace it, you may be better off appending entries to it.

tardy adder
#

o-o

latent mauve
#

What specifically are you targeting in the Travelling shop setup?

tardy adder
#

just adding some dialogue to the random dialogue for immersion that the travelling shop has goods from this other region

latent mauve
#

(AnyOrNone is a Name, not an ID, so I'm not sure your setup is targeting what you think it will right now)

tardy adder
#

Unless I am reading it wrong

latent mauve
#

ah, that one

#

I was looking at Default / down one more level

#

Are you trying to add stuff where I have "HERE" highlighted?

tardy adder
#

yesh :3

latent mauve
#

Okay, so you'll probably want to TextOperations Append to that RandomDialogue list, I think

tardy adder
#

SDVpufferthinkblob Imma try that then

latent mauve
#

If the lines had their own keys, you would be able to just add Entries, but since they don't, AFAIK you'd have to append to the comma-delimited list to avoid overwriting what's already there.

#

(If I'm wrong, I'm sure someone will correct me)

tardy adder
#

Well, can always test it out :3

#

Thanky, I shall be back

tardy adder
#

-> Merchant please say the line so I can test it

uncut viper
#

this example is for context tags but it'll be the same here, theyre both just lists of strings

#

(your content patcher format has to be at least... 2.3.0 i think? it might be 2.2.0 but i think its 2.3.0)

#

(i also dont think textoperations is even applicable here anyway)

winter dust
#

Can I replace in-game item textures for wines and jellies yet or no.

brittle pasture
#

you can, check tilesheets/objects_2

#

you can see the base sprite and the color overlay

#

if you meant BAGI style where every flavor gets its own sprite, then no, still need BAGI for that

drowsy pewter
#

I dream about spritepatcher

brittle pasture
#

same

lucid iron
#

what does spritepatcher do

brittle pasture
#

it patches sprites
an unreleased mod that basically allows content pack mods to programatically modify draw codes of almost every entity in the game
possibilities including but not limited to "tiny icon of the pickle's base item in the corner", "draw the current item being processed inside a machine", and some other cool stuff

lucid iron
#

draw the current item being processed inside a machine
i had dreamed of this mod

faint ingot
#

anyone know what the soundbank ID is for the 'jump' sound?

devout otter
#

That's the one thing BAGI is for.

winter dust
#

I thought it was only capable of doing the little fruits over icons.

devout otter
#

Each flavor also has it's on texture and the little icons can be disabled.

drowsy pewter
light bramble
#

I screwed up...but I don't know where I screwed up...https://smapi.io/log/3854d52aad6544768e1dfa14ea9f14e5

I'm trying to get my NPC to load. Idk if it's because I was stupid and forgot to create the map for the home location or if something else happened...But I'm following the tutorial by Tiakal...

ocean sailBOT
#

Log Info: SMAPI 4.1.8 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Enterprise, with 11 C# mods and 1 content packs.

brittle ledge
#

If the home location you set doesn't exist (e.g., you didn't load in the custom map) the NPC will cease to exist, yeah.

#

Try setting home to a vanilla location.

#

If that fails, I have some other notes at the bottom of the tutorial but generally it's an issue with a failed load

uncut viper
#

that error has to do with the portraits though

light bramble
#

I'm currently writing the json to load in the hom local. I'm just concerned by the FileNotFoundException: Could not find file 'C:\SteamLibrary\steamapps\common\Stardew Valley\Content\Portraits\n3rdgirl.GlitchFarmer_Glitch.xnb'.

brittle ledge
#

Check your load patch

#

Could be a typo, could be a missing file, could be loading to the wrong place

light bramble
#

?

uncut viper
#

check where you're loading your portraits

light bramble
#

Imma dumbass

#

THERE'S AN "S"

#

AND I FORGOT THE S

#

so I was loading into Portrait/{{ModID}}_Glitch instead of Portraits/{{ModID}}_Glitch

#

fml

brittle ledge
#

Yep, that'd do it

#

You found yours significantly quicker than I found mine with Wren SBVLmaoDog

blissful saddle
#

ok... let's say I add a new item with the ID name MaxRW.ModName_ItemName.

How can I summon the item with SMAPI console? using player_add MaxRW.ModName_ItemName 1 returns There is no item with the qualified ID MaxRW.ModName_ItemName

#

I just exported the data where it should be put and it shows up there

light bramble
brittle ledge
blissful saddle
#

so player_add (O)MaxRW.ModName_ItemName 1?

brittle ledge
#

Yeah, since it's asking for a qualified ID I thought it might need the prefix.

blissful saddle
#

ok, it worked

brittle ledge
#

(I am assuming it's an object and not like clothing or a craftables or something)

blissful saddle
#

now I have a new error lol

#

it is a BigCraftable, so I used (BC). and I got the idea

#

I usually switch qualified with unqualified IDs sometimes...

#

now I need to take care of the texture

#

also it should be a chest, but it doesn't have chest interaction. Any direction to what I need to add to it work as a chest?

brittle pasture
#

if this is CP, you need Expanded Storage

#

if C#, a wee bit of harmony

blissful saddle
#

I see. So chests require hard code

brittle pasture
#

yeh

blissful saddle
#

any example for the wee bit of harmony?

#

I swan through some chests mods in nexus, but or they were predated or just new textures through AT

brittle pasture
#

those would be either Expanded Storage or AT

#

if you don't mind an additional dependency I'd just use XS tbh

#

why do it from scratch when someone else already did it for you

blissful saddle
#

because I want to do both

#

It will be part of my spoilage mod, a built-in cooler-chest that one can use like a minifridge outside the farm

#

and if anyone is using the Ice Cooler already in the 6480 Variety Mod (and thus already using the Expanded Storage), the Ice Cooler will act like this

#

my take is just make a built-in option to people that don't want to have more requirements

#

I will take a look at XS code. thanks you both SDVpufferheart

light bramble
#

Ok I now have a new issue. The locked doors aren't working for the npc. I have a TileData with Action LockedDoor Warp 8 5 n3rdgirl.GlitchFarmer_GlitchAttic 600 2600 n3rdgirl.GlitchFarmer_Glitch 500 but it's not showing anything, and when cheating the hearts to at least 2 it still doesn't work.

rancid temple
#

LockedDoorWarp is one word

light bramble
#

That would do it...

#

Now just to make sure the npc spawns in the bedroom and not the main floor lol

#

BUT HE LIVES

tardy adder
#

ugh can't get my book to book

gentle rose
#

how hard was relearning mods from 1.5 to 1.6 for you guys?

#

for those that made them pre 1.6 ofc

hallow prism
#

depend

#

for CP stuff mostly ok

tawny ore
#

Does anyone know if using folders under i18n requires that the same translation key belong to the same filename?

#

Wondering if it's possible to do something like:

i18n/
  default/
    config.json
    ui.json
    ...
  es/all.json
  fr/all.json

So translated text is still a single file, but the default is broken up a bit.

finite ginkgo
#

My question is what's the use-case for that?

drowsy pewter
gentle rose
drowsy pewter
#

we dont use c++

#

c#?

gentle rose
#

I meant c# RaccoonGiggle it's late

drowsy pewter
#

Not me

blissful saddle
#

I updated some old c# mods. It's mostly some things on pre 1.6 are usually easier to do 1.6+

gentle rose
rancid temple
#

Rider is free for non commercial use now

blissful saddle
#

the changes are lots, but very localised and more intuitive too

gentle rose
gentle rose
blissful saddle
#

frameworks were the ones that got the harder hit

gentle rose
blissful saddle
tawny ore
#

It's literally:

{
  "YourObject.Id": {
    // Existing code
    "CustomFields": {
      "furyx639.ExpandedStorage/Enabled": "true"
    }
  }
}
tardy adder
#

I will book the book later so I can get it to set the power >->

#

Modding > getting ready for family party SDVpufferlurk

blissful saddle
#

I am just first trying to create a new chest from scratch

tawny ore
brittle pasture
#

(just to clarify I dont mean this to be discouraging!)

blissful saddle
#

I am just interested in know how containers work, and doing crazy things like this is my way to fun learning

#

thanks a lot. I may give a try to make a custom chest with XS later just to test it

#

I found the first transpiler and so that's it

#

I will delegate it to sorcery

calm nebula
#

(I will say that updating mods to 1.6, even c#, is pretty straightforward.)

#

Depending on how bad your transpjler addiction was, it may even be easy!

#

Also I'm very much team "I'll do it myself" which may explain why my mods do not work on 1.6 because I'm lazy

blissful saddle
#

yeap, no. One day I will learn to read IL. I had my days with assembler and hex already though

#

and I just don't want to copy 17 patches without understand what they are doing

lucid iron
#

IL pretty readable tbh

blissful saddle
#

I don't doubt. I just don't want to learn right now

#

I am yet learning some c# things

lucid iron
#

I think the bigger reason to use a framework is so that u don't double up on the patches

blissful saddle
#

I agree

#

but as someone that feel like needing control of what I am doing, CP is already sorcery to me because I don't understand the mechanics behind, and yet it works

lucid iron
#

But if I was gonna do this custom storage thing in lazy way I'd probably just make the big object secretly hold a (BC)130 chest and do a little bit of spaget to open said chest

blissful saddle
#

transpilers and IL are deep magic in comparison

lucid iron
#

This is essentially how enrichers work in vanilla

#

With their sad little 1x1 chest

acoustic summit
#

Dependencies are also just a bit scary to commit to, like what if x updates or months later the framework breaks and isn't updated, but you want to continue work? I'd rather do more myself than worry about needing to do it later in a way

blissful saddle
#

I would yet need to differentiate if an item is in a normal chest or in my 'chest' for what I want to do

#

I was all good until finding minifridges can't be put outside of farmhouse

calm nebula
#

Yeah, what if the dependency is as flaky as I am?

#

Wouldn't want to be as flaky as a...

lucid iron
#

Then I fork u atra

calm nebula
#

Dude that is a map property

lucid iron
calm nebula
#

AllowFridge or smth

rancid temple
#

Just patch every location

blissful saddle
#

are you suggesting me to make my spoilage mod to change the map property of all loaded maps just to let the player use minifridges as chests?

#

because I like it

#
if (!fridgeallowed)
  fridgeallowed
acoustic summit
#

simples

blissful saddle
#

thinking better, I will just test it. sorry again

simple beacon
#

Hey, does anybody have any advice for converting a shop tile framework mod to content patcher for personal use?

blissful saddle
#

!convert

simple beacon
#

Oh wow thank you!! That is super helpful

wraith meteor
#

Mostly out of curiosity, how feasible would it be to make a mod that makes Lewis and The Player shake hands during the Intro Cutscene? I imagine it would require a custom animation (unless there is already a handshake animation somewhere) and modifications to the cutscene to insert the animation, right?

uncut viper
#

i havent actually watched the intro cutscene in forever so i dont even remember lewis being there but the cutscene is a Minigame and not an event so its not something you can touch without C#

rancid temple
#

Probably mean the event that happens before your first day where Lewis and Robin show you your house

uncut viper
#

is that an event-event? i havent seen that in forever either lmao

rancid temple
#

Not sure, I assume it's an event, it's skippable

wraith meteor
#

Ye, I mean the skipable cutscene/whatever where Lewis and Robin show your house

uncut viper
#

i dont see any references to lewis in Data/Events/Farm or Data/Events/FarmHouse so if its an event idk where itd be

rancid temple
#

Seems like it's on BusStop

#

But yeah, I mean, creating a custom handshake animation and inserting it into the event wouldn't be impossible

wraith meteor
rancid temple
#

Eh, I would have assumed you would just start in the farmhouse, since there's no reason to place the player at the bus stop before the game even begins

#

Events frequently trigger in places they aren't actually in and also move to other locations, it's all faked so it doesn't really matter

wraith meteor
#

IDK, that uncertain primate fellow is a strange one sometimes. It does at least make narrative sense if not technical sense ¯_(ツ)_/¯

lucid iron
#

i thought that event starts with u getting off the bus

#

or was that part of minigame

uncut viper
#

minigame ends by sending you to the bus stop

#

which then starts the event

rancid temple
#

Events usually start during the screen fade right?

uncut viper
#

im not sure anymore bc i feel like i have both memories of walking into an area and immediately being in an event and also memories of walking into an area, loading in, then seeing another fade to black for an event

#

so im not a reliable person to ask

blissful saddle
#

you don't have character control until the first day has started, after reaching Stardew Valley and being introduced to Lewis and Robin

#

if I remember it right Lewis takes the farmer on the Bus Stop and brings them to the farm where Robin is looking at the cabin

#

not sure when the minigame ends and the event starts though

uncut viper
#

event starts with you getting off the bus

golden basin
#

Has anyone figured out why npcs water walk and freeze in place and how to stop them doing that

rancid temple
#

Usually means something is wrong with their pathfinding

rancid musk
#

Hey @brave fable! Passing along a bug report for the current version of LoC and how it uses Better Crafting's API. IRecipe.CraftingRecipe is potentially null and you're using it without a null check in the PostCraft event handler here: https://github.com/b-b-blueberry/CooksAssistant/blob/master/LoveOfCooking/Interface/Interfaces.cs#L121

It's nullable since people can theoretically add crafting recipes to BC that aren't based on vanilla crafting at all, like my add-on for it to craft buildings. But it's a nice easy fix at least. 😄

brittle ledge
#

Honestly if I was doing something like that I'd just use some trickery and put the moving part of the farmer's handshake on Lewis's sprite and have them close enough together that you can't tell it's Lewis's sprite adding the farmer handshake

#

(You'd also probably need a few variants to cover skintone and I'm not sure if there's a non-C# way to reach that though. I suppose you could make it a config?)

rancid temple
#

(just make them hug EZ)

inner harbor
#

I"d just chose the farmer's frame that had the closest to a handshake position.

rancid temple
#

Is there a way to pop up an image during an event?

inner harbor
#

maybr frame 34 or 35? Although the feet may be a little weird , the hand's in the right place, approx.

#

then use positionoffset to make them kiss hug shake

brittle ledge
#

(assuming you mean a whole image superimposed and not like the world map or something)

rancid temple
#

Could do some manga style action pop up of a handshake

#

Just move them close and fake it til you make it

teal bridge
#

That is downright disturbing to see in a loop.

rancid temple
#

If you stare at it long enough, the POV hand loses meaning and it just looks like she's stabbing you

blissful saddle
#

ok, I have issues to report to Faux that I don't even know how to start

hard fern
#

Oh my another math person

blissful saddle
#

it is past midnight here, but I finally have a working fridge chest that only depends on Expanded Storage

blissful saddle
#

multiply

calm nebula
#

Huh, a prismatic shard

earnest orchid
#

sorry for very belated reply but ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ salmence's vid shouting me out prompted me to check back in because im feeling v over the moon so i went and checked if there had been any chatter in this server about my mod... all my stuff is absolutely CC-BY so if I ever disappear permanently either thru falling out of love w/ stardew or life getting in the way in some form or another, you have my explicit permission to "keep circulating the tapes" so to speak, and to improve upon it as you see fit

blissful saddle
#

Since @tawny ore is reading here, I will just throw the issues:

As reported on the forum in the Expanded Storage page, Better Chests overwrites 6480's custom chests storage and other configs, making them work as a default chest under it's control.

To avoid this and keeping things config-lite, I decided to complete my mod without requiring Better Chests, and so I discovered the Expanded Storage isFridge property is, in reality, Better Chests dependent.

What is more strange is that, if one has Better Chests installed, put the custom chest on a map (or has the custom chest on a map while Better Chests is installed), and so uninstalls it, the isFridge property keeps working after that. But if one never installs Better Chests, the isFridge property does nothing.

To circumvent it I added a context tag in my custom chest and made my spoilage to check for it in addition to checking if the chest is a fridge, and it worked very well. But yet, things to be saw.

I will format it better and put in the mod's page once I have my brain fully functional again

tawny ore
#

Also I think the first part is a bit backwards. Without Better Chests, all of the 6480 chests will function exactly as vanilla chests. It's only with Better Chests that they're able to have customized behavior like different chest sizes, filters, etc.

dense solstice
#

Do any of you happen to know a programmatic way to get the currency symbol in a c# mod, assuming it's not just "g" in all languages? Maybe a function that the standard game code uses? I'm having a real hard time finding anything...

blissful saddle
#

I got my custom chest to work as intended implemented with your framework, so thanks a lot

brittle pasture
#

I'm trying to decide between this and just reviving/reimplementing Bigger Craftables, and so far I feel the latter is simpler tbh
I have to roll IL to call the base Object version of Furniture's performObjectDropInAction (for input rules), checkForAction (for collecting and reloading), minutesElapsed (to make time actually pass for processing machines), clicked (to prevent the farmer from just instantly picking up a processing furniture machine), maximumStackSize (granted this is easy, just return 999), some other obscure logic I'm probably forgetting (for idk). Soon I'd need to override draw code as well (to draw animations/ready bubbles)
whereas with Bigger Craftables I just need to override draw (which I have to do anyway), collision and placement

#

hmm there's also mod compat, dunno how many mods are going to be tripped by furniture being able to use machine rules. I think UI Info won't show ready time on hover

teal bridge
#

If anyone here has experience with MonoGame in general, is there any way to either
(a) fake a GraphicsDevice (primary goal) or
(b) create a window handle that works with PresentationParameters without using Winforms, so it'll run on Linux/Mac (possible XY problem)? or
(c) create a window handle with Winforms, but somehow do it without targeting the -windows runtime?

#

I also tried looking into MAUI but it's so heavily abstracted, I just gave up. I just want "winit for .net".

brittle pasture
#

what are you trying to do? I have zero idea about MonoGame internals, I'm just curious lol

teal bridge
#

It ultimately all comes down to creating a Texture2D instance without the game running.

rancid musk
#

Trying to set up a headless test environment?

teal bridge
#

There are examples of doing it, but they all rely on Winforms.

teal bridge
rancid musk
#

Can you not do something like what StardewXNBHack does to launch a controlled version of the game? Or, if not the game, then a similar monogame project.

teal bridge
#

Maybe. I'm not entirely sure how to wrangle all those statics and avoid making the tests very leaky and non-hermetic.

#

Technically the "shared windows form" has that problem too - but it's one shared thing as opposed to hundreds of them...

rancid musk
#

At a certain point you have to give up and pick complete accuracy or performance for the tests.

tiny zealot
#

i spent a bunch of time moving the 1.6 migration info for event preconditions into https://stardewvalleywiki.com/Modding:Event_data, but i ended up putting the table of old x vanilla sendmail events and their new equivalents in there. anybody know a better place for that table to live?

teal bridge
wraith meteor
wraith meteor
sand sinew
#

hey genuine question cause i do NOT have the foggiest clue abt how mods work, what is the programming language that’s usually used

tiny zealot
#

C# for "real" programming. but many mods are just content packs and can be made using only JSON (a data format)

sand sinew
#

got it!! ty