#making-mods-general
1 messages Β· Page 106 of 1
Yeah, that was gonna be my suggestion too 
Map property
I have added minecarts to my map (CP), and the teleportation feature has been completed. However, when I click on the minecart in my map, I can see the teleportation points of my map, which should theoretically not be visible. I have not found any explanation in the CP files, or perhaps there is one but I just didn't see it?
It might help to set conditions on those carts' entries, e.g. if they're on the farm:
"Condition": "!LOCATION_NAME Here Farm"```
(edit for wrong query name )
Wow! It worked! Thanks!
rereading the GMCM I just noticed one does not need a config to work with it. You can do it if you have another place to store the options, like a ModData
this way, if my mod should be usable and modifiable only on a loaded game, I can bypass the necessity of an external config to avoid confusion
of course this makes GMCM a hard requisite, but it works better with a GMCM right now anyway
what's the behavior if someone tries to edit settings from main menu then
you have an option in GMCM to prevent that
I don't think that GMCM option is available if you aren't using C#.
The GMCM option can make settings only editable from title screen, I don't think it can prevent them from being edited on title screen.
Got a DM saying DGA isn't compatible with SMAPI 4.1.7... you don't say?
Hi hi everyone! Would anyone know how to do the json for crops?
A question, does anyone know how I can solve this problem?
Hi Casey, just wanted to ask what it meant when the new feature said βadded new spouse reactions without dialogueβ. Thank you! 
Don't you π me 6480, it doesn't have hardly any features CP + SpaceCore doesn't have at this point
Huh?
Is that Windows 7? Very good chance you need to install .NET 6. Head on over to #1272025932932055121 and create a thread so people can help out!
uhhhh wait lemme check the new patch update
The only mod updates I've done recently are SpaceCore, and that didn't have an entry like that 
that's from the 1.6.14 patch ithink
Oh
Surely the π can be sobbing over the fact that someone decided to send you a DM about that
Actually not directed at Casey per se, but anyone who might know 
Good point
Hmm, to spoil the spouse reaction changes or not
I'm aware what they are, even looked at the code changes to try and root out a bug that occasionally happens
Might have to play the game to find out myself, thank you tho!
(iβm still stuck in 1.6.8)
RIP
Maybe itβs a good time to update 
How are you gonna play S&S
(I don't know of any other mods that are 1.6.9+ exclusive π )
I'm πing because thats a silly thing to get a dm over hahaha
I actually think I missed the DGA era while I was away from modding
casey u know about this right, warning in the save serializer transpiler
[10:57:51 WARN SpaceCore] GetLoadEnumeratorMethods: Found 5 transpiler targets, expected 4
[10:57:51 TRACE SpaceCore] <getLoadEnumerator>b__1 Void <getLoadEnumerator>b__1()
[10:57:51 TRACE SpaceCore] <getLoadEnumerator>b__5 Boolean <getLoadEnumerator>b__5(StardewValley.Buildings.Building)
[10:57:51 TRACE SpaceCore] MoveNext Boolean MoveNext()
[10:57:51 TRACE SpaceCore] <FindSaveGames>g__TryReadSaveInfo|45_1 StardewValley.Farmer <FindSaveGames>g__TryReadSaveInfo|45_1(System.String, System.Exception ByRef, <>c__DisplayClass45_0 ByRef)
[10:57:51 TRACE SpaceCore] <FindSaveGames>g__TryReadSaveData|45_2 StardewValley.Farmer <FindSaveGames>g__TryReadSaveData|45_2(System.String, System.Exception ByRef, <>c__DisplayClass45_0 ByRef)
it functions fine though
me neither, all Iβve done is mod shop and hope that I get hit with the will to play 
Casey you could refuse to update spacecore and i would support you
I've heard it mentioned, and saw it on my mac, but didn't notice it on windows - could have missed it, but maybe it's platform specific?
As the 140+ messages in 8 hours yesterday proved, the people can't live without SpaceCore. That would cause pandemonium
i'll go check my decompile for this method hrm
Completely unrelated, but. grumbles something about computer restarting overnight
the uptime 
When I looked at the log on my mac, it seemed like there was an extra method on SaveGame being targeted
Could I get a log?
(During work hours I'm connected to my work VPN on my mac, and so don't want to run SMAPI because update checks π )
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Unix 6.11.5.1, with 31 C# mods and 9 content packs.
Yeah, <getLoadEnumerator>b__5 Boolean <getLoadEnumerator>b__5(StardewValley.Buildings.Building) doesn't exist on my windows build of SDV 
my first though was postpone the register to when a game is loaded. but so it would not prevent a player to come back to title and change it.
So I may have a dummy data opened up that just takes whatever and so updates when a game is loaded
or created
could also try to use the unregister function to take it out when game is on title screen. but need to check if it would prevent it to be registered again when a game is loaded
...There's definitely an extra inner class + method on the mac/linux build
(Easy to get one on windows for me π )
Wait, actually, I'm not on the latest build in my dev workspace
grumbles something about steam branches
i think the new inner class is this bit
Utility.ForEachBuilding(delegate(Building building)
{
if (building?.GetIndoors() is Cabin cabin2)
{
validFarmhands.Add(cabin2.farmhandReference.UID);
}
return true;
});
I'm using ILspy and found it
(And also looked at the original source code and saw it wasn't conditionally compiled, and was very confused until I realized the steam branch I was on was a version out of date)
(If you meet the requirements you should ask pathos for decomp access.)
no i have access (to Pathoschild/StardewValley)
but if i attempt to go to your branch
it 404 on me
π€
i can see ur PR tho
by the nine realms is platform specific code coming back
The heck GitHub
(same)
Did you get access to the repo after I made my fork maybe?
i asked for access on august 1st
I can reach the repo, but I think my access predates yours by a bit Khloe π
so yea maybe it doesn't automatically sync access with upstream
It sounds like the acl may have been forked at the time of forking then.
Wonder if I can update that
@lucid iron ?
Khloe I love how your PR says "Update to 1.6.11" and contains changes for up to 1.6.14 π (I know that's because you just added more commits later, but it's still funny to me)
Not sure when I'll get around to releasing, but hey, it's fixed now
there's supposed to be .15 right
Hmmm. I don't see a way to sync the fork acl. Uh. React to my pr and ping me here I guess and I'll add you manually, with the reaction serving as evidence that you have access.
it can wait 
maybe if u just delete and fork again
I'm not doing that with an open pr lol
ok i put π
I'm going to wait till after this work project to go deal with it but I'll definitely get to it today
One day I'll theoretically pin a comment on SpaceCore telling people to post logs when they comment
(That day is probably not today)
One day people will theoretically read it
I dunno, that one is a stretch
One day people will hypothetically read it?
I still get serializer warning complaints sometimes, and I have a pinned comment for that
(Though they are much rarer since I pinned that comment)
casey, where do you take bug reports (GMCM)? github?
I guess here, nexus comments or github
(Now that I noticed I accidentally disabled the nexus comments and fixed that anyways)
i vote for turning off your comment section
Time to disable comments and bugs on Nexus and move everything to GitLab so I get no bug reports at all.
Speaking of GMCM I really appreciate the buttons are editable by CP, no idea when it was added, but I just noticed that π
this one is minor, but in 1.14.0/SDV 1.6.14, when opening a submenu, the hover tooltip from the mod's name remains visible behind the new menu, following the mouse
brb going out of my way to report bugs to DH
2 years ago π
Ah, yeah, that is definitely a flaw with submenus and my current implementation. I could skip drawing hover text when there's a child menu I guess
Wait... really?
Damn... I should pay more attention
if you like, i can report it in a more permanent location instead of just on here, and/or check for duplicates
Child menus are so wonky in Stardew
Just fixed it, no idea when I'll release though. Probably once I do the open menu API fixes that focustense asked about
Pushed to github if you want it now
I'm pretty sure I've asked this before but it's definitely lost. Does anyone know how the json would go for a seasonal building?
you would have 4 pngs like
mybuilding_spring.png
mybuilding_summer.png
mybuilding_fall.png
mybuilding_winter.png
and do a Load with the season token
I wonder if you even need the load, instead of doing something like {{InternalAssetKey: mybuilding_{{Season}}.png}}
Right! Okay got that. The other issue is it's not a farm building. Is it the same way
mybuilding_{{Season}}.png
internal asset key works too probably
Ahh
oh in that case you want seasonal tile sheets
In that case, reference spring_outdoors and similar for the right format
and then the game will switch them automagically
Look in Maps/ for a bunch of examples
Me: I'm no longer modding. Time to give my mods up for adoption
(You all realize you don't need to use CP tokens for seasonal farm buildings right? There is a vanilla feature for that.)
Me, two weeks later: I remember now why I made DNT
Back to playing my new favorite game: why are these minerals not showing up as caught? π
I'll take a look at these, however it's all a custom tiles tilesheet and location π₯Ή
Are you talking about Skins? Those are chosen at the carpenter manually, not automatically
i did think about DrawLayers
No I'm talking about SourceRect and SeasonOffset
...How did I miss season offset
Well, my excuse is I haven't done a custom building in 1.6
How have you not done every type of mod, casey?
I use SeasonOffset for my sole content mod, Buildable Bathhouse.
/jk
I mean, I've interacted with almost every game system through mods at some point or another π
And I'm still proud of the little map I made for that mod
Even NPCs - I had a custom NPC framework in the works back when Routine published theirs
@drowsy pewter Would you object if I wanted to add your giant crops mod as a dependency for a new, fairly quick/small mod I'm working on right now? 
It wouldn't be a hard dependency, but more of a "if you don't use this in conjunction, you're losing out" type situation.
Hm.. I wonder why Cape Stardew's minerals don't work but Visit Mount Vapius's do..
Nope I'm definitely lost π especially because I used tiled and I'm not exactly sure..
Not at all, that sounds fun!
What would the "FromArea" and "ToArea" even mean if the sprite is just one png???
you can omit that if the sizes are identical 
..yeah, that. It's basically saying "I want to copy from this area source, to this area on the target."
Oh! Yippie thank you!
Of course 
thanks! i don't need it at this time. it's only a minor visual problem
That helps a bit more ^^
So in the json for this, it would be something like this?:
Action: edit image
Target: maps/{{season}}_{{modid}}_mapname
Patchmode: "replace"
no i thought u r doing seasonal tilesheets
in that case u would load all 4 to their own targets
Oh my gosh this is going to be a very stupid, very embarrassing question but
Was i suppose to make maps for each season...
can see how vanilla has
Maps/spring_town
Maps/summer_town
Maps/fall_town
Maps/winter_town
when you edit map, use spring_town (or spring_yourbuildingsheet)
game has special logic for tilesheets that start with season_
and the answer is that Cape Stardew doesn't use the same base name as it does the mineral name causing it to mismatch.
Hi I want to make a mod that adds the mountain dew drink to the game I'm new to this I don't know how to start if someone can help I appreciate it
!cp
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
Thanks
You can make something edible and a drink, which youβll probably want
I already solved it but thanks, I just downloaded .net 8 and it was solved
@tropic lichen
to clarify, you need to make a content patcher mod to edit the data described here https://stardewvalleywiki.com/Modding:Floors_and_Paths
ok cool
wouldnt that replace it though? or is there a way to make it not replace the flooring already there
You need to add new entries
But this is the way to do non replacing floors/paths
Check the unpack for examples
ok
.. this is either a bug in the game or a weird mod interaction and I wish I knew which. Or where to talk about it @.@
love to do a modest refactor to broaden my mod's config settings and get a hole in one (it all works correctly on the first build) 
Oh, that's cool.
Does extra machine config/content patcher have a way to exclude certain items from being processed into an item without defining a different item for that to be processed into?
kinda like how sweet gem berries are fruit but they can't be made into jelly/wine?
I'm looking at https://stardewvalleywiki.com/Modding:Machines and the extra machine config readme and can't find anything
I know PFM had a field called "ExcludeIdentifiers" so just wondering if there's something similar
depend of the machine
It'd be one I'm defining completely
some vanilla machines have rules to exclude things from here (seedmaker, crystalarium) by having a specific context tag
technically sweet gem berry isn't a fruit
(or at least, wasn't)
so I'd have to go through and add a context tag to every item that I want to process?
you can exclude tags with exclamation marks
no, to items you don't want processed
and every item has an autogenerated tag corresponding to their unique id
you asked about items that can't go in stuff, not item that can go instuff
that or add a tag to every item you dont want yeah
!id_<qualified id but lower case without ()>
maybe it'll be easier to answer with an example of what you WANT to do
check what the tag is for certain with lookup anything (datamining fields on)
so the mod I'm converting atm is a kimchi mod. You turn all vegetables into kimchi except for wheat and rice
using a new machine called an onggi
I got it to turn all the vegetables into kimchi, but that includes the wheat and rice
then just accept vegetable outside of rice and wheat, and maybe a custom tag for people that want to exclude their custom vegetable
this is the code I got rn
{
"Id": "ItemPlacedInMachine_Default",
"Trigger": "ItemPlacedInMachine",
"RequiredItemId": null,
"RequiredTags": [
"bone_item",
"!id_o_881"
],
"RequiredCount": 1,
"Condition": null
},
this accepts bone items except item 881 which is whatever i don't remember
gotcha
think I'll make a custom tag, that way people can add other stuff to it if it's easier for them
tyvm :)
you can have both, the tag of rice/wheat and the custom one
(it may be easier than editing wheat/rice to add the tag, but of course each person have their preferred approach)
I'd honestly be surprised if there wasn't already a food/ingredient mod that adds a grain context tag to their items
More standardized context_tags are awesome for cross-mod support β€οΈ
context tags my beloved
I love it when that happens when building a new menu
Selph! since you are alive atm, mind helping figure out this error? I am getting bug reports about this here....
19:58:36 ERROR ExtraMachineConfig Failed patching YACS. Detail: Null method for selph.ExtraMachineConfig
mhmmm
I see looking at the debug log now
welp time to go poke around your code to see if I can fix the patch for you
It's actually not me, I got two bug reports about it.
(I could have sworn my log message specifically said to report to me if that error happens except of YACS)
(I'll make it more clear next update)
the log does say it, as a debug
so it's only visible when viewing the full log
why u gotta patch YACS
right, I'm talking about the fact said user didn't read before reporting to you
for snail sashimi
idk i think YACS should provide snail sashimi, its a core feature \s
still if u 2 r like, talking and all
wouldnt it be better to just expose api for moonslime
(At this point I'll probably just remove the feature next update tbh)
defeated by clickCraftingRecipe
(To be clear this is not YACS or anyone else's fault)
yeah
anyway I replied on the bug report telling them to update EMC, that should fix it
Checking the github...
public class YACSPatcher {
public static void ApplyPatches(Harmony harmony) {
var eventsType = AccessTools.TypeByName("CookingSkill.Core.Events");
I reorganized a lot of my code yesterday so the path here is wrong.
That said, is there anything I can expose api wise to make it easier for you?
IT WAS ME, I WAS THE ISSUE ALL ALONG
Hi to everyone! π I would like to update the compact miller mod to get different number of salts depending on the input quality of sea salt. Can somebody help me?
schrodinger's user, were they right all along, or did they just not read 
it's now CookingSkillRedux.Core.Events as the name space
You need to write your mod to modify cornucopia, unless this is just a personal use thing
Personal use only
(unrelated, but is someone with repo access free and able to satisfy my curiosity and tell me the last time a specific function changed, bc i wanna know if one of my books only broke in the last couple versions or if its been broken since 1.6.9 and just no one noticed or reported it until today lmao)
here when I was like renaming all my namespaces and reorganizing the folders and files yesterday
"No one patches my mods, why would they? This should be fineeeeee"
I would like to learn how to do it wright π₯Ί
doing it right would be making an outside mod and get to diggin'
Okey
that'll really teach you how cp works lol
Okey then
Yeah so the thing you want to do can be achieved with quantity modifiers
Like stack modifiers?
okay, so it was for better crafting integration specifically, I added a new event handler for PostCraft to replace the item with a ColoredObject clone if necessary
YACS was caching the original instance of the object in BetterCraftingTempItem, causing my event to not apply, so my patch was sneaking that item back in BetterCraftingTempItem
(mmm maybe it's time for me to dig now that my mods will be on the backburner)
Yeah that's the field
I always get confused by the class name vs the actual field name 
Gimme a sec I'll find example
I tried but it doesn't work either π¦
@ivory plume hello! Whenever you get the chance, this isn't imperative. But could I get access to the git repo? Same username as here 
Only the iridium rule worked
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
Post what you have
Not sure how good the decompile repo is but I can check base game repo
the function is Object.OutputMachine! i havent looked at this function in ages but apparently at some point minutesBeforeReady was set (by ApplyQuantityModifiers) before FixQuality was called, according to my comments in my code? and now its moved
I was about to try and add you until I remembered that only repo owners can do that π (Unlike, say the mod ideas repo, which is owned by an organization, so I have access)
my transpiler doesnt throw any errors so i didnt even notice but sure enough it aint workin now cause of that, i assume

a three way mod issue
(YACS SC, LoC, oh better crafting)
when will there be unity under heaven
ya'll need to unionize 
(YACS, better crafting, and extra machine configs)
hmm a unity mod sounds interesting who wants to make a mod that makes mods compatable lol
(for when vanilla add a event for crafting)
Lol no
Impossible
actually it might be broken bc a local index changed
mislead by my own code comments, apparently
if thats the case im very surprised it didnt toss an error at me lmao
selph could just make emc dependent on better crafting right
Man VS is slow with annotating a large file like Object.cs
problem solved after that 
by all accounts my transpiler should be invalid as all hell. maybe its so broken none of the exceptions could get through to the console bc they all tried to fit thru the door at once
absolute mess of a thing, really. literally my first transpiler ever though so you're not allowed to judge me
please use the json parser website
i think the colors are very nice, 8.8/10 too much IL
i can't judge, i refuse to make one until i get the hang of just smapi events
the purple is a really disarming colour honestly
almost makes it seem nice
Mostly minor changes last month at least, though there were a few local variable changes on 10/01
I'm judging you
damn. so it really has just been broken this whole time and no one noticed
which book is this
why did this not throw a ton of exceptions
oh is this in BETAS? or is it books
this is my book mod book that decreases artisan goods production time by 25%
Like, seriously, why are you doing so much code in there. Call another method of yours that's written in C# not IL
i said this was my first transpiler! i did not realize at the time that that would be al ot easier
i do do that now
Button, link to that transpiler?
only way for a unity mod is basically a super API that has a ton of events that covers most needs. Even then issues still arise here and there. Just look at the forge api for minecraft. Tho it works majority of the time and mods rarely have conflict, it's mostly internal issues the devs didn't think of covering. The other issue is updating when the game updates is a pain and takes forever, as you basically need to go to make sure every event hook is still good.
there are downsides and upsides to everything.
Pathos wants SMAPI to be fairly light on events. Which feels more like Cloth/Fabric. Like on actual events and lets modders have way more freedom but a lot of conflicts can arise.
I tried to do that with my first transpiler too, but was course corrected by someone else much sooner lol
this was also only shortly after i started learning C# in the first place back in uhh. may?
maybe april
i dont remember when 1.6 came out
march
clearly, to baby button, making a foreach loop in IL was the smartest idea there was
well hm i never counted the time because automate and stuff
so yes it very well could be broken this whole time
yah i was joking you would basicly have to write an AI to look at codes comparitivly and add corrections based on a logic to even get close to a posible unity mod
this transpiler has been on my list of things to redo eventually for a long time but i didnt feel like touching it if it wasnt broken. well ,now its broken, so its gonna be reduced to like.... 5 lines
Okay, I was gonna say "maybe the new local indices are still the same type" but nope. That's weird
You should add a dep to spacecore and used the name local indices feature π
(i think my first harmony idea was going to be a for loop until someone bonked me and went, "the original method already loops"
)
It sounds like you think too highly of AI, there's no way it could do that π
(Sorry I've been busy with looking at my own code so I'm chiming in now)
Is this for the "Artisan machines produce 20% faster" book? Why not postfix OutputMachine and modify the machine's own ready time?
it doesnt even get caught in the try/catch an d return the original code, so idk what the IL ends up doing in actuality
lol it could learn if you created a new AI dedicated just to the logic of stardew
i have vague memories of trying that but it not working as i wanted it to for some reason but its been so long i dont remember what didnt work or why
Also sounds a lot like theft specifically targeted at SDV's modding community
uhhh, you wouldn't need an AI to accomplish that. You are thinking of like attacking the issue from the top after the mods have already been made. When the issue could be addressed at the base.
As I mentioned in the post, minecraft forge is an API that is just so expansive it gets rid of most conflicts (tho it does limit modder's ability to create at times).
tbh the so called "super mod compat fixing mod" is smapi itself
with the rewriter and stuff
This is sorta what SVE does for casks in the winery building, though it sets a different variable since casks are weird: https://github.com/FlashShifter/StardewValleyExpanded/blob/master/Code/ModEntry.cs#L789
basically
chatgpt can't even understand how to do i18n keys, i've seen what some of these mods have done to mangle my code in attempt to translate, i'm none too happy about it
it cant account for people's code logic being in conflict because it cannot take sides 
By the powers of SMAPI and CP, everything can be compatible
but thats why we talk to each other and discuss what api to expose
Oh yeah? What about two recolors at once?
with enough dependency clauses, you, too, can be ultra compatible
π
can 
lol yah 2 recolors or reskins kills the first compatability
Yeah, like, LLMs just output what's statisically most likely based on it's previous output and training data. It can't logic about things to see if something is correct
I guess technically one could write a new type of AI that can. But that would be incredibly difficult - many people are already trying to figure that out (logic, not stardew stuff) - it would be groundbreaking in the entire AI field
(in fact i know i must have tried it at some point apparently because my error message still says its a postfix apparently lmao. but yeah, no clue why i went away from it, so i guess ill try again)
TBH one of the reasons i use gmcm for all my mods is to alow you to chose what you want to have my mod load for any reskin recolor or changes to data
I think WOL has a profession that does something similar, I'll check what dalion did in their own source
(i like to think at this point ive proven myself enough to convince that im not that much of an idiot with my code/transpilers anymore)
walk of life professions so niceeeeee
x3
yeah just a postfix on OutputMachine
could you imagin if someone made an ai just for stardew logic loading mods lol
i think the ideal case for making 2 recolors compatible is to cross fade between them at around 30s a cycle \s
you're not an idiot, you handheld me 
that's ultimately the one way to tell you're not dumb, you can handhold someone and their code works 
I can imagine the number of people coming in with completely broken "mods" growing exponentially
Oh I just caught on the conversation. Yeah bibliocraft has a profession that speeds up all machines from the mod by 50%. I just do a postfix on output machine
Neither spacecore nor SVE do any of those things (at least the ones I can decipher - what's "Robin building miniatures"???), but one warning makes them think it's my fault -_-
(I assume this is something with UI Info Suite 2)
average nexus user report
I think Robin building miniatures is in reference to the icon in UIIS2 that shows up when she's building stuff for you under your money
I mean, there's already scary yellow text (the serializer warning) that I can't get rid of 
pathos can we get spacecore no longer on the warning list for serialization
A truly ridiculous way to phrase "icon" but okay
"robin building miniature" seems like the mini robin icon beneath your clock
when shes doing construction
from UIIS2 yeah
i honestly thought a different mod had robin just straight up building miniatures in her spare time
discord didnt scroll me down all the way when i started typing /shrug
Yeah, to me it sounded like they were saying they ha- what Aviroen said
how do you feel about separating the save serialization part of spacecore into new mod
Like the figurines in Wind Waker
isn't it core to spacecore though
so that the majority of spacecore doesnt get scary yellow text
They might be using machine translation
sounds like a good way to break every mod using spacecore serialization
For what purpose? Seems like that would just increase dependencies people have to download
Also what Button said
what if, there was a way, to tell what mods are grabbing spacecore's api for the serialization, so they too can be lumped in with you for the warning
The NPC mod update has been uploaded to Nexus, here goes nothing.
I mean, I could output warnings inside SpaceCore for that...
This sounds like a great mod idea though lmao, add a little camera, take pictures of people or objects and have her build little statues you can decorate with
But that doesn't seem fair to output a warning for people using a core spacecore feature
yea that is true, no point in such a change now
Done! See the repo readme for more info when you accept the invite. Note that it doesn't have the latest 1.6.9+ changes yet though.
it could be useful for debugging though
Better Crafting does something like that, naming and shaming mods that call its API
Maybe if you would merge Khloe's PR /s π
It's one thing to output it in Debug or something, but a warning?
idk, as someone using serialization for one of my mods it does seem fair to me to tell the end user "These are the mods specifically that might mess up your game if you remove them"
yeah probably not warning
not neccesarily warning but note which extra classes need sc serialization
Except... it won't. The serialized stuff isn't in your save file. You can still load the save if you remove those mods or even spacecore
Are you sure the transpiler is actually... transpiling? Maybe you're not getting errors because it just doesn't match on anything and never adds those instructions. Or maybe you're returning the original instructions instead of the modified ones, or something.
Aside from that, Casey is right, that's a very silly transpiler.
(I have a number of PRs to merge, and I've seen complaints about the merge times. But I feel like there's more value long-term in (a) stabilizing SMAPI and the main mods and (b) getting as many fixes into Stardew Valley 1.6.x before it's closed off, so I've been delaying PR reviews so I can focus on those.)
"Hi, addition to collecting and shipping and befriending everything/everyone for Perfection, you know need to spend money on a camera and film to take pictures of every single thing in the game. Good luck!"
(Still a fun idea though)
the only thing it tries to match though is a single instruction that calls "FixQuality", which does still exist in the IL
People love collectables
Ah, I can see that. I mainly just meant Khloe's decompile repo PR, which wouldn't be something you'd review every line of anyways
But then as more patches come out you'd need to merge more PRs, so....
In fairness my PR does involve a bump to the ILSpy version which is something to think about
Re the SpaceCore serializer warning, SMAPI only knows that the serializer is being changed; it can't really know how safe or bug-free the change being made is.
Oh yeah, I don't seriously expect you to remove that warning
I was just being whiny π
You can put a breakpoint in and see if it's really matching and returning the updated instructions. And while we could try to debug that IL as is, it's probably easier to save your transpiled method to disk, open it up in ILSpy and see what ILSpy thinks the C# is supposed to do.
Huh, I've never thought of that. I usually inspect the IL manually 
ive already torn it out of my code so its gone-zo
you are allowed to be whiny with the way mod users are reporting stuff to you
I wonder if we could make a change to the game to allow intercepting saved data before it's written or read, without actually needing to change the serializer.
how its broken is less important to me than the fact that it is and does not need to exist in its current form anyway bc of its silliness
"baby's first transpiler" an egregious but adorable-looking painting, synonymous /lh
I wouldn't take those steps unless I was really desperate, but trying to debug a transpiler like that would make me desperate. Rewriting it is a good idea too.
if the window for vanilla fix is still open do u think this fix should be on game instead of Data Layers
https://github.com/Pathoschild/StardewMods/pull/1059
So, I think me and/or atra tried to look into using the UnknownElement type methods before but they didn't seem to work.
Also, if you mean intercept the XML, it'd still need changing the serializer for mod types.
If you mean intercept the SaveGame instance... supporting that would be so much more complicated than the current approach.
I used ILSpy 9.0.0 preview 2 for the beta branch. I might decompile 1.6.9 myself to merge my other changes in (e.g. the improved build validation), and then cherry-pick your other decompiles in.
I guess I could do something reflection based?
GameLocation.isTilePassable does not check tile.Properties for "Passable", only tile.TileIndexProperties, this causes the Accessible data layer to not match the actual collision experienced by player.
the behavior in game is that DataLayers (and other stuff using isTilePassable) doesn't respect TileData Passable
Does the SpaceCore serialization stuff only apply to items, or any game type?
but collision is fine
Any game type, it scans the XML for any registered mod type and removes it, adding it back later at the same path in the XML (stored by index in the XML file, which admittedly is kinda fragile)
Well, I guess changing the serializer is the only option then.
Come on, you maintained SpaceCore for a while, how did you forget that? π
It's almost like you've got so many things to remember
- it not being relevant to you anymore
I barely remember what I had for breakfast. There's a reason I write so many docs. π
I have the same thing for breakfast each morning, so I have no problem remembering mine!
So would now be a bad time to ask about the status of those PRs I wrote 4-5 months ago?
Nope, but it'd be this answer. ^ Basically I think it's more useful to get a few more fixes into the game while we still can, rather than add new SMAPI/mod features which can be done anytime after we lose game access.
oops i forgot to get my breakfast ingredient and just remember now because of this discussion
Sounds like we need to clone the machine PathosAI is running on /s
You're losing game access?
upgrade the storage solution
(we're broke, unless we crowdfund for one /lh)
I would love the ability to fork off a few more pathoschildren.
guess i have no choice but to eat chocolate for breakfast...
I thought you were like, the main developer now.
(the game changes are when the game update)
I used ILSpy 9 preview 2 at first, but it was leading to code that couldn't compile because it was doing this weird hoisting of local declarations so I ended up needing to download a nightly. The code should probably be similar as long as you're still outputting in C#9. I've kept to that to try to keep changes down from ILSpy 7 as much as possible.
Nobody is losing access, but at some point when things are stabilized I think we're gonna hold off on patches for a while unless something critical pops up
Pathos is doing code stuff but CA is still doing the majority of the game content addition, and he may want to focus on other stuff or simply need time to get more ideas
So "lose access" is a euphemism for "exceed the threshold of update fatigue".
(i thought pathos was just like, an advisor
)
CA hasn't mentioned any release plans after 1.6. There might be future versions if CA decides to, but once 1.6.x is stabilized it'll likely be the last update for a while.
and my personal experience is that if an update has no new content (or not a lot) and mainly modding additions, those tend to be a bit overlooked
(1.5.6 added some cool modding stuff but modders didn't know about them a lot and some are still underknown)
Ah, that explains a lot about this latest slew of updates...
Yeah, CA and Myuu still do a lot (and I do some, not as much as I'd like since I have a main job, not sure how Pathos manages it on top of everything else), saying Pathos is the main developer isn't really accurate. (Though Pathos does do most modding relevant changes)
they gotta switch gears to haunted chocolatier eventually right
gotta leave room for some HC time too
i vaguely recall the phrase, "lack of sleep"
Yellow text scary!
i think CA's said he basically goes back n forth between them, switching to one when he gets burnt out on working on the other. or something like that. so basically
that's basically us, our mountains of projects 
honestly so relatable
GPF kinda knocked me out(still gotta finish it's update), but once I do the tedious task needed to finish it, and get some more motivation, I'll do more modding work :3
uploaded a new version to nexus and it successfully updated the version number on the page but seems to have eaten the actual file. thats fun
That's alwats fun
Always try opening your mod page in an incognito window, Nexus's caching is whack.
i was about to but decided to refresh one more time and its there now π€·ββοΈ
i know nexus caching is odd but ive not seen it update one thing but not another when both were changed at the same time before
Happens often. Sometimes my files upload right away, but then I try to change one tiny thing about them (like add a description) and that takes an hour to show up - but only for me, personally.
Yeahhhh, I've learned to let Nexus upload my updates as a separate file and then move the old one once that one has confirmed uploaded and scanned.
Safer that way.
The hell is a unity mod
A similar (still C#) but vastly different ecosystem, not for the faint of heart
In context they were actually referring to a mod that makes cooking/crafting integration not a mess by unifying them
(it already exists, it's Better Crafting)
Oh
so really, it'd be more of a dictionary mod than a "unity" mod (which implies built on the Unity engine)
I read it as Unity engine
I did at first too, until I thought about what they meant by compatibility for a while lol
And yeah, making a new unifying mod would just be the xkcd standards meme
I'm having nightmares of PlateUp!'s IngredientLib as a Stardew mod, LOL
especially when it'd be impossible to create a design that has universal appeal
not even from a functionality standpoint but an aesthetics one
What's so bad about it?
there's also a lot of ways people interpret the way they want to implement some things like cooking/crafting tbh
the undying urge to make the cooking mama format π€ (casey)
but then vs the amount of assets to create 
gourmet overhaul flashbacks
yeah could also upscale all of the dishes with a draw but it might look blurry, so then those assets need to be high res'd
IngredientLib is wonderful, but it seemed like SO MUCH WORK, because they constantly get requests for new ingredients to use in cooking recipes.
my new mod will add Monster Hunter-style cooking AMVs to every dish
The whole point of IngredientLib in PlateUp! was to add non-vanilla ingredients and recipe bases
It better come complete with palicos doing the cooking
if it doesn't have the palico mama i will riot
also I see your update pushing my Satoru mod update down further on the Updates tab and I appreciate you β€οΈ
isnt that just json assets
ill be honest ive literally never looked at the Updated tab
in my mind it doesnt exist
I looked it up, everything is hard coded in IngredientLib
Maybe? I've never used JA
JA is a framework for mod authors to add their own ingredients, while IngredientLib just outright adds the ingredients themselves as part of the mod (ie. other people can't add more without making a custom version)
oh i see how terror 
Yeah, IngredientLib is a massive collection of hardcoded ingredients that other people can use to formulate recipes with in PlateUp!
....what is half of this
go on, make all the art required for people to do any number of chopping and cooking actions on a completely limitless and incredibly specific group of ingredients. i'll wait 
Hey, it has cinnamon, what more could you want?
less cinnamon
make sure it's large and detailed enough to actually occupy enough of the screen to be worthwhile, too. maybe 64px sprites for the basics hmmm
interactive action of deboning an eel for your spicy eel dishes as you sit there in front of the campfire and grill it, impatiently
maybe some of them, but do you really trust serpent bones?
they add crunch and calcium
god i really want smelt snacks now
add that to the list of "traditional asian dishes from an americanized home" mod idea
i think about those little dried fish i used to eat
which ones? cause i can destroy an entire bag of dried cuttlefish strips tbh
like, tiny fish...
i hate the random different texture out of nowhere (but i have some food related anxiety stuff so... that may be a part of it)
wow Game1.drawTool is sad. i spent so long looking at Tool and Shears and wondering my my custom tools were drawing garbage over the top of the farmer instead of nothing
sardines or anchovies? 
i prefer deboning the fish bc the bones are gritty lol
oh how i wish this was a bool property
if (!(currentTool is Slingshot) && !(currentTool is Shears) && !(currentTool is MilkPail) && !(currentTool is Pan))
{
if (!(currentTool is FishingRod) && !(currentTool is WateringCan) && f != player) {}
}
else
{
f.CurrentTool.draw(spriteBatch);
}
in a canned fish and stuff, i always take out that spine even though i can just eat it
are you being sent back into the transpiler mines
That looks painful, good luck
how hard could the simplest tool possible really be, i thought, like a moron
My exact reaction when I made the iridium chicken juicer
the what
the what
I remember having to do some patches to get custom tool stuff working too
Can't recall what mod it was I did that for though
like i know drawing tools is basically just an extension of farmer rendering and therefore awful, but i still wish it was just a little more usable for people making new tools
even just DrawWhenUsing
...The only thing I can find is DGA, which isn't what I'm thinking of 
or DrawBehaviour!! imagine passing a delegate
this is even more important than the missing . in shears
https://www.nexusmods.com/stardewvalley/mods/27071
source is below if you need an example of a tool that looks identical to a milk pail when used
(it's a mess)
a mere 5 prefixes and a transpiler. incredible
mere
oh wait no thats just a blocking prefix
That sounds cruel
is this just a stomach pump π
if you hold me at gunpoint and force me to say what's the difference between beginUsing, endUsing and DoFunction I'll die
Skill issue /s
π€ how do warp totems in-game work?
They're objects
with the funny totemWarpForReal method
errr well i mean how do they warp
Check out object checkAction method I think it is?
<insert advertisement for SpaceCore custom warp totem feature here>
if you want a custom one that'd be spacecore, unless you're talking obelisks
my favourite tool behaviour is beginUsing(): if not instantUse: endUse()
(only if not fishingrod and upgraded and not meleeweapon or pickaxe)
Huh, that's bizarre
tools sound hard.
The tool code is really weird
I imagine it was one of the earlier editions and just evolved over time a lot because of that
there's very good reason i only made a trashcan-equivalent tool (frying pan) up until now. i just forgot that reason up until now
sigh, with another small addition of 1 year to the 1.6 alpha we could've had tools refactored
"a small loan of 1000 developer hours" /s
maybe make that 'hours and 1000 developers'
too many hands, we might get the drawTool2 electric boogaloo
If you have 1000 developers, you can get all that done in 1 hour! That's totally how it works
what if you just get 1 dev 1hr and 1 time machine
<something something project managers and nine women making a baby in one month>
(Not that I've had a project manager like that)
Ah well, you see, eventually the developer will lose the will to live that way
Also, if they can't take their code back with them, they'll never make much progress
we already have a time machine. it's called git. life is pain
that's it, i'm gonna go get the quote
New quote added by aviroen as #6255 (https://discordapp.com/channels/137344473976799233/156109690059751424/1304993474726199386)
Then why can't I see my code from the future before I write it
.q 6255
Please interrupt these fools if they're off topic
- @calm nebula (Jump)

We're tangentially on topic
yeah the original was us skirting the lines of off-topic but we're still talking mods
Excuse me, you mentioned a time machine
i derail you yet again, the dehardcode of craftingrecipe
Anyone know where the code is that keeps doors locked if you don't have the friendship or it's past the time to enter (or is early).
I kind of want to add lock picks to the thieving skill mod that lets you bypass that but can't find where it is.
I had forgotten how drawTool was.
isnt that just on the door itself
really everything to do with tools is a bit fucked
GameLocation?
case "LockedDoorWarp":
{
if (!ArgUtility.TryGetPoint(action, 1, out var tile, out error, "Point tile") || !ArgUtility.TryGet(action, 3, out var locationName, out error, allowBlank: true, "string locationName") || !ArgUtility.TryGetInt(action, 4, out var openTime, out error, "int openTime") || !ArgUtility.TryGetInt(action, 5, out var closeTime, out error, "int closeTime") || !ArgUtility.TryGetOptional(action, 6, out var npcName, out error, null, allowBlank: true, "string npcName") || !ArgUtility.TryGetOptionalInt(action, 7, out var minFriendship, out error, 0, "int minFriendship"))
{
return LogError(error);
}
who.faceGeneralDirection(new Vector2(tileLocation.X, tileLocation.Y) * 64f);
this.lockedDoorWarp(tile, locationName, openTime, closeTime, npcName, minFriendship);
break;
}```
I would love to add like a field that's always false for vanilla that if true would call a custom function on tool
oh
so that's the door
But I think we're supposed to only do bugfixes now
Like I know the know the information of like the times and such is on the door tile itself so I was looking at terrain features.
But like there has to be something on the C# I can post fix to let the player bypass. As when you click you get the message "door is locked till X)
a similar ToolEffect class that can be data driven and only exists in gameplay would be nice
Yeah just patch GameLocation.lockedDoorWarp like Aviroen showed the calling code of
well i guess it's that big chunk up there
(line 9520 on my ilspy if you were wondering, but i think i still have 1.6.13)
(10302 for the method) 
ouh, oh, hmm, i would have to commit a crime on
{
if (Utility.isFestivalDay())
{
return Utility.getStartTimeOfFestival() < 1900;
}
return false;
}```
for my custom festival, huh
yeah, i did glance at roku's code for it but i also have the memory retention of a walnut
Ah, fair
Clearly, casey
contemplates the skip prefix crime on craftingrecipe
You should add a flag in the festival data for it 
Maybe this were pre 1.6.9 π
Whats another version anyway π
Maybe for 1.7 then π
Hello! I have two vector2 values (one for the mouse position and one for the position of the player's tool hit location) that I use to make a line and I'm trying to figure out how to shorten the distance between them so that one point is moved closer to the other and that distance is the range I set.
I have tried doing Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range)));
and then adding the value I get to the tool lit location to get the new point to shorten the line
Vector2.Add(playerToolTile, Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range))));
Both of the original two vectors have been converted to tile positon and I tried converting the final result to tile position but it doesnt seem to be shortening the line properly
I have this currently
toTileVec = Utils.AbsolutePosToTilePos(Utility.clampToTile(Vector2.Add(playerToolTile, Vector2.Multiply(Vector2.Normalize(mouseTilePos), new Vector2((float)(range), (float)(range))))));
Am I doing the math right?
so since im learning about map data more passable x on back layer makes it impassable regardless of t or f and on building makes it passable regardless of t or f does that mean buildable x on back makes it buildable regardless of t and f and on tile data makes it not buildable regardless of t or f?
does CA do reviews? :p
Are you seriously suggesting I sneak things past CA? π
Are you implying I should sneak things past CA? π
I thought festivals only close lockeddoorwarps inside its own locationContext, is that wrong?
you and i both know he hasn't looked at tools code since 2016
he'll never notice one tiny property
Yeah that's wrong. Any festival does it to everything in the default context if I remember correctly
rip
Literally not true but if believing that makes you happy...
I'm a little annoyed y'all would even suggest sneaking things past him π
hearsay
inadmissable
none of us did any such thing 
Not sure if you already solved this (reading through chat backlog), but wanted to mention MachineData.ReadyTimeModifiers that are vanilla and you could maybe use instead of even needing a patch. I just learned of them the other day reading through the source for Better Beehouses, here is the relevant line where they use it to speed up or slow down the ready time: https://github.com/tlitookilakin/BetterBeehouses/blob/1.6/BetterBeehouses/framework/MachineEditor.cs#L114
You can check out Custom Locks Updated's source code for how I did it, but uh, you can't just postfix it, gotta be a skipping prefix or a transpiler lol
Or at least, I don't think it could be done in just a postfix, but I could look at it again now that I have more experience lol
Yeah lockedDoorWarp is a void so postfixing it wouldn't really solve the issue of all the dialogue boxes popping up and such, though I suppose you could leave that and just have your own popup afterwards about picking the lock
Not sure how well that would work though, game seems to hate when you daisy chain dialogue boxes
That's what I was thinking.
Have it show up that it's locked, roll a dice to see if you successfully pick it with a message, then warp the player
That seems fine then, assuming the locked message popping up doesn't interfere
But yeah, my mod won't be a good example for that lmao, all transpilers over here
And I don't know how to do a transpiler. So it would be a pre with a skip or a post. And I would rather stick with a post.
Yeah, I was really hoping it was something I could postfix too lmao
the documentation for it says the condition only checks the input item, though, and i need it conditional based on the output item
I was originally prefix skipping performAction, but that felt like it would be a problem lmao
on the plus side, there's no better time to learn transpilation than when you need it π₯³
(also i want it to apply regardless of any other readytimemodifiers someone might add/remove/edit on the machine anyway)
Yeah mostly just bringing it to your attention in case it was a good option for you
that said, looking at the code, im not actually sure why it says it only checks the input item since it also passes in the output as the target item
so i dont know why you couldnt check it
it still wouldnt be an option bc of the aforementioned "always apply" thing but it is curious
unless im misunderstanding what it means by "Item-only tokens" for the Condition field there
How do I make a music content pack that adds instead of replaces? And/or works with the jukebox.
Might just be a wiki mistake when it's copied over from the output item condition?
im looking at the documentation in the decompile itself
Condition field in OutputItem indeed doesn't check output item, because it doesn't exist yet
s/wiki/documentation
(is that supposed to be a link or something)
that's sed for "replace wiki with documentation in my post"
I may have commited a grave case of xkcd 2501, apologies
ah. well, i wouldnt think it'd be copying anything from outputitem, since its just QuantityModifier and not machine specific (it also applies to shops)
I need a :quartz: emoji
(or wherever else uses quantity mods)
Fun facf
Discord respects sed
Try this/
I abscond my prison
great! trying to debug an error in my fixed postfix for that book that causes people to error non-recoverably and crash when saving their game 
I have many colorful and un-PG words for this work PR I've been working on
trying to find the source of the tool swish TAS added when you use a tool and the only results for animations.*960 are some events with abigail?
nevermind it's showToolSwipeEffect and it uses the stupid TAS rowInAnimationTexture overload
side note, is anyone familiar with how Bush Bloom mod works. does it turn bushes into machines or something
(it might not be related to bush bloom mod at all, but i cant recreate the crash and it was a common thread between two error logs i got)
((also, i cant believe i got 2 bug reports on nexus and they both provided a log without me prompting them for it. holy shit?))
It just add shake item to bush I believe
And change sprite
so most likely a coincidental double occurence in the stack trace, then
Make salmonberry/blackberry type things happen generically
Did it just patch similar place 
its not the most specific function (GameLocation.DayUpdate) but i figured maybe it mattered for machines processing overnight, since this crash/error pops up during _newDayAfterFade's process
(i dont patch that to be clear, i mean Bush Bloom does)
I imagine it just update bush in there
time to pull at another thread then
Can I see log
its a null reference exception and ill admit null checking did slip my mind (tbf i thought the null reference check in the function im patching itself would be enough) but it would be nice to know exactly where the null was and why it was only happenin overnight
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 80 C# mods and 161 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 69 C# mods and 198 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i know where to add the null check, bc theres only one place, i just wanna know what causes it to become null in the first place, really
since it just, doesnt error for me
Eh.
I've seen mods do really stupid shit before
Some asshole kept putting nulls in the character list for one
i think i ran into similar kind of "why it null" with machine mod
never came up in testing but someone's weird thing just makes it go
i wish the smapi site would let me just put in multiple log links and it'd parse out which mods they have in common
it's me attempting to find some humour in the world while looking at farmersprite.endanimationbehavior for arbitrary frame indexes probably called from stupid places in tool using methods
Isn't the tool swish like it's own method
[HarmonyPatch(nameof(Farmer.showToolSwipeEffect))]
well sure i can false prefix the whole game if i want but somehow i thought if i have a custom class already i can actually decide what it fuckin does
(oh, i see. i was unaware that machines had a ClearContentsOvernightCondition)
Sorry
Tool code enjoys being Fun TM
At one point I figured it all out
I have regrts
alas endUsing just replaces your sprite with some animations that include swish as an endbehaviour for one frame or another
You can override endusinf
i have lol
Shovel animations
The first sets the farmer animations
The second matches the shovel's animation
i just want no animation but god doesn't listen
how thew fuck did i get here from farmersprite.clearanimation()
(contents cleared overnight (heldItem = null) and then OutputMachine called if it has a DayUpdate trigger. docs say "For example, the soda machine does this." perfect! so if i place the soda machine down i should crash/error and be able to confirm when i fix it
[i dont crash/error]
oh. alright then)
It's like a wikiwalk!
i guess these two people might have a machine with a dayupdate trigger that has a condition that means it doesnt always actually create anything but i cannot be bothered to try looking for a machine that does that so, ill just hope its fixed when i upload a new version
Solar panel. In the rain
i forgot solar panels were a thing
A wiki-march-through-the-jungle
I've still never had a solar panel lmao
alas, another fine idea gone
What will you power
Me :beep:
The house I'm renting has them, the lower power bill is nice
wait doesnt it just pause the timer if its raining
the item is still there right, unless I'm misunderstanding button's problem
i was about to say it doesnt seem like it actually creates anything on day update, it has a timer
...mill?
i did misread the if statement earlier and i dont think the clearcontentsovernight actually matters
the illusion of free choice```cs
public static void completelyStopAnimating(Farmer who)
{
who.completelyStopAnimatingOrDoingAction();
}
it just needs to have a DayUpdate trigger and then for OutputMachine to not give it a helditem
Or I might be misremembering how the mill works tbh 
trying to think if any machine qualifies....
uhh beehouse in winter
i just tried a beehouse and it didnt give me any errors either :v
One of those wag forager bushes?
Crystallarium is on a timer innit
one of those what
That r secretly machines
Cat statues?
Wildflour atelier goods forager
It's got bush that are machines which conditionally produce by season
Idk if this is where to ask but does anyone know if guxelbit is gonna make anymore furniture mods? His furniture looks so vanilla like and adds so much to the game I would love more.
#modded-stardew is more suited for your questions
I think those still use season Condition before outputting
If I'm getting this right it's some machines with an item query/custom method that returns nothing
im just gonna slap a "if null return" on it and call it a day
which i shoulda done from the start. oh well
if null return MVP
remind me in 18 hours to axon bodycam overlay
rofl that's what you need a reminder for? yeah ok (#6360510) (18h | <t:1731606499>)
Hm. So I have ran into an interesting dillema but no way to check until we get to the perfection tracker stage.
Ok so probably a super dumb question, but if I want to add new dialogue to RRRR using the dynamic tokens should I just add to the original mode? Or can I copy and paste the dynamic tokens into a separated mod I'm making and add dialogue that way?
you could just add to the original mod if you wanted and if it was only ever going to be for personal use, otherwise you would need to make your own mod to add more dialogue to Rasmodia or overwrite existing dialogue. you wouldnt use the dynamic tokens, though
dynamic tokens are just shortcuts you can create for your own content.json, they arent shared between mods
they save you time typing
Query is still confusing to me when EMP
The problem with RRRR is that it uses a lot of input separators. You are best off just modifying it straight unless you actually do want to release
I see, but RRRR uses a lot of dynamic tokens for expressions and events and whatnot π§
Yeah that's internal
You can probably pull up the i18n default.json and copy some places, but because of the input separator you would also need to have awareness of the timing of dialogue for events specifically
I did want to release as I did get permission for Jellonip about adding new dialogue for SVE 1.15 π§
Button can cmct hijack the dialogue tokens
well, you dont really need permission to just add dialogue thats your own in your own mod. its re-releasing all the dialogue you didnt write when you package it up thats a problem
help i tried looping an animation and now my boy turned into a meat reject
also, i will not recommend CMCT to someone newer to modding and not fully aware of the ramifications of it, and beyond that i would recommend the dynamic tokens part of CMCT as a last resort to anyone
I was just thinking of hijacking the dialogue keys specifically and just adding in more numbers to the range
i dont know what RRRR tokens look like to know whether or not thatd work/be a good idea
It's been awhile since I've last looked tbh
(the i18n tokens are more recommendable, i thought you meant dynamic tokens)
Ig it also depends on what you want to add dialogue wise, if you're just making more heart events then that doesn't have to particularly affect RRRR
Oh no, I meant in character/dialogue/npc
Those are all i18n keys sorry, brain fry hot egg
Could also just go the absolute fun way and just setnewdialogue in BETAS
after seeing specific events, or even on randomization
Actually, that's probably the best option
I needs me a button command
all just depends on what you want to change or whether you just want to add new things
you can also just conditionally replace dialogue lines, you dont need to insert into the input separator stuff
I see π§
The fields thing should work yeah? With the specific dialogue key
you dont need fields for that, dialogue lines are a top level key
What I was adding in particular was gift new dialogue for the new SVE cooking items π§
Oh that's even easier
that wouldnt need to touch anything from RRRR at all then
avi has an example probably of AcceptGift_ dialogue
AcceptGift_(O)
ππ
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
(Rrrr has an interesting way od doing portraits)
It was pre 1.6 I think?
I was the one that found out we can go beyond the 99th index 
What about for stuff from SVE? Something like "AcceptGift_(O) FlashShifter.SVE_itemid"?
(No, it has option for different portrait counts)
You need whatever internalID sve items are
Weird modding history tbh
the SVE items might not include "FlashShifter.SVE" in their item id
also, dont put a space
you put just the literal ID as found in Data/Objects right after the (O)
Okay π
No they are names paced correctly
I found it in my git
"AcceptGift_(O)FlashShifter.StardewValleyExpandedCP_Void_Soul": "{{i18n:Married.GiftReaction_Void_Soul}}",
I18n key cna be whatever you want, mine are just formatted this way so I remember wtf I was doing
Got it π§
What about the expressions? The standard one is 32 I believe?
Those you can hoooonestly just do $0 through $31
does RRRR have 32 portraits?
32????
Avi has desensitized me to ridiculous portrait counts
why is the standard one #32
And the gift dialogue changes depending on relationship progress and in game events π΅βπ«
Don't look at me like that 
you can do the same thing with content patcher When conditions
or GSQ dialogue commands
Is there a basic sample or starting point out there for a custom NPC in c#?
As button says, "you'd just be making content patcher but worse if you wanted a c# npc"
yeah, you most likely dont want to use C# for making a custom NPC
Perhaps NPC would be the wrong terminology, more or less I want a familiar or buddy type of thing (no dialogue, no events, etc etc) that can (eg) follow the player with some animations
Hat Mouse Lacey has some C# components as i understand it, but im not sure how much of that is actually NPC data related
Custom companions?
oh thats much different than the usual use of the word NPC here
Custom Companions might be a good thing to look at for a familiar
if not Custom Companions then Trinket Tinker, maybe
though thatd be gated behind trinkets obv
Idk if you can make the trinkers talk
they said no dialogue
depends on what exactly you had in mind for your buddy
π thank you, yeah I shouldn't have used the term NPC. Will make those both my first stop!
you were technically correct! just not the colloquial use here 
CC requires an npc beforehand iirc
But I haven't played with it so I don't know exactly 
eventual plan is to have a familiar roam the farm, maybe harvest ready crops etc, other random behaviours but obviously need to get to grips with the basics first π
Wait last question can I use "When" thing for the dynamic token "QiEvents"?
Oh I missed the talk about black magic fuckery of RRRR 
Which is funny when you consider that even monsters are Characters
You wanna add your gift dialogue to after that event? Just do the HasSeenEvent and use the event id
I might just add to the original mod if this headache keeps up...
Nah it's easier to do it this way
Or you can just see what QiEvents token checks for and set the same requirements
I'm just on mobile so I can't handhold you 
Not exactly more so during it since the whole event takes place over about 3 weeks ingame
Cause iirc it like a timeframe between events or something
Good idea
i will reiterate, permission to add dialogue does not mean you have permission to redistribute the mod
it might mean that
you would really need to double check with the creator
Oh I have these, for when I was doing my own fuckery Tom foolery.
"HasFlag |contains=galaxySword": true,
"HasFlag |contains=qiCave": true,
"HasFlag |contains={{ModId}}_PelicanOnce": true,
"HasSeenEvent": "1925178",
"Spouse |contains=Lance": true,
"Darker Plot Events(Y4)": true,
"Day": "{{Range: 1, 10}}",
"HavingChild |contains=@{{playerName}}": false
},```
usually, when people give permission for others to do things like add more dialogue or compatibility or other things, it's with the expectation that they will be doing it in their own Content Patcher mod and not redistributing their assets
and adding to the original mod and uploading that would be redistribution, as the original code/dialogue is the original creators assets
I'm so glad I just went with i18n replacer for Rasmodia patch instead of having to deal with all the tokens and copy&paste 
Well this is my own iteration of that event
So I've silenced RRRR if you married Lance 
Jello please take your end of development seriously and stop updating!
/jk
will I check for poly compat? No.
Poly stuff with RRRR is already a headache tbh π
The problems with npc expansions, they're a Neverending quest
looks at my enablers who want me to do the "choose your adventure marlon"
I'm still waiting for "The adventure of 3 old dudes" featuring Marlon, Willy and Wizard
Ain't no way someone will make something like that
Unfortunately.. (fortunately?) I am already knee deep in this plotline
... wait what? π
My bus travel method was having some issues does it look fine? https://discord.com/channels/137344473976799233/1305239717528207380
https://gist.github.com/aronyoddity/1ef5de37e418778e46f203eb374095d8
How does Content Patcher read a sprite sheet for items? Is it left to right top to bottom?
Some new project I don't know about? 
Top left-> right -> until edge of file
Then down one -> continue right
Like an excel sheet tbh
I'm intrigued 
Awesome! Otherwise this sprite sheet was gonna be REALLY long. Loooooooooong, hehehehe.
I think I figured out my next question!
note since 1.6 new items can byo their own spritesheet
Ooh, Marlon expansion, nice
Ignore my poor naming schemes, tia suggested I stick with my niche naming convention
so, from what I'm seeing, catalogues are placed in shops and furniture files? are there any other files needed to make a functional catalogue?
Tbh Marlon and Wizard's friendship is one of the best parts of SVE for me, sooo... just saying 
I like them too
I do gotta wonder what makes Camilla witchy though. if she's doing the same stuff as Magnus then she'd be a Wizard.
by default there is no way to make furniture do things, you will need to use a framework to make the furniture item open the correct shop. you can use calcifer or spacecore through content patcher to do this
which one would you reccomend? I have both installed
Well... she's a huge troll for once 
Don't forget Leroy! Furniture Framework makes your own catalogues too
I recommend calcifer because you can use the HxW mods as guidelines for writing your own mod
good to know
oh right!
I was thinking of making a cute catalogue idea as a reward for a special request
FF seems like fun, I really want to play with it at some point
I'm waiting for 3.0 so I can readjust my docs for Tea
I'm trying to understand DayTiles and NightTiles for Map Properties. The wiki lists the format like NightTiles [<string layerName> <int x> <int y> <int tilesheetIndex>]+But what if I want to, say, add a night tile to the vanilla Forest using a sprite from my own custom tilesheet? How do I point to that?
another possibility is to do conditional map patches
or a non-conditional map patch with your custom sheet, and just include a copy of the day tile on your custom sheet, so you can switch them out with nighttiles
at least I think that's how it works?
patching in sections with custom tiles does actually add the sheet to the map, so in theory it will work with nighttiles
Oh wait, that so? So do I also need to rename my map patch internal tilesets with a "z_" prefix then?
that's a good idea yes
I can't remember how CP names added sheets, but it can't hurt to follow convention
Ow geez disaster averted.
snagged a HxW mod and it honestly looks really simple to set up a catalogue with Calcifer, so TYVM for the reccomendation ^.^
I haven't played with spacecore furniture so that's all on the table 
In case of a map patch, how do I know what my tilesheetIndex is?
they are counted left to right, top to bottom, starting at zero, same way sprite indexes are calculated
Tiled click or when you place it down the [] next to the xy
oh does tiled show it? that's way more convenient
Click on the spritesheet in tiled* ye
But if the map has several different tilesets?
it only allows swapping inside the same tilesheet, afaik, which is why I said you'd have to include a copy of the day tile on your custom sheet
O.o is my house suposed to load empty on a new save or do you think a mod is interfearing
are you using a custom farm type?
yes
the author forgot to add a furniture layout
Oh, maybe I'm not understanding something, then. We call DayTiles and NightTiles on general Map Properties, right? And if the map has different tilesets, how do we determine which tileset to use?
<.< cough so um .... where do i find where to add that first time making custom instead of replace
it uses the same tileset that that tile is already assigned. it changes the index but keeps the same sheet
[[Modding:Farm_data]]
Oh boy, Nexus users not knowing what they're talking about
see the farmhouse interior section on this page
ok ty
Aaah, so put a tile there first, then determine DayTiles and NightTiles afterwards?
exactly!
Alright I'll try it. Thank you, all!
nothing else in the log, suuuuuuuure. xD
π
(For what it's worth, failing to load a pdb doesn't cause anything bad to happen.)
yeah, just funny because if I was looking at 'harmless errors' I'd complain about that one first before Spacecore xD
But Ridgeside is doing a bunch of patches at the end of the log, so I assume this is that weird harmony SEHException or something
Ah, well you see, users don't tend to look at trace level logs π
tbh, i wouldnt look to trace for an error to complain about either, or else id expect it not in trace. but maybe im just not thinking like a nexus user
Fair. Your harmless warnings are more visible, for better or worse.
π€ if the author says it's harmless i'd take their word for it and see if there's something else going wrong,but that's just me
@next plaza: fix the GMCM menu open API stuff for focustense (and other people who might be using it) (20h ago)
It's also fun how people sometimes look at past comments to long enough to say "same", but not long enough to see me asking for logs on other comments
I don't wanna
Uber remind me to fix the GMCM menu open API stuff for focustense (and other people who might be using it) in 23 hours
really kittycatcasey? that's what you need a reminder for? okaaaay (#6360659) (23h | <t:1731630072>)
Oh, it works if you say uber first
That was an accident, at least it works
(I swear this won't end up the same as the 0 schedule fix for spacecore)
Uber remind me to finish patching up my npc marriage dialogue in 12 hours pensive
uhhhhhhhhhh oh yeah k i'll probably remember (#) (12h | <t:1731590526>)
π
the good news is that even without events, it's in a "test-able" state
the bad news is, that I don't have events written
This is... intriguing... https://www.nexusmods.com/stardewvalley/mods/29384
Framework mod with no examples, docs, or mods requiring it
hmm, and i have to think about festival placements too
possibly they just haven't published a content pack for it yet?
Hmm, maybe
If the timezones on Nexus are right for once it's been out for 3 hours - I guess I just expected a framework with no/examples docs to have a using mod from the same person at release
(Though, 3 hours isn't long, I know)
i'd understand if no content packs yet, but no docs?
They were talking about it in this channel last night, maybe they just accidentally published
maybe
Good point
or didnt realize that they didnt need to
(I must have missed the conversation last night)
"Publish mod" to someone new to it might think that means "my mod page doesnt exist at all until i do this, so i need to do this to get back to it later"
honestly i'm happy nexus saves all that stuff for you
I didn't have a user when I made EMC, outside of the example pack
(then again I made it on request of 6480 so it probably doesn't count lmao)
bc i once accidentally turned off my computer π in the middle of putting up a mod
(they also uploaded the previous nexus ID too, so maybe thats their content pack to be? just speculation though)
docs are add BE7B0E74.HandToolsExtender.Enabled moddata flag to a tool, and then set{Power}.BE7B0E74.HandToolsExtender.Width and {Power}.BE7B0E74.HandToolsExtender.Depth to the values you want
what I thought was going to be an easy and fast some sprites edits is making 2 days to reach the half of it
Width and height my guess
i wonder how it behave with pickaxe
width and depth, whoops
I wonder if it has any code in the DLL.
Sounds like SinZ just checked
they were the one atra was telling about extension assets instead of stuffing everything into CustomFields



