#making-mods-general
1 messages · Page 604 of 1
any ideas why using books for unlocking powers isn't working here? i have trigger actions set up that should unlock specific powers but nothing really happens and the icon in the powers tab remains grayed out. Debug gq output states that the trigger action has not been run
https://smapi.io/json/none/35bce147b69b4be8a2bdc10fb2820fdf
any reason you need spacecore to run a trigger action instead of just checking the read book's stat (like what vanilla does)
I honestly don't remember why I set it up this way. I think I initially didn't know that reading books is a vanilla thing
i think i wanted to make use of the OnItemUsed trigger?
yeah you can just follow vanilla unless you really want a custom message (in which case Button's SPU is probably a better fit, and you'd still be following the vanilla method)
set it a book item, reading it should automatically increment a stat, and then you can check that stat anywhere
Yeah, I wanted a message to pop up that's like "You learned how to brew a new potion" or whatever
not that it would be necessary, i just liked the extra message
and to answer your original question: I believe reading books doesn't trigger SpaceCore's item used trigger so your idea was rip from the start
do look at SPU though, is gud mod

will do, thanks!
thinks of a useful mod
finds a similar mod to look at how it was made
mfw .dll
sad :(
wanted to create a fertilizer(s) that increases yield, since I didn't see one
also thought about making a mastery like SVEs to increase either the time you can harvest tea leaves or increases tea leaf yield off the bushes, but that is also apparently C#
yeah anything like that is C#
I always end up thinking of useful things that are created outside of my scope :')
something something bird xkcd
you can also decompile a dll to see something approximating its original source code
also is better junimos abandoned or just.. mod auth is away for an extended time
didnt it receive a recent update
though the author stated they are inactive and want to hand it off yes
december which I suppose is recent
If it's this year that's plenty recent imo
prismatic waves
Wowa
or just random (this is sped up 4x)
Mesmerize the crows and make them slam into the side of the farmhouse. Save the crops with epileptic flowers!
I am so downloading your mod the moment you upload it
@inland rain I tried making a custom balloon, but the game didn't like it and then hard crashed.. maybe I am being a dummy and made a typo somewhere but I cannot see it.
yeah you can't Load, it's exclusive; you have to Edit
EditImage
doh
can set custom prismatism, e.g. two-tone:
{
"Action": "EditData",
"Target": "aedenthorn.PrismaticFlower/dict",
"Entries": {
"597": {
"Speed": 2,
"Color1":"#237FFF",
"Color2":"#BFE4FF"
}
}
}
for blue jazz
use fairy dust to make a flower prismatic
or flowers have 5% chance to be prismatic when they grow up
I was going to add an option for custom balloon items, but it got complicated around texture loading
this is why we do what we do
sorry Tilly
NOT THE SHORTSSS
https://www.nexusmods.com/stardewvalley/mods/45944
for everyone to enjoy Erinthe. 😛
when did content patcher add audio support?
asking b/c I'm writing a bit about the depreciation of Custom Music (and dont' want to dig through CP's massive changelog).
SDV 1.6 added the Data/AudioChanges asset
i'm not sure if CP needed any special code to support patching that asset, but 2.0 was the first version for SDV 1.6 so that's when it became possible
TY
audio changes are a bit different and less flexible than other changes
I know and I still and not completely sure how to implement them -.-'
Wym by "conversion guide thing"?
I'm looking to do the equivalent of action:load, target:[kind of footsteps], fromfile:[mod asset], when:[playerisridinghorse] and I'm pretty sure I know what my targets and condition are named, but I'm having a hard time figuring out what I'd do differently from the wiki's example in Modding:audio - specifically, setting it up to play the mod's audio instead of the vanilla ones when the player is horseriding. I'm espically clueless as to how the game's audio files are targeted.
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"{{ModID}}_horse_flute": {
"ID": "horse_flute",
"Category": "Sound",
"FilePaths": [ "{{AbsoluteFilePath: assets/horse_flute.ogg}}", "{{AbsoluteFilePath: assets/horse_flute2.ogg}}", "{{AbsoluteFilePath: assets/horse_flute3.ogg}}" ],
"StreamedVorbis": true,
},
}
},```
You won't be able to do that with Content Patcher, and even in C# it won't work right because once you change an audio asset with Data/AudioChanges, it can't be un-changed. If you wanted it to go back to vanilla, you'd have to then put the vanilla sound in your mod too and re-patch it with the vanilla audio to reset it.
i don’t think you need to worry about When though because the game already has different audio cues for walking footsteps vs horse hooves
so you can just unconditionally change horse hooves to be motorbike sounds
If that's the case then yeah just replacing the hoof sound permanently is fine
{
"LogName": "Add Motorbike Audio",
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"{{ModId}}_Music": {
"ID": "{{ModId}}_Footsteps",
"Category": "Footsteps",
"FilePaths": [ "{{AbsoluteFilePath: assets/tractor.wav}}" ],
"StreamedVorbis": false,
"Looped": false,
}
}
},
that’s adding a new audio cue
what's the difference between adding an audio cue and an audio asset, then?
I'm not sure what you mean. An audio cue is an asset.
that naming convention seems bonkers - cues are usually signals telling something to happen, right?
audio cue isn’t like an official term or anything
or rather an audio cue is a type of asset like images are a type of asset
Cue is the official class name. I wouldn't say the word cue can only be used in the strict context of "something that triggers something else"
the ID should be the same name as the vanilla one if you want to replace the vanilla sound
It's just the aural equivalent of a visual cue
so, going by the content.json of https://www.nexusmods.com/stardewvalley/mods/7145, there is actally overlap between the two.
That mod predates even 1.5
sandyStep
snowyStep
stoneStep
thudStep
woodyStep
Cowboy_Footstep (which is used by pets, some menu sounds and Prairie King)
grassyStep
except the json in question, which before it was depreciated did exactly what I am trying to do, address three footstep cues, all of which are listed in the modding:audio page as being used by the player:
{
"Music": [
{
"Id": "thudStep",
"File": "vroom.wav",
"Preload": true,
"Loop": false,
"Conditions": "LC Game1.player.isRidingHorse()",
},
{
"Id": "stoneStep",
"File": "vroom.wav",
"Preload": true,
"Loop": false,
"Conditions": "LC Game1.player.isRidingHorse()",
},
{
"Id": "woodyStep",
"File": "vroom.wav",
"Preload": true,
"Loop": false,
"Conditions": "LC Game1.player.isRidingHorse()",
},
]
}
limey is there anything with horse in there
I forget what the horse uses, can just ride it and use the debug logSounds
to see what sound it uses
If there is no horse specific audio, then my original response will apply again
there does not seem to be any horse-specific sound, according to the wikipage
which brings us to "how do I construct these six conditional audio replacements"
C#
game often uses sound effects for one thing and merges them together with other sounds, which might have unexpected results for sound effect replacement.
if you’re not wholesale replacing one audio cue permanently then the answer is C#
And specifically you would need to harmony patch the game code itself if not going through AudioChanges
Not going solely through it, anyway
but again this all depends on what sounds actually play when riding a horse
horse mainly uses thudstep on ground and stonestep on stone.. and just plays at a different speed to a player walking
well enjoy your dive into harmony then 🙃
Thought the leaf was a fancy red horseshoe
Whelp, guess I'm doing this while not great at CP... feeda.
"there's no place like home"
There's no place like Forest (100, 25)
esp fitting becase the horseshoes are a nice, shiny silver!
I don't think we're at Forest 99,25 anymore
Out of curiosity, does anyone know why Platonymous stopped maintaining his framework mods?
since he's the author of one that would've allow me to skip the C#.
I'm more of a Forest (31, 41) guy myself
gasp A fishmonger!
-# I said that bc its the first 4 digits of pi 😅
some of them just became obsolete
Those are the same thing
well yeah. its called an elaboration
fair enough, although I think Custom Music's functionality needs to be added to cp properly as it currently doesn't actually let you patch audio. Mleh.
Can I use %revealtaste to reveal an entire category/context tag for an NPC?
No

Could there be some kind of trigger action workaround? Or at least to make it not one disgustingly long entry in the i18n file?
Content Patcher does not add it's own functionality save for very few exceptions.
It's purpose is to let you patch assets and that's basically it.
It's not going to add it's own way of editing audio.
It _does _ let you patch audio already.
Actually, what other ways are there to reveal an NPC's taste? Is it actually just the %revealtaste dialogue command?
The fact that the patch can't be easily undone is the games fault.
clarification: patch as in "conditionally replace sfx"
You still can do that, you just need the opposite condition to replace it back as necessary. Annoying, but you can do it, and again, not in CP's purview
music and sound is stored differently compared to other assets
okay then. Would either of you happen to know of a C# mod that does the described function that I can use as a reference, then? -_-'
I'm not aware of any mods that edit horse footsteps specifically. Lots of mods out there that use Harmony though, but you'll almost certainly need a transpiler or multiple. There's a guide on the modding wiki for Harmony, I know that
Using Harmony or C# in general to do custom things is very often very DIY, including the "figuring out the best way to do it" part
Clarification: the temporary overwriting of a base game audio file bit, not the horse sound
But any mod that uses Harmony can at least be a good reference in how to use Harmony in general
Yes I know
It would be the same idea regardless
You have to find where the cue is used in the decompile and figure out the best way to replace the cue id, and the best way to do that will vary depending on the specific cues
Sometimes it will be very simple and sometimes it will be very difficult
So the first step I would take is finding exactly which function controlled the footstep audio
does your mod have to be a vanilla horse replacer; if not you can look into this
https://www.nexusmods.com/stardewvalley/mods/35810
aannnd this is where I give up, because my brain haaates actual code. I have to trick it into actually reading the stuff instead of registering it as illegible text, no way will I be able to get it to do enough of that to actually figure out what I need to do.


On account of permissions, steps 4 & 7 of my mod's instructions are as follows:
-
Download CK's Ducati Motorbike (https://www.nexusmods.com/stardewvalley/mods/2918) and the classic version of Tractor Engine Sounds (https://www.nexusmods.com/stardewvalley/mods/5781); Do Not install them or download and install any of Tractor Engine Sounds' listed requirements (unless you want the Tractor Mod).
-
Move "horse.png" and "tractor.wav" from their original locations (listed in step 6) to the "assets" folder inside the "[CP] Horse to Ducati Motorbike Conversion Kit" folder.
However I will now go look at that mounts mod as it looks like I can use it as a means of avoiding C# and, by extension, my brain's annoying quirks.
you don't even need to tweak your code that much; just make your stable changes into a separate building and load the bike textures into a new path
additional work would be registering your building with that mod
- which wouldn't even be that much additional work. Man, I should've thought of using something like that earlier!
I wouldn't need to specify a new animation cycle if using the default horse one, correct?
so, the to-do is now:
1 establish independent loads for the mod assets
2 establish the bikeshed building
3 specify assets used by new mount
What TMX editor do y'all use?
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
xnb is not a map file
Omg thank you I am a total newbie at this
@brittle pasture I am doing something wrong in Extra Animal Configs, right now my dodos are vicious little murderers. They're supposed to dig 1 random bone a day, but right now, uh...
Would you be willing to look at it for me? 
Necromancer dodo... scary
sure post your code
yummy
it seems harmony transpiler patches are more efficient because it doesn't have to inject the code at runtime during function call? so if I'm patching something called frequently, I should go with the transpiler regardless? can anyone confirm that?
hmm dig up animals only dig when they're outside right
wacky
Easiest way to check would be to benchmark it yourself (which I have not done) but I would be surprised if anything you were patching made the difference anything but completely negligible here.
Prefixes/postfixes/etc are also only applied at startup, at runtime it's pretty much just a call
You can check this by turning on Harmony's debug features and inspecting the file it dumps on your desktop
I'll be at work for a few more hours so I'll look more closely later
for now can you also upload it to smapi.io/json? thanks
Thank you for your help, as always
How do I know what layer something I want to remove with EditMap is on?
view the map in Tiled (press H to highlight only the current layer)
Ahhh, gotcha!
I think your code managed to uncover a bug in EAC; please try this version and see if the issue persists
(your code is also missing the dig up override for the bone fragment produce (881), but it's only part of the issue)
(for anyone interested the issue might be that I overwrote FarmAnimal.GetHarvestType to also take an animal's current produce into account, and also used it to check an animal's base produce type like an idiot. this is likely also responsible for the various bug reports on Immersive Manure of people being able to milk manure from their goats)
gods I want to burn this mod's code base into the ground and do over
good news: you can do this today if you want to
New quote added by atravita as #8030 (https://discordapp.com/channels/137344473976799233/156109690059751424/1502067092923613184)
Whelp, time to see where I left off last night
(sorry if my lingo is wrong, I'm still learning how to phrase mod things)
Is it possible to make it so viewing a certain dialogue string is a trigger? I'm guessing not :P
I'm working on a small tv channel mod to teach myself basic token use, and the scope creep wants me to have villagers react to what was mentioned. The episodes are randomized, so I can't rely on a certain time, only what string in the i18n has been seen by the player
If you use the new one broadcast API it should be possible
Iirc it supports running trigger actions
Ah.. shoot.. I'm gonna have to map patch the festival of ice with my change to Cindersap Forest...
that's wonderful news, that's the framework i'm using! thank you :)
The reason why I said that is because it seems that I need to edit Content > Maps > BusStop.xnb to change it.
So I need to find a way to have it let me inside to fix that
Tiled cannot open these files it seems so I need to know how
Well do you need one
Just a heads up, BroadcastAPI doesn't currently display custom channels when clicking the TV if you are on mac (this might also affect your users), the mod author is looking into this, though sadly they don't have a mac themselves so it might take a while.
Have you unpacked your files yet? Unpacking them is what lets you open them in Tiled
Once I am done, how do I make Stardew recognize it and run it? Do I need to figure out how to repack it?
where can I find the list of (smapi) console commands?
no
No, you use the unpacked file to make your own map patch and use content patcher to add that map patch into the game
[[Modding:Console_commands]]
ty!
that's a great tip, thank you! i'll start working on an alternate framework version.
do any of you here have tv channel framework recs that arent broadcast api? i'm not brave enough to just code it in myself yet ahaha
Is this not how you replace maps via C#?
public const string MapAssetPath1 = $"{ModEntry.ModId}/Maps/Basement1";
///
// On Asset Request
if (e.Name.IsEquivalentTo(MapAssetPath1){
e.LoadFromModFile<Map>("Maps/EmptyBasement1A.tmx", AssetLoadPriority.Medium);
}
if (e.NameWithoutLocal.IsEquivalentTo("Maps/LewisBasement"))
{
var editor = asset.asMap();
var test = ModEntry.StaticHelper.ModContent.Load<Map>(MapAssetPath1);
editor.ReplaceWith(test);
}
Okay, I'll finish editing this map and I'll be back if I can't figure that part out (likely)
Thank you!
Bc I'm getting the following error:
"Failed loading asset 'Nullnnow.MS-Books/Maps/Basement1: The specificed path doesn't exist"
Considering Manny mentioned something about visiting the wizards tower on a previous event, then yeah
If you aren't on mac i suggest going with BroadcastAPI still despite the mac issue, otherwise i believe the only tv channel mod for 1.6 is Custom TV Channel, though I don't know if it can do what you detailed in your original message.
Otherwise it would just be kept as a mystery
I also put a log statement right before calling LoadFromModFile<Map>("Maps/EmptyBasement1A.tmx"), and that never seems to be called either
i.e., when loading MapAssetPath1
what i was asking about was an idea for a later update, so that's no problem!
i'll finish up my dialogue and look into the backup framework for either publication with launch or with my first update, (depending how difficult it is for me to figure out lol). thanks! 
Alright, I have changed my elaborate stable reskin into an entirely building and now the textures aren't working. Could someone please read over the content.json and tell me what I f'd up?
https://smapi.io/json/content-patcher/9f2dbde12c05420cbf367ce469c6a80c
How do I properly ask for a mod that's an AI translation of my own mod to be taken off nexus?
The report button thingies system is confusing me
This appears to be working, thank you!
Well it only took a LOT of frustration and messing up my unpacked file for the festival of ice map but I think I've corrected the map for those festivals
I'm still really struggling with trying to replace maps via C# 😅
Commuinty guidelines id guess? Since its using your assets in a way you dont give permission for
Then stolen content and answer yes on being the owner (I cant go further than that)
Report it under Report Abuse and state the violation of your perms.
Ok yeah, that's what I had mostly assumed but I wasn't sure, thank you both!!
I'm not sure what Nexus' policy is on this but as the author of your own mod, I'd reckon they'd take your report seriously and take action.
Nexus is very author-favoured when it comes to permissions
(also applies to unauthorized publication of translations, if your perms explicitly state it!)
did the perms specified on your nexus page actually limit anything though?
I had just used the default perms
Their translation is opted in to donation points too so ik that at least is explicitly stated as not allowed
I'll make the report, ty guys for all the help! 
Progress update: the print statement is now get called when trying to load the map, but I'm getting the following error:
[Money Sinks - Books for Dark Offerings] Mod crashed when loading asset 'Nullnnow.MS-Books/Maps/Basement1'. SMAPI will use the default asset instead. Error details:
SContentLoadException: Failed loading asset 'Maps/EmptyBasement1A.tmx' from SMAPI\nullnnow.ms-books: the specified path doesn't exist.
And this is my project structure
I'm still having problems with this. Updated json: https://smapi.io/json/content-patcher/73da7606d66b4d519ee551f62268b73d
The animaldoor animation and custom mount portions are just not working and I'm not sure why
Custom Mount: https://www.nexusmods.com/stardewvalley/mods/35810
I currently have the following:
public const string BookAssetPath = $"{ModEntry.ModId}/Books";
public const string MapAssetPath1 = $"{ModEntry.ModId}/Maps/Basement1";
//public static Texture2D BookTextures = null!;
public static void OnAssetRequested(object sender, AssetRequestedEventArgs e)
{
IAssetName name = e.NameWithoutLocale;
if (e.Name.IsEquivalentTo(BookAssetPath))
{
// This works just fine
e.LoadFromModFile<Texture2D>("assets/books.png", AssetLoadPriority.Medium);
}
if (name.IsEquivalentTo(MapAssetPath1))
{
// This doesn't work
ModEntry.StaticMonitor.Log("Loading Map Asset", LogLevel.Debug);
e.LoadFromModFile<Map>("Maps/EmptyBasement1A.tmx", AssetLoadPriority.Medium);
}
remember the stuff about AnimalDoorOffset and all that
Your offsets r back to 0 again
of course its that bleeeeeh
Does a translation mod work if has an i18n, but the mod that it's a translation of does not have an i18n?
It's probably cus your Maps folder isn't getting deployed
How do I deploy it?
Either move that to assets/ or look up the thing to include the folder in build (iirc it was something modbuildconfig does)
assets and i18n are special bc modbuildconfig already include those
I'm pretty lazy so i just put my shit in assets always
Probably not
no cuz there's nothing to i18n
It's not impossible that the original set their translations up in a weird way
Progress!
But normally you dont really even make a i18n mod
It's just i18n file with matching folder structure so that it goes into the og mod
It still isn't working, but that's bc it isn't recognizing a tile sheet
well if a mod has no i18n/translation support at all then it wouldn't work though
This is why I could only say "probably not"
Because it uses tokenizable strings
A translation mod can use an i18n file in its own mod to use in editing Strings/Whatever to be used in tokenizable strings in the original mod
(I'm not saying LoC doesn't use its own i18n files either, I don't know, but it wouldn't need to for translation mods to work if it did do its edits this way)
Ok good to know, thanks!
... And nothing changed 
aauughh that's problematic.
He's completely fine once I talk to him but at the start of the festival he's only 16 x 32
Is this not how you replace maps in C#?
private static void EditBasement(IAssetData asset)
{
if (true)
{
var editor = asset.AsMap();
Map map = editor.Data;
var test = Game1.content.Load<Map>(MapAssetPath1);
editor.ReplaceWith(test);
//// TODO: Add minecart location
//editor.PatchMap(patch);
}
can setting up additional characters specify a 32x32 sprite?
oh goooodddd please tell me I can make it a 32x32 sprite for the festival
what framework are you using normally
Is that to me or Null?
you
Content Patcher I'm assuming
how do you have your NPC be 32x32
Fixed! (again.) Now, onto the custom mount issues - namely, the mystery of the nonexistent motorbike.
pooh core? something else?
I just have their size marked as 32 x 32 in the characters file?
Sorry If I sound a little rude, I'm very out of it right now 
CP doesn't, the game does. That said,
Note: sizes bigger than 16×32 will cause issues like broken spawning, pathfinding, misalignment in the perfection end-game slide show, etc.
Plausibly just part of the "etc"
please compare https://smapi.io/json/content-patcher/73da7606d66b4d519ee551f62268b73d to https://www.nexusmods.com/stardewvalley/mods/35810
Yeahhhh they don't Pathfind, I don't make them outside of one event where I have them move in a single straight line where it worked just fine
one workaround i can think of is patching your NPC in as a TAS and having something like BETAS handle the dialogue to fake an NPC
(not asking chu{e} in particular, btw)
me: hm, i could use the junimos popping up everywhere in the CC when completed for an event thing...
me: doesnt find it anywhere welp, ok, new idea-
Could I theoretically map patch the events with trigger actions to trigger dialogue? And just have Darkrai on the map as a sprite from a tilesheet?
yep, though a TAS will theoretically have fewer compat issues
wait no that wouldn't work with them moving during the event...
I'm actually not sure if tile actions are allowed to work inside events/festivals
At least not yet?
custom ones definitely aren’t
Ngl I don't know what TAS is outside of the speedrunning community
I feel like I remember something about that in the 1.6.16 alpha thread
it may have been me
oh damn yeah
(also TAS = TemporaryAnimatedSprite)
they’re vanilla to me
Trees Against Serpents
There are vanilla tile actions that can create dialogue, though
I can use TemporaryAnimatedSprites during a festival? I guess it is an event?
Tea And Scones
re: this, you could just have a message if you don’t care about the portrait, like the fair goers
TextOperations can also be incompatible when you're dealing with editing a festival script, though
There is also just that one NPCMessage one with the dialogue box isnt there?
yeah there’s no good way i can think of
Progress!
The one that requires an NPC to be nearby, but you could just hide your cut-in-half Darkrai just off to the side beneath a tile or something
Like put em beneath a tile on the AlwaysFront layer
That you'd probably EditMap in
yeah honestly I might just try to hide it like that
man finding positions for him was already a goddang nightmare 😭
Wait I'm supposed to care about compat at all? 
djkajdks i mean maybe not
-# that's a joke lads 
But yeah any festival taking place in town should be easy enough, I know a vanilla tree. granted players may be able to chop it but... That's on them 
buildings
Oh, true...
specifically, behind them
I also gotta take into account BOTH vanilla layouts which is really frustrating cuz some festivals get REALLY limited
Festival of Ice loses a TON of space because the second year places boundaries way closer
ambient light?
Hey y'all does this look out of place?
(Flower Dance)
I think it looks fine!
I might actually need to move it one over...
halp pls 
I've looked it over myself but can't figure out what's wrong
I've (I think) fixed 6 of the 8 events
But I'm not gonna lie I was ALREADY struggling with the 2 beach events, I got NO clue how I'm gonna hide his right half in either of them
floating behind willy's fish shop
hovering ominiously over the water, unseen to all but the mod author
Well he should actually be accessible by the player 
Theoretically could work, but he's also meant to be hiding from the residents of the valley. And I imagine they don't see the world in the top-down-ish perspective we do 
behind the fish barrel then?
Boom finches!!!
both pieces aren't always front, so when the sprite fixes from being talked to, 1/4th of him will be floating over something it shouldn't be
It wouldn't be so hard if pierre (the prick) didn't completely change the location of his shop between the two layouts 
although.. I do have an idea..
That doesn't look terrible at all 
But I can also re-use this idea for the moonlight jellies!
1.5?
Yes? It's been out for a while
we already at 1.6
I'm gonna have dinner, then I'm going to add the powers!
Version 1 of this mod is steadily drawing closer to release!
oh sonuva-
LOL
I can't get these temp actors to work...do I have to use TAS if I want to add kids to an event or am I just doing something wrong? No errors on smapi, event runs perfectly fine aside from the kids' sprites not showing up. It is the second one on here:
https://smapi.io/json/none/89e42b57cc794f44bfa50b9a9674560e
It may have been an old post on X or somethng. Sorry about that. Yes, it was an old account.
what do those {{Toddler}} tokens resolve to and are they ready at the time of the patch
they are ready at time of patch, right now I have them as Toddler_dark and Toddler_girl_dark
Yall, I just got jumpscared by my birdfeeder. I was watching the videos it gathered throughout the day, and for a brief moment thought my fence was on fire (it's not, its just the way the light looks through the leaves 😅)
i doubt this is the issue, but maybe try capitalizing Character
you can also try a patch parse and/or patch export
i've tried that as well 
I'll try to patch parse and export rq
Version 1.6 was released march of 2024, so yes mods are updated (and created) for it now. Also the author of SMAPI specifically, Pathoschild, is one of the Stardew developers currently working on the 1.7 update for SDV 
And whenever the 1.7 update comes, I believe I've heard that mod authors are given time to update their mods before game updates officially go live (pls correct me if i'm wrong though)

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 19 C# mods and 2 content packs.
what if I hit a three for three and this whole problem is bc of another typo (tb to "recieved" and extra "Data"
what does a patch export of data/events/forest look like
yeah hmmm
and just to make sure, you have the coordinates correct? they're not accidentally off in the void or off screen or anything?
i'd also maybe try changing {{Toddler}} to Linus or something to see what does and doesn't work
(Also this is unlikely the cause of the issue of the toddlers not appearing at all, but the sprite height should be 32, yar?)
man, first time ever using advancedmove command and they do fine until they reach their destination and just voidwalk, sigh
try adding a pause and facing direction at the end
i always have to do that
omg i figured it out
it was triggering the "NoKids" event, so kids werent spawning duh 🤦 I should probably add some more preconditions to that
huh, now the event at least continues playing but they still walk offscreen...
tysm for your help @urban patrol process of elimination helped me realize my mistake
i always test with debug ebi first rather than testing naturally triggering
did i mayhaps do it wrong? (ignore the additional text thing i obviously not post my miles long events list) https://smapi.io/json/none/fc11ccd28512431c9f58184217e8de73
Curious if anyone has a solid Tiled terrain brush for the ocean floor? Utilizing the corner option, but it's a bit choppy.
which advancedMove?
both
line 38 and 40?
yea
oh 0 isn't a facing direction
context is they walk into the place and both walk up to the kitchen where the other npc is. i thought it was p straith forward but i guess its more complicated?
advancedMove only knows it's a pause/direction when both integers in the pair aren't 0
so it uses 4 instead
huh
To make an actor pause, use the direction to face and the number of milliseconds to pause. 1 is right, 2 is down, 3 is left, and 4 is up. The reason 4 is up and not 0 is so that advancedMove can tell the difference between a pause command and a move up/down command.
oh frick i forgot about that
yup, that was it, oops. typical 3am moment, i guess. thanks for the help!
aaaand i just found out by accident that all my regular gift taste i18ns are gone for all npcs? including Constance? huh
do you use git
yes
I'm not proud of this solution, but... 
but i am not editing the mod directly in my git folder
i was just hoping you had a backup
hmm
misery, it was already gone there when i started using it
no one ever reported anything to me, sigh
nothing a bit of repeatitive copy-pasting wont fix, i guess
I forgot about the dialogue I gave darkrai here, suddenly I am EXTREMELY happy with my choice of cover for him 
@strong kite Question: Why have you been sticking that haunter emoji at the end of every post?
*almost every
It's like a non-serious jokey emote, from the Pokemon Infinite Fusions discord
Like a self acknowledgement that something's silly or sarcastic
It comes across as a ""creepy" ha ha lookit this" to me, thus the question. Probably the result of emojis' connotations not always - uh, coming with them when used on other servers, if that makes sense? So I've been interpreting its meaning based on its image and name alone, and thus have not realized the full extent of its original connotation, if that makes sense? (More info on this phenomenon can be found by looking up the "communication process" if anyone's interested)
Also, thus why I asked.
Hi Everyone! Did I, like, miss the Memo that went out where we all as modders collectively agreed that Oak Resin is the single most important fluid in the entire game? Started a new modded playthrough recently and all my mods are asking for like 5, 10, 15 bottles of Oak resin for every machine. I need to know, I have a few mods on my list of mods to make, I need to know if they must use Oak Resin.
I was unaware of this phenomenon but now would also like to know more about it
lol i think i asked in the wrong channel, but i am still having issues changing some dialogue around. is someone free to help walk me through it :')
Clarification: it was mostly the sarcasm that I wasn't picking up on.
what are your thoughts on adding tilesheets to maps for the sake of using a single asset?
I don't see much wrong with it
I mean I added like 8 tilesheets for one map for like only a handful of assets each 
Give me a bit and I'll dig up a better solution for you from the vanilla tilesheets or make a new one for you to use - my only caveat with the latter is that credit is given where it is due.
I mean- I don't need a better solution tbh, what I've got works
It does exactly what it's supposed to but it sticks out like a sore thumb.
Suggestion:
Use the three-tiles-tall potted tree found in the upper left hand corner of TownInterior2 and a one-tile-wide bush of the correct season from bushes.png (found in tilesheets, not maps)
For clarity, only use the pot and trunk of the potted tree.
This should look much more congruous with the rest of the festival than your current solution without deviating from its concept. However, it might also not cover enough of Darkrai (sp).
Assertion: I find your solution clever and wanted to honor its spirit, which is why I'm trying to do the same things with different plants.
Sorry if I'm being a bit overbearing about it, I'm - not great at social interactions.
does anyone know, if I used a randomized dynamic token to set the reward of a special order, would it stay whatever it was when generated or would it change each day?
even after generated on the board/accepted
(if nobody knows I'll test it soon and can report back if anyone else cares :P)
Ah, I see I had misunderstood what you said before, that's my bad. Something like this?
Exactly!
I'll see how it looks in game
Oh shoot actually it doesn't work... the map struggles to find something not located in the map folder, and the bushes aren't in the map folder
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

just open the tmx in a text editor
When I had this problem, I found that solution to be a very easy fix!
So I tried this, I like the pot a lot. I'll try with the actual bush now
How much do I need to add to the path??
Oh okay
I kinda like it? It covers up everything it needs to but it itself is a bit strange being cut off at the sides
Alright yeah I'll go with it
Thanks!
turns out the random token works fine for the reward as far as I can see (or I got the same random roll 3 days in a row) (edit: nm, I see what I did wrong with the id)
Since I whipped something up anyway:
(three vanilla potted plants cut apart, cloned, grafted together and then reanimated, lol)
Please don't feel obligated; I was inspired and wanted to make it.
Hello, how is everyone doing? I’m getting a really strange error. The ingredients are showing up as sap and wood. In the link there’s the recipe code
i don't know exactly how to fix that but giving the default torch recipe is what happens when there's some kind of mismatch between like the object and the recipe name or something
Yeah, but I can’t find the problem, or at least I can’t figure it out. It’s probably something super simple, but it feels like the simpler the problem is, the harder it is to spot the error hahaha.
here's the most recent occurrence of this error i could find
@golden spire You should be able to create custom balloon objects now, just tell the mod about their texture path:
{
"Action": "EditData",
"Target": "aedenthorn.CraftableBalloons/dict",
"Entries": {
"MyMod_PurpleShortsBalloon": "MyMod/PurpleShorts"
}
}
maybe going through old conversations like that could help?
Are you asking me?
I JUST REALIZED I FORGOT TO DO THE ANCIENT FRUIT BOOK

i'm suggesting it, or the alternative is wait for someone smarter than me lol
I’m here. But I do not check the box as smarter than Nic
means a lot coming from the wise old lorax
I wouldn’t even know how to search for a specific conversation about the topic. Besides, I should already be asleep, but I wanted to make one last attempt hahaha. It’s not urgent and can wait until tomorrow anyway. Thanks for your time and for trying to help.
just a search for 'torch recipe' is what i did
like this
Buenas noches, senor. 🙂
I think it’s how you’re parsing the recipes
I just finished reading it. I can try that, although my other recipes aren’t set up that way and they still work, but it doesn’t hurt to try hahaha. Thanks!
It’s been a long day and my eyes are tired, but I think this would work:
"Entries": {
"{{ModId}}_Turkey_Feather_Omelette": "-6 1 Mizu.Turkey_TurkeyEgg 2 Mizu.Turkey_TurkeyFeather 1/{{ModId}}_Turkey_Feather_Omelette/null/Turkey Feather Omelette"
}
(On mobile so poorly formatted)
(if/when you do figure it out, lmk what the issue was? so i can more accurately tell others in the future how to fix it)
Needs a value between ingredients and yield (the default ones in the wiki are fine)
null might work there too? I forget, but that field can't be skipped
Fair enough. Was running off memory and I haven’t done a recipe in a hot minute
I wouldn't think that the unlock condition and the display name fields being blank should not be the issue here as the number of / field dividers appear to match up, and the blanks between the / are for fields that are default or unused? I would expect it to be something along the lines of the feather or egg or the omelette not being properly defined as objects.
(I am also tired, so it's possible I miscounted, but I think that was the right number?)
I’ll try it, although in the last field I’ll use the translation key so it shows the name according to the player’s language.
There should be rules against helping while tired /lh
The number of slashes in the smapi log at the end of the recipe is incorrect - there should be enough for 3 fields (the unused one, unlockcond, and displayname) but there's only enough for two
(although looking at the vanilla recipes you might be right that it shouldn't matter at all)
I’m lost now... I don’t even know what you all think I should try anymore. See, this is what I already did before coming here to ask:
- I wrote it the way I usually do for the other recipes in my mod, and it didn’t work.
- I wrote it another way, didn’t work.
- I rewrote it replacing the ingredients with vanilla objects, didn’t work.
- I changed the recipe to the way Mizu writes them, which is how you see it in the link I shared, and that didn’t work either.
- I checked the recipe IDs and item IDs, they seem correct, but it still fails.
- I removed the conditions and it was still failing.
That’s everything I tried hahaha.
Question: Is this editing Mizu's mod, or is it yours?
I’m editing my mod.
If it's the second, then the {{ModId}} may need to be written out to Mizu's if the yielded dish is from Mizu's
Unless the yielded dish is created in your mod and uses your own mod ID in the object name
(I closed the log, so I'm not sure what the object name was anymore)
The recipe is from my mod, it’s not part of Mizu’s mod, I’m just using her items. This recipe actually came from a joke she made in a comment on her mod, so I talked to her about whether I could create it, and she said yes.
okay, reopened it, ignore me, I see the object being created earlier in the code
do you by chance have an error log to share?
seriously tempted to ignore my ongoing projects in favor of doing my own take on vanilla hybrid crops
can you try putting 1 10 in the unused field just to try a thing?
the field is unused but it might still need SOMETHING present even if the value gets ignored, since it doesn't have a default value listed
Who is forcing u Mr Lorax
Pick up ur butt and sleep in a nice fluffy truffula tree
Yes, although I checked it and didn’t see any error related to that. In fact, I’m testing it in a test save, not in my regular playthrough.
Give me a sec
(think that's three of us now that have said that lol)
If it does in fact not throw an error if that unused field needs a value in it, that is quite annoying.
And if that is the solution, it necessitates an update to the wiki to indicate that a value must be present.
I’m like 70% sure this has been a thing
I'm super tired but I also can't recall a time I haven't put a value in that field
When I first did recipes I struggled with it
Oh, similar to one of my mods haha, although I’ve kind of left it a bit abandoned because I’m juggling a lot right now three things at once yes three not two hahaha with some translations and my main mod.
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 95 C# mods and 271 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Reminding me, I need to convert parts of my mod to i18n still, ugh
I think it's one of those 'someone experienced with programming would default to not skipping it but someone who isn't would think it can be skipped' things
I'll go toss a note into the wiki
It’s been discussed over and over it’s just never been put on the wiki I think?
HAHA
I knew I was talking about it back then
added
Thank you!
That whole wiki page could use an overhaul though, I'll see if I can work on it later
I want to say it works with any numbers
But I haven’t tested
Would be good to test and add that if it’s the case
Pick any two numbers you want but the field must be present/filled in
Hayato, which of your mods is this?
Because I'm looking at the log and trying to figure out if it even TRIED to add the recipe due to the empty field, but I'm not sure it has.
holup I have a test mod for this pulls up modders pie
The funny thing is that when I look at recipes from other mods, every modder writes it in a different way. If you guys need to go rest, go ahead. I should do the same, and like I said, this isn’t urgent to fix and it can wait until tomorrow.
Answer my question first LOL
What's the mod name I should be looking for in the log
What does this mean? The recipe structure is different?
Or the numbers are different?
My mod is Farm of Tomorrow.
okay, so it did try
In my mod I have them written differently for the recipes. In other mods I’ve seen them written in different ways, and Mizu, who is the one I copied the structure from, wrote them the way I used here, and it works for her. Do you want to see a recipe from my mod that works?
@valid folio You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!
changing it to 0 0 and patch reloading doesn't seem to have changed anything about it ingame
-# also thanks to wumbus I now get to test this mod while listening to cantina music, praise wumbus 
This is the recipe string for modders pie if you'd like a reference
"{{ModId}}_ModdersPie": "246 2 220 1 -5 2 PurpleBook 1 390 3/0 0/{{ModId}}_ModdersPie/none/Modder's Pie",
This is a recipe from my mod that works without any issues.
Uhh yeah send urs ill compare to modders pie
Bc the structure can’t change?
ok, I´ll check it
/9999 9999
I guess we can safely say any numbers work there then
@proven spindle confirmed that the different numbers wor
OMG
stop..we are so together brain
I'll update the wiki note
The structure looks the same
Well, looking at Modder’s Pie, it looks very similar to how I usually make them. I was thinking, could it be a load order issue? I mean the mod load order, and if that were the case, wouldn’t removing the recipe conditions have fixed it?
Hmm hasmod should have taken care of that
Just to confirm, have you added that pair of numbers field? And have you slept a day in game after reloading it with that?
I’m going to try something. I don’t think it will work, but there’s nothing to lose by trying.
In my first version of the recipe, the numbers were there because I used one of my own recipes as a base that already had them. I close and reopen the game to test things; I don’t use the SMAPI console to reload the data.
What’s the current version of your recipe?
Wait so it’s not filled in?
It’s the one I uploaded several messages ago. I just made a small change to it. I’m going to load the save and I’ll tell you how it went.
Fill in all the fields before testing
No, because I was testing the way Mizu does it to see if it wouldn’t give me an error, but it still gave me an error.
Ok, but give me a second, I want to try the change.
Oki :3
I will, don´t worry
Looks like it does work even if the numbers aren't filled in as long as both slashes are present (not going to change the wiki note yet bc I think that might be more confusing to explain in there in the current wiki page format)
Maybe change the entry name in the shop to the same @valid folio
Instead of adding _Gus at the end
ok 1 sec
Yes although idk myself if null works, Im not sure if I’ve used it
(If it does then great if it doesn’t then idk
)
ok, testing...
Fingers crossed
Since you’re not at farmer level yet (level 25), you’ll have to have someone else do it for you
And the mod must be free of NSFW and AI
Here or in #modded-stardew, and ask someone to showcase it
It doesn´t work
Ugh rats
What if we’re focusing on the problem the wrong way? Maybe Yoba hates turkey feather omelettes… or the error is somewhere else and not in this file.
Have you slept a day after restarting the game? Not sure whether recipes get defined day before or day of
Try changing Name in the item entry to match the one with modid?
It’s usually a mismatch between ids somewhere
I can try
so I’m just trying to figure out where there could be different ids
And where they can be unified
Here
waiting gus...
I slept in-game and the error is still there.
What is the error again?
Is the error only visible in the game shop menu or are there any messages in smapi?
I’m visually disabled, I can’t see anything with a white background because I literally see everything as white even if there’s text or images, it blinds me hahaha. I don’t know how to debug it without waiting for Gus. No, I already checked the SMAPI log and there’s no error, but since I haven’t closed the game yet, I’m going to check if it throws any error. Was there something else you wanted me to test with the IDs?
Yus! Uhh let me see if I can explain it without the pic
In your Data/Objects entry, you have {{ModId}} as ur entry( and then the “Name”: field under it
The name and the entry name is different
Try making those the same
Lmk if you know what I’m talking about
The only two wild red errors are one from East Scarp with the Lavril mod, and one from a greenhouse furniture catalog mod that I always forget to report to Wildflour or HimeTarts.
This way?
"Entries": {
"{{ModId}}_Turkey_Feather_Omelette": {
"Name": "{{ModId}}_Turkey_Feather_Omelette",
"DisplayName": "{{i18n:Turkey_Feather_Omelette.DisplayName}}",
"Description": "{{i18n:Turkey_Feather_Omelette.Description}}",
"Type": "Cooking",
Yes
ooo good catch wem
Mayhaps dolphin is here to save the day
Well let’s see if it does anything xd
ok I´ll try
you're right tho, that is supposed to be the internal name
Your item ID is Turkey Feather Omelette but your recipe is calling for {{ModId}}_Turkey_Feather_Omelette
So it is that one?
Oh wait sorry, it seems wem has pointed that out.
not sure if that's what's causing this specific issue but it is an issue that has to be resolved either way
ItemID is {{ModId}}_Turkey_Feather_Omelette
Yar, so the Name field defines the item ID.
So you did set the item ID to be {{ModId}}_Turkey_Feather_Omelette at the beginning, but then the Name field changes it.
it works
Does the “Name” field define the ID? So I’ve been doing it backwards my whole life? And how did it even work in my other recipes?
The wiki does say that the Name field is the item's internal ID.
I misunderstood it the other way around when the person who got me into modding explained it to me.
Both the entry at the top and the Name actually define the internal ID. It's just that the Name supersedes.
Does it affect anything if I fix it in all the other items in my mod?
I usually just make everything the same now 
Oh interesting
The Name field is basically if you want to change the internal ID after the fact. Like in another mod or.something
Hmm depends on how it's done in your other mods, I guess...
I’m a bit confused… what happens if I change the value of the “Name” field in an item that’s already in my mod?
The Name vs ID thing is complicated and it's not always the case that Name supersedes it
Recipes however is one such case
"its complicated" is why the tl;dr is "just make them match always unless you specifically have reason not to. you will find out if you have specific reason not to"
I am not sure because I don't know how you do it in your other mods, the recipes and all.
Because if I don’t change it, it might cause problems in the future, so I should change it. But if changing it causes items in inventories or chests to break or error, that’s also a problem.
I am truthfully not aware of what all might break by changing the Name of an object rather than its ID
It might be completely fine or it might not be
https://smapi.io/json/none/e3f2714e12104628898881b3ac289d01
That’s a recipe from the same mod that works.
Is this recipe part of the shop?
Or any shop
Or is it given another way
So there’s only one way to find out… I’ll sacrifice myself for the cause. If I don’t come back, something terrible must have happened hahaha.
Gus sells it.
Hmm the answer is probably it’s complicated then xd
I know that changing the recipe ID or ingredients doesn’t affect anything even if it’s already been purchased. What worries me more are the items in my mod, like seeds or crops, so I changed the Name field in the seeds and the fruit of my Vanilla plant. It generated some with the original Name, and I went to sleep in-game. Now I changed the value of that field and restarted the game, so we’ll see what I end up with in my inventory in the morning.
Ohh yeah
If I change an id I would use migrate id but I’m not sure if that works with Name
Instead of the entry? Although they both set the internal ID
Have the others already left? I wasn’t able to thank them properly because they stayed here for hours with me trying to solve it, so if you see them, please pass along my thanks to them, and to you as well, of course.
Nothing bad happened. The items I generated before changing the Name field are still usable and do what they were supposed to do.
But if I change the ID, meaning the field above the Name field, it does generate the error symbol on the item.
Ah that makes sense
As for the recipes, I think what it actually uses as the value is the Name field and not the ID. That would explain why my other recipes work, since they use the value from the Name field (you can see it in the example recipe I shared) and not the ID. I could run some tests while I’m at it if you want.
You’re welcome! Hopefully this sticks in my head as well when I do recipes again :3
Trust me, I’ll remember it hahaha, it was too traumatic to forget hahaha. So if you ever run into this problem, send me a private message and I’ll remind you.
What’s your profile on Nexus? Maybe I could at least thank you properly. I do Spanish translations of mods, so it could be a way to give back a bit for the help and time you’ve given me.
No need to give back! Helping others is voluntary and also fun :)
My people is strawhatwem
That doesn’t mean I can’t return the favor hahaha.
If you’d like to translate anything my ice cream mod is the most fun and flexible! I made up names for the flavours so it’s not a clean translation into other languages.
I encourage anyone who translates it to try to keep the spirit of the name but add their own flair
ex. Joja Boja (what the hell is a boja?)
Oh, you’re the author of Tilly! I thought your avatar looked familiar haha.
That me 
I accept the challenge, I’ll get to it tomorrow haha.
Well, technically it’s today hahaha. Thanks again, and I’m heading out now.
night!
Ty, you too? Haha
It’s 2:30 pm for me as I’m on vacation on the other side of the world (relative to Canada) :3
Perth? (random guess)
would have been my 2nd guess, 3rd would be Indonesia
just joined, are we allowed to plug our own mods? 
Absolutely.
Oh, wild Dragon appears and I didn’t bring my Poké Ball. It’s 3:46 a.m. here hahaha. Limey, I sent you a private message on Discord, I don’t remember what it was about but I know it was something haha.
I made a mod that lets you put some vegetables in the dehydrator!
https://www.nexusmods.com/stardewvalley/mods/45327
do you want me to send that to the modshowcase?
if you think its worthy, hell yeah 
done
using C#, i want to load event data from a .json and patch it in during runtime, this is the general format where "foo" is the event id, "bar" is the event data, and "Farmhouse" is the location
how do i access the properties of the generic object in Farmhouse?
in JS, i'd just do loadedJson.Farmhouse[0].foo, i am having the damndest time with doing this with C# because i have no idea what types to load things as
You can reference Newtonsoft directly (its in your smapi-internal folder in your game folder), but most often people will make a class that matches the properties and types you expect and specifically load it as one of those classes (which SMAPI does via Newtonsoft of course but has helpers for you to do it without you needing to touch newtonsoft directly)
That said, are you sure loading event data from a json like this is the way you want to go about things (I don't know what mod you're making)
okay, so that is why ModData is a thing
Yeah, that'll load files from your folder for you
There should be a like, ReadJsonFromFile<> or something in there
In your helper
yes, it's a mod that requires C# for other things and i don't want to have two separate things for both CP & a .dll (as i understand it, they are mutually exclusive within a single mod)
yeah, that exists
i just thought it would be easier
but no, no shortcuts lol
Well loading it directly into a class is about as easy as it gets
yarrr, i'm just used to it literally being trivially easy in JS
I guess you can maybe technically load it as a dynamic or something. Or just as an object and reflect to get its properties
But both of those sound painful
I'm not sure if I can properly explain it in a succinct way but it is basically getting information about types and classes and methods and such at runtime instead of compile time
e.g. use reflection on your object to find if the real underlying type has a Property named foo in it, and then grab it via that reflection
ahhh, "reflecting" is "reflecting" on the assembly, like looking at itself in runtime
(that said, dunno what the actual underlying type would look like when its a newtonsoft JObject. you'd more likely need to reflect to use Newtonsoft's methods on that JObject)
yeah basically
There's no point to doing so in this case, but it can be very helpful in other cases. So helpful that SMAPI has helpers for it as well in your ModHelper
Often times, it's used to gain access to private members
Like private methods or internal fields
isn't that a symptom of poor code?
or are there valid reasons to do it regarding stuff you've written yourself?
Not necessarily. In an actual production codebase? Possibly. In modding, though, what other choice do you have?
(The answer is: a publicizer, which is what I use instead of reflection)
You wouldn't reflect for your own things
You reflect to gain access to the games private code, or another mod
okay, so if i'm writing something and reading my own data, if i'm reflecting i'm probably goobering it up, reflecting is for when i need to do things with other people's stuff
Generally yeah
And I only say generally because I wouldn't proclaim to know otherwise with certainty 
nonsense, make broad sweeping statements at 12 AM
live a little
thank you so much by the way, been tearing my hair out
You might reflect for your own stuff if you're doing some wild dynamic assembly/member construction or something
But most people do not do that
i hear assembly and my eyes glaze over
When I say assembly I mean like, your .dll is an Assembly
You can construct a .dll (practically but not literally speaking, though literally too if you really really want to) on the fly at runtime if you really want
christ
i'll take my duck typing and implicit arraylists and quack on back to JS, thank you very much
Careful saying that if you go to #programmers-off-topic /j
.then().then().then().then().then().then()
{{{{{{{{{{{{{{{{{{{{
}}}}}}} if(x > 0) y++ }}}}}}}}}}}}}
every linter's dream
await promise(); 🧘♂️

(And to be clear, this is just me being scared by non-strongly-typed languages because it hurts my brain.
)
When I install the mod, does my cooking skill need to reach level 10 to start unlocking the secret room, or do I only need the 5 vanilla skills?
That would be a question better asked in #modded-stardew, but I think mastery is unlocked with vanilla skills (may someone correct me if I'm wrong)
for real thought i was in modded stardew for a second LOL
setting custom two phase prismatism for Blue Jazz
Yipee! at first it was for personal use but I finally got the courage to publish it on nexus
https://www.nexusmods.com/stardewvalley/mods/45253
Congrats! Do you want me to showcase it?
oh! sure 
There you go 
thank you! 
congrats :D
the band polycule pog
Not at pc so I can't check the decompiled game files so hoping I can get answers here: do legendary fishes have any special mod data that sets them as the once per save file catch? Or are they just checked via their item id?
Asking because I need to exclude modded legendary fish from fishing quests and wondering if there's a generic mod data I can check for, instead of hardcoding item ids.
It's in the fish data
Nice
Thanks!
Question: How would I add a custom portrait for an NPC? Would I add a custom tilesheet of their portraits including the new one? Do I just have a 64x64 image of the new portrait I can append to the end of the existing vanilla tilesheet?
You can load your assets directly into the game and use it from there
How would I call upon it in dialogue? Just by using the next ID in the order starting from the end of their vanilla portrait sheet?
you mean like change expressions?
Yeah, like using it for a dialogue box
^
Ohhhh so the ID can be anything? I kinda assumed it'd have to be a number
what do you mean it can be anything?
generally speaking there's like a set list of facial expressions
but you can just use the numbers
This implies the ID can be anything rather than just a number
Which I didn't realize
that would be $6 and up not just anything
oh yeah you can add expressions
you would need to use the number bc custom ones don't have shortcuts like $h
Wait so it DOES have to be a number?
yes
the id is just the number, yeah
yes because it has to match the number of your portrait
Alright
it's even worst, it's automatic, you don't choose what it is
Oh phenomenal
Your 7th portrait is $6, your 8th $7, etc.
thats cause it starts on $0
Alright yeah
I've done a full set of portraits before so I know how it works, but I haven't added a portrait to a vanilla NPC until now
So I was just making sure
It just works the same then
you can call any of their portraits in dialogue as long as each one is 64x64
don't know its there's like, a limit of how many portraits you can do but like, you can do a lot
just look at RRRR
So if another mod adds portraits for this NPC, is it basically just chance whether or not the number I set calls the right portrait?
You extend downwards and hope no one else did lok
basically lol
That's why you make compats
you can just look at the portrait and use accordingly
when someone does a replacer its important to use the same order of expressions, at least
I mean this is just a very specific portrait used in a single circumstance so I guess if it gets messed up it's not a huge deal
If anything I guess I'm worried about mine messing up other people's mods
like the base ones are:
neutral
happy
sad
unique (character specific
)
love
angry
just add stuff after those
time was it was 100, because the dialogue parser only accepted two digits (so $99 was the highest available index)
that limit was removed, so now the upper limit is determined by the maximum texture size your graphics card can handle
,,,does avi know about that?
don't tell them
yeah avi is how we (some of us) figured out the limit was removed
ah right i forgot they were testing portraits limits
generally speaking you can edit the portrait to add a new expression but you'd need like, dialouge that uses it
they also know about the texture size because somebody did a 256 (4x) version of their 104 portraits and some of their users crashed due to exceeding said texture size limit
if i want to patch Data/Events/<location>.xnb w/ C#, should i be using the assetrequested event still? it doesn't seem like the events are ever touched on game startup
je suis confuse
graphics too high quality, computer dieded
yes
lots of assets are loaded on-demand instead of ahead of time at game launch
hey ichor how many expression does Lacey have
9
hmm, but if i want to patch in a new event that procs on day start in the farmhouse, it's not going to be available until some other event data is requested
or at least that's what seems to be happening...?
oh wait
i'm an idiot
probably some other cause for that issue. if you are using assetrequested, the data will arrive before the game needs it
i missed the call HA HA
I'm debating adding support for this with the Seasonal Cute Characters mod just because I actually use that mod, and It's not like the asset-side of things is gonna be difficult, basically just copy-pasting one part of the portrait to all the others... but then I'm gonna have to figure out how to actually implement that 😭
i have it printing out all the asset requests instead of just the one i'm looking for (like a smart person would) and i missed it in all the other start of day assetrequests
tyty @tiny zealot
unsure what u mean, sorry
https://www.nexusmods.com/stardewvalley/mods/5450?tab=description This mod adds a ton of portraits for every character giving them new seasonal and even festival outfits
mhm
I like it a lot :3c
Though I just don't want to figure out the when conditions with season conditions and all that.
uhhh pretty sure its using the appearence system which is pretty straightforward
doesn't that mod use Appearance now?
so you would just EditImage the assets they are using for that, dusting off hands motion
Idk 
This is new territory for me 
im unsure what exactly u wanna do. edit the seasonal or like, add more?
I mean I'm also not replacing anything, I'm adding.
oooh
depends on what exactly you're editing you can just, edit existing appreance fields or even add new ones
I might just not worry about it for now. I should figure out how to add for the vanilla appearance portraits first before figuring out how to do the same for a mod 
I legit don't know what I mean 😭
Again, new territory for me. Legit 0 clue what I'm doing
I'm saying things based on the context of what y'all have said and hope I'm getting it right 
feel free to use the link i sent, might help. but yeah, first figure out how to do before editing
Are you in an event
You have other ways if you're in an event
This is for gift dialogue
So just having loads for the files like this should just work?
Assuming purely based on this being how my custom NPC's portraits have worked (as in just loading them and they work without any extra work)
wouldn't this just replace the portaits
That's why I was asking how to do it before 😭
if you're adding new portaits for an existing npcs you're gonna have to use the "add to original image" methood
as in psychically paste them in
Oh, alright! How do I do that? Is it literally just pasting the original image into my files with the new portrait added onto them?
you take the old portraits, than add the ones you made below them. don't think there's a way to do without that
Alright yeah that's what I was saying. Alrighty!
surely you could PatchMode: Overlay your new portraits?
but what about the size
or just FromArea/ToArea
i guess patch mode overlay would work, you'd just need to like, have a big ol empty space
I mean like- I'm fine with whatever works and preferably is most compatible with other mods
would to area work because the applied image would be bigger than the currect one
yeah editimage lets you extend downward (but only downward)

Extending to the side sounds messy anyway cuz that changes the ordering of IDs
that's why CP doesn't let you do it lol
Alright so basically: Use this, editimage and overlay?
yeah
Alrighty!
as far as compatibility goes its hell, just so you're aware
I'm gonna need to load the images to a blank, right?
I am never gonna understand when I need to use the blank 
just edit image on patchmode overlay
blank is when you're adding new content. you're just editing existing one rn
Ah, alrighty
it isn't used for portraits anyway, really
Do I still need to explicitly load the portraits at all?
not for vanilla characters, no
no. it will cause problems if you do
loading over an existing portrait would just override it, yeah
Alrighty!
Action: Load is for two things:
- replace a vanilla asset entirely
- provide a new asset
editing a vanilla portrait sheet, or a portrait sheet provided by another mod, is neither
Alright, so does this look good? Anything I might be missing or got wrong?
I see missing commas hold on
Oh shoot right cuz it starts at 0?
yes
Alright, thank you! Thank you both of you!
I should probably turn off the portraits mod I mentioned earlier for the sake of testing...
Okay firstly, that was definitely the issue. This is completely incompatible with that mod which is very unfortunate.
Secondly... Why does he have an afterimage 😭
i mean when i said compatibility would be hell this is what i meant. any mod that edits portraits just collapses in on itself
dunno about that blue
vincent is attempting to become 3d
shouldn't have eaten that /j
Maybe I just don't do the custom portrait 
Not a big deal, just a silly little thing I considered
for the sake of keeping the right indexing?
yes. if you extend to the right on a sheet asset, it changes index for everything not in the first row
Since I'm gonna be playing games with friends in a bit, I'd definitely prefer just scrapping this one idea that would cause nightmares of compatibility with other mods including ones that i use instead of spending the time to try and figure this out 
is the mod you're using SCO?
I linked the mod earlier
Oh okay removing patchmode overlay actually fixed the afterimage
hmmm
i guess overlay made a ghost
see you're gonna need to do this for every seasonal variant to be fully compatible
Well the thing is it wasn't working at all when I had the seasonal portraits mod enabled
as in adding the goober to every one of these
I do have the winter variant from vanilla though
mod uses a whole different winter variant
it can be done, wouldn't be too difficult, really. just tedious
what you can do is ignore vanilla and just edit Portraits/Vincent_Spring and such
I could, but then it wouldn't show for anyone who doesn't have this particular mod
I mean I could probably just do vanilla AND all the modded ones
But again, compat nightmare
can have both. they are disconnected, really
yeah just, a lot of portraits
and also editing gift tastes to use that portrait
it's a cool idea! if u feel like doing the extra work
Well i had this part down already, it's used for 2 items from my mod and that's it lol
I imagine the code would by default just use the corresponding sprite for the season without much work from me
yeah SCO handles those
But that's also why I held off on figuring out the modded stuff cuz I wasn't sure
Either way, I've changed the dialogue to not imply that he's eaten it immediately
Adding portraits would be so much more compatible if you could assign any ID for it yourself. Maybe we see if ConcernedApe can add that for 1.6.16 or 1.7?
If it's not already planned. I don't know what's confirmed coming
i would file that under "unlikely, even if asked for"
dang...
Longer weapons for 1.7 trust 
adding portraits is inherently a very complex issue
looks left, looks right
Actually I think it's doable in a new dialogue command that changes the portrait sheet
is chased off stage left by people saying "be the change"
Can I put a dialogue break (#$b# or #$e#) inside of one half of a gender switch command ${him^her}$ ?
i think i understand why no one makes events in the farmhouse
accounting for the different upgrades is extremely annoying for positioning unless i am missing an obvious quick trick
can you even do events in the farmhouse?
yup
going to have to patch it every day to update coordinates based on upgrade level
i am only going to do this one time, i refuse to do this again LOL
Also furniture... Scary...
i am being very careful to put the player somewhere you are very unlikely to have furniture
starting in front of the fridge, moving left to the oven, then moving to the sink, it's 3 tiles total in the kitchen
just the farmer having a late night snack, not feeling well, angry emote, done -- yet it's probably going to take longer than any other one in this project LOL
-# dont forget modded farmhouse layouts
unless everyone decides they want to include the coordinates of those tiles in a .json or an api or i want to try to find it by automatically trying to match the sink/fridge/oven sprites to the positions on a spritesheet, i have no idea how to cover more than just vanilla
i guess i could make it easy to define patches by just pulling those values from a config file? but uh, this mod is 80% just for me, so
there's an event command to clear a zone of stuff so you can stage an event, but the farmhouse is cursed so there's a chance it just doesn't work in there or doesn't work on furniture or who knows what
interesting, i'll give that a try (once i figure out how to elegantly patch the stupid coordinates, ugh)
oh wait, i know how to do it, i'm dumb
What's the event command again?
The actual video game hardcoded a lot of that lol
i believe it's makeInvisible
Woh
harvey's event in the farmhouse uses that iirc
When in doubt yoink from vanilla 🙂↕️
It's how I got the parrot to work in both Leo's hut and treehouse
First time using specific temporary sprite 
Cus hardcoded
ooh i caused my first crash
harvey's farmhouse event is also seriously hardcoded (of course)
specificTemporarySprite harveyDinner or whatever it is also hands off to a big C# function that figures out where your fireplace is and sets up the dinner table, etc.
silly me, i called my patch list "patchList" instead of "patches" lol
I'm pretty sure that if you dont have a fireplace you get your event in the void btw
Huh...
is there a convenient way to access Monitor without passing it into other classes?
What if you already have furniture in front of the fireplace
And is it possible to have a non friendable npc who still has gift tastes?
put it in a static field somewhere
What if the fireplace was somewhere really goofy like facing the bottom wall
are there labelled maps anywhere
of all the maps in the game w/ coordinates for each tile
!hotreload