#making-mods-general
1 messages · Page 299 of 1
it's the first bullet point here: #making-mods-general message
Can Content Patcher make a custom NPC, or do you have to replace the existing NPCs in order to make a new one?
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!
oh sage linked it above
....How do I reorder entries in Data/Fish? I'm pretty sure the reason my custom item doesnt drop nearly as often as vanilla items with the same chances is because the crab pot seems to evaluate chances starting from the top and going until it rolls a valid item
My rock salt has a chance of 0.1 but only spawned 15 of them in 500 crab pot uses
@calm nebula: ... (6d ago)
its added to "Ocean"?
Remind me in 14 days to patch for extended hearts
you bet your tail I will atravita! (#6655643) (14d | <t:1747022206>)
yeah it does go top to bottom in Data/Fish. It's a dictionary though, and I don't think you can reorder those in CP
😭
Obliterating a vanilla fish entry so I can put rock salt at the top hehehe
if people need to duplicate it they can use the crystalarium (in the next update)
But yeah no wonder people were complaining about it being too hard to get
let's yeet the smallmouth bass, it's not used in anything anyway /s
ngl i didnt even know u can get it in pots...
always just forage it
-# a job for MTF
I got lots of sea salt this save, but I also picked the crab pot no junk profession which changes the crab pot RNG entirely
Oh great, another thing to contend with for balancing
the fact that the profession smoothens the RNG and nullifies targeted bait entirely is probably a bug, but no one picks those anyway so it's overlooked
(the other profession on the other hand removes your ability to get silver catches entirely, and is arguably a straight up downgrade once you have more than a couple deluxe bait bins)
(crab pot professions are cursed lol)
Order isn't from Data/Fish its from the order in Data/Locations
for crab pot fish?
sinz its crab pot and thus cursed
ah yeah you're fucked then
ask pathos nicely to data model crabpot logic or get a framework mod to overhaul crabpots to not be bad
data modeling the fish would be nice
tbh I'm not entirely sure why Data/Fish even needs to fully exist anymore and half its fields are confusing compared to Data/Locations
merge Data/AquariumFish and Data/Fish
Extra Crabpot Config
somebody do the "stop making X, they have played us for absolute fools" meme but it's crab pots
MTF is 50% there already
SMD? 😛
what if
mod that let you hold the fish like this all the time
when u talk to npc they comment on your fish
Yay I made rock salt gem category without changing the Type and it seems like its not donatable to the museum, but it works for the crystalarium. Hopefully this doesnt break anything
there's a context tag to disallow museum donation
there is
if the item would otherwise be donatable
Oh you gave me a flashback to IRC days
SinZ slaps chu√e around a bit with a large trout
(also I'm afraid of exploding walk of life, vpp, fish nets, and gods know how many mods that patch the abomination that is CrabPot)
(machine progression system escapes the curse, for it follows the enlightened path of water-placeable BCs with clear, defined Data/Machines rules)
crab pots abandoning its fish roots and just being a machine is a decent compromise
i mean its essentially a water mushroom box
I'm now going to patch a single rare item into the chicken drop pool and hope there isnt some big mod out there which overwrites the entire chicken data
hm i am once again trying this load dynamic thing with no luck 
load dynamic?
yea accessing something loaded to pipeline by another mod
is the source mod using Game1.content or GameContentHelper?
i just used Game1.content
wait, luremaster removes the ability to catch silver quality? what the heckkkkkk
you can no longer load it with bait, and you need deluxe bait for silver 😌
crab pots are truly cursed. Glad I switched to MTF
the context here is that
- i had a useful TAS asset model in one mod (mmap)
- to share it with another mod (tt) i made a submodule shared project
- both of these mods were built with their own version of the model ofc, so they r different classes
.....sigh I forgot that animal drops automatically have quality no matter what
would you like an extra dependency to fix that
its not that big of deal if ppl simply had to edit different targets but this is once again me vs desire to not make chucore
a cursed fact about the asset pipeline is that it kinda isn't 1 pipeline but many.
every mod (and content packs) GameContentHelper is a separate instance with independent caches.
An invalidate will invalidate on all of them, but can load in multiple and the asset pipeline logic will run (though AssetRequested event is deduped and can only run globally once per tick per asset)
Waiting for that Chucore release now
when i use Game1.content am i secretly using helper.GameContent
no
would this work if i switch both of me mods to use that 
Game1.content is the main instance that vanilla is using, not to be confused with Game1.xTileContent which is what maps use instead (so it can dispose when going back to main menu)
~~sorry for interrupting but does anyone have a link to the SV wiki page that has the tokens you can use for content patcher?
oh it worked wow
does this just mean i have up to 4 copies of the assets floating around tho
secretly still different types huh
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot convert type 'Mushymato.ExtendedTAS.TASExt' to 'Mushymato.ExtendedTAS.TASExt'
asset pipeline isn't using pintail
idk why i do this when i can literally just open api for myself 
tyvm
Hmm so i can imagine how to refactor this nonsense
To let either mod try the other mod's tas asset as fallback
But I think the reason why i am ehh on making it framework is bc tas use cases for map and for trinkets r quite different
I find it very funny that in order to spawn something into the world through spacecore, you first have to add it to SpawnableDefinitions, then you have to put the SpawnableDefinition into a SpawningGroup, and finally the SpawningGroup goes into a trigger action to put it in the world
simple
In other news I finally figured out why some of my players were getting dozens of wild trees spawning at once even though only one was supposed to appear at a time.
....It was because I coded it to spawn dozens of wild trees at once....
Seriously...wait...seriously lmao
6480 secretly wants stinky tree takeover
thats so cute though 
Logo I'm crying
I went over the trigger actions that spawn the trees SO MANY TIMES. made SO MANY CHANGES
Its in the freaking spawnable definition.
Tree'd
I shouldn't laugh but I'm laughing
Im also laughing
I'm glad that you found it and it was ultimately an easy fix!
it only cost MY SANITY

I should revert the trigger action changes I made too ahdhajshd
Goodbye stinky tree forest...I'll miss you 😔 ✊
!stone
🪨 The item ID for Stone is 390.
Thank you stone command for saving my phone data from loading a whole item id database page
How often is that item id used in modding that it's a whole command???
the problem isn't specifically about finding stones id, its that theres like 10+ items called stone but only 1 is the one you think of as stone
all the stuff that can be mined in the mines are also object ids called stone
Does SVE change the position of the quarry? I assume it cant because the rocks would stay in the same place instead of moving
I think it makes mountain larger
@blissful panther Did you happen to work more on that MEEP feature for interactable item popups? Still no time pressure at all but I'm letting you know I'm definitely still interested in using it!
My "book" items are currently just doing what they need to do without any actual pages to read 
Is there a guide somewhere to when all the various strings are used, or, what would I need to do to look at and try to understand the C#?
You want to know where every string from every data file in the content is used in game?
You should be able to search for their file names (like Strings\\schedules - going off memory that this is an actual name) in the decompile.
strings are usually accessed via the Game1.content.LoadString("Strings\\UI:PT_Total_Value", ...args) or utility methods like Utility.loadStringShort("UI, "PT_Title")
dialogue stuff have extra helpers and abstractions that may make simple ctrl+f not find it
It's mostly the strings targeted by Custom Fixed Dialogue I'm interested in. Is there something I need to do to decompile the game code itself that's not just the xnb one?
(this may be over my head still at this stage)
never mind I've just done the command in governors mansion and I'll read the wiki
Anyone familiar with doing this on Apple Silicon? I've downloaded ARM64 version of ILSpy, MacOS says the file is damaged, it didn't pop up in the security settings. Do I need to enable something in terminal or something?
Okay installing rider now. (I'm so sorry for the running commentary)
sure, thanks for the info and for making that a field we can add 🙂
not sure if anybody's really gonna know, but is it feasible to have a custom location (in this case a custom farm type) spawn either pickable spring onions or something simmilar, i have no idea how the spring onions work. but i keep imagining the seed spot crops (sans powdermelon) and spring onions sometimes popping up in the tilable areas of my custom farm ideally the regrowing ones wouldn't stick around and getting forage xp for picking them not farming.... gods now that i read this back this whole thing sounds crazy.
I have no idea actually but maybe look and see if farm type manager does that?
unrelated, but im assuming i should just ignore this guy insisting that a content pack that modifies another content pack needs permission from the original creator to exist? super new at using nexus in general so i have no idea. (ive reached out to bees without any response just yet.)
I mean, they are right, you're modifying someone else's work
And if that person have closed permission on that point, you do need to ask for authorisation, both because it's the right thing to do, and because if you don't they have the rights to ask nexus to take down your mod
you should not ignore Airyn, he is right. You should be asking for permission anyway because that's the nice thing to do, but especially since they have closed perms you for sure need to ask for permission
... ok. i don't understand the problem. i can't process how its a problem at all to externally edit another mods content without redistributing any part of it. and yes, i've asked without response yet, and it'd be gone if bees wanted it gone.
litterally all im doing is applying custom content patcher logic to parts of their work.
it's just courtesy really
people often have a vision or a goal for their work, some people take offence to having others change it without asking
it doesn't matter what you're doing, you're doing it on something that is someone else's and they sspecified in their permission that they don't want their work changed
if they wanted a cow to make 2 milk and said in their perms they don't want their work changes even if you make a patch to just make a cow make 1 milk instead that's still changing their work
it's something small so they might allow it if you ask but you still need their permission
I think its a tough case when its something like doing an external patch to fix a feature (i forgot the context for this sorry); is the author still reachable?
ive reached out to @tepid prairie over discord and they haven't responded to me.
i also think this case in particular is a tough one, but it's still a courtesy thing to ask before publishing
now im thinking about how farmer to florist slowly picked up more bugs because nobody was allowed to fix it sjsjdjsj
https://www.nexusmods.com/stardewvalley/mods/33586?tab=description the mod in question for context.
first and foremost its me out of liking the mod trying to fix a number of frustrations i had with it and prexisting bugs.
The nexusmods moderators will be able to decide where nexus rules fall on this
i understand that this comes from a good intention
I understand being annoyed over this but nexus does have a specific set of rules that they follow for permissions regardless of intent behind making a mod
ill be honest i fundementally do not understand why its an issue at all even with yall explaining it.
So if you want you can ignore the commenter but the moderators may talk to you anyways
things like this don't really exist for your case they exist for things like patches to change a character's personality or story etc. but unfotunately that means they also apply to this
i do think that this kind of thing can only be acted upon by nexus only if the original author asks them to, so you might be good
I am also thinking that hahah
whole thing is creating a whole heck of a lot of anxiety about something i was trying to share because i thought it was cool and useful. and wanted to share with other players because the original is great, just has a few issues.
also airyn is not "coming for you" out of no where, but he does have a zero tolerance when it comes to breaking/bending perms because he's seen so many cases where there was something actually wrong happening, so even if your mod doesn't do something wrong it creates a precedent
frankly. i think if it gets taken down im just not gonna bother sharing it again even if i do get permission later. trying to do something nice now i just feel like shit about it
i mean that's your choice, but do consider that rules like this exist to protect authors, for example the mod might've not existed in the first place and was only uploaded because the author trusted that their permissions will be followed
again. i fundementally cannot process the problem with what im doing even with your previous explanation. which is not helping.
ok, someone makes a gay NPC, closes perms, someone else makes a patch for that NPC to make them straight. Do you think that's ok?
thats not for anybody except the author to weigh in on
the author already did weigh on it when they closed perms
im. not sure i follow.
they literally said in their permission that they do not want their work modified
(tbh its semi hypocritical to mod a game and then consider your modification to be more important that it needs explicit permissions, even if no redistribution is happening)
i guess to me i was understanding that to mean dont redistribute anything in my mod.
i'll also be honest im not even sure id know where to look to know about perms things
it's more about intellectual property in this case
My understanding of Modification permissions would be redistributing modified versions of the file.
a patch in the asset pipeline wouldn't count, unless no one is allowed to touch Data/Locations anymore because they did
also i personally agree with SinZ but a lot of authors are very protective of their work and i respect that
again, this is why i went out of my way to reach out so it could be discussed if there was an issue with it for them, and id respect their descision regardless of how that pans out. I just didn't let waiting for confirmed permission or that discussion to happen to delay my work on the project.
likewise, i pretty much agree to anyone asking to modify my stuff as recolours or balance patches. i didn't make the game, go wild. even though i'm not particularly happy about it, there's even a total conversion for sailor styles to use FS that i don't have the heart to ask for it to go, since other people like it
but as always, people are all different, and some are more protective than others about what does and doesn't fly
taking a peek, over copied the building data, could have done much more targetted patches to change the animaldoor sizes.
that. that i probally could. its on the list to trim down.
everything thats present is either stuff i couldn't figure in the momemt how best cut and still function but is actively in process or stuff i have yet to look at cleaning up.
I do not claim to even really be a good modder. But the goal is to let the original mod do as much heavy lifting as it can and only have my actual data edits in the patch pack.
please don't feel bad about it though, it's just a thing kind of in the gray area and some people see it one way some see it another but do keep in mind that neither side is technically "wrong" and just take it as an oportunity to learn to always check permissions in the future
(also it being a nintendo/pokemon company IP as well is the extra chefs kiss)
(indeed
)
though nexus does actually seem to be clear on it.
The uploader is responsible for understanding the legalities involved when using copyrighted work and submissions that contain such content may be removed.
but also
User-submitted content that is predominantly intended to interact with existing user-submitted content is subject to the approval of all parties involved and may be removed at the request of the author of the original content.
yeah i'd really like to point out here that the original mod in question credits the spriter's resource for the artwork, which was undeniably ripped from various published works
yeah so like i thought, you are fine but keep in mind if the original author wants it taken down it will be taken down, and check perms in the future
my tl;dr is both mods are probably violating some letter of the nexus policies
oh look their here
Yep. I had already accepted if Bees had a problem with it it'd be gone
the suspense is killing me
(suspense is so strong I wanna die)
okay so i for sure do not care. it’s fine, im not gonna request a takedown or anything. i realize the mod is a bit jank, i assumed the game updates combined with it being my first real mod makes for Issues. i would generally recommend waiting to get permission until you post it though? you only messaged me 14 hours ago, im not very active on discord and the message requests are hard to notice on mobile. ive got mods i straight up haven’t posted because the permissions were closed and the author of the mod i was fixing/patching/etc are inactive lol. it does suck, i tend to just work on them in private until i can get a definite response
Fair enough. And your absolutely right I oughta have waited.
i straight up don’t care about the patch tho. i will eventually fix the mod, ive been distracted with minecraft mods lmao
good ending
indeed
what if you did a collab in the making mods chat 😳
glad it got sorted
Understandable.
I might end up going through and fixing the sprite sizing issue for specifically Unown and Lechonk and bake it into the patch project and pass it off to you for when or if you get around to updating the core mod would that be okay bees, since your here and all.
i call it the spirit of modding
go for it!
i honestly just closed permissions so people wouldn’t like. yoink the actual sprite sheets i edited together and use them for something else
like someone else said, i don’t create the sprites themselves, they’re a combination of official sprites and fan made works that allow for others to use
When it's not inconvenient I'd also appreciate if you could post to the Nexus page confirming I have your permission for it so I can sticky it so there's no more questions about it there
there needs to be a permission that's like you can use my stuff just don't straight up rip it off
i did edit a few of the sprites in detail tho beyond just arranging them
so that’s why it’s closed
yeah i can do that for ya, im about to head to bed right now so i’ll do that when i get on my computer tomorrow
Fair enough.
Is it possible to give non-gift items to an antisocial npc? I need to be able to give a specific quest item to this npc
The only workaround I can think of is using their shop menu to include "trades" for the quest item, but it doesnt feel totally nice for my purposes
since it removes the mystery of what items you'll collect/how many
Can you do a lost items quest
Can I?
I know how to edit special orders and thats about it
I looked at that but it just seems to be the strings that appear in the journal
and not any quest data (which I assumed was in C#)
Wait I see it
Hmmm
I have 12 quest items so I could do 12 different entries LOL
Thats like, marginally better than the shop trade idea
Okay maybe no haha
Wait theres a SecretLostItem quest type
hmmmm
I'll test what happens if I add a SecretLostItem quest for them
The downside is that you basically have to have the item as some random place on the ground
Can't, say, have it fished up or smth
Oh SecretLostItem doesnt spawn it
only LostItem
If i am reading the wiki page right
Oh does it o.O
For a shop trade is it possible to hide the item until you have the currency
Oh a chue! Thanks for taking over, chue, an atra needs to make an appointment for a physical
And then go to work
Byeeeeee
I have no opinion or knowledge on quests
0_o
Come back 
I was thinking u do PLAYER_HAS_ITEM maybe
Thats smart if I cant make the wuest work
Can I make them say a dialogue if you buy the item?
Hrm u can spawn a convo topic i guess but i dont think that can immediately update the antisocial npc?
I am stop myself from suggest frameworks rn 
nope i cant give the designated quest item to the antisocial npc with a quest active (at least i think its active)
im fine with any framework as long as that framework is spacecore or emc
Or maybe the quest isnt active?
How do i make a quest active 
ah well i made it active and still no
thats a bummer
Hmm so while u could show hud message spacechase0.SpaceCore_ShowHudMessage
It won't interrupt the shop menu immediately
I just dont reallyy want the player to see the special quest reward before they get it, even if they have the item to trade in. Can an npc give you money in the shop menu as a trade, then I can have her mail the quest reward the next day?
Or can I make a giftable npc that doesnt have any friendship 😂
desperate
Use this to fire trigger action that takes away the Thing and give you a hud message
Thats hilarious because its like shes yoinking it from yoj
but I like it
Or is there a playeractivelyholdingthing gsq
I don't think so 
loool
Another thing u can do is start an event
spacechase0.SpaceCore_PlayEvent
You can do regular ol event things in there
I like that because it gives her some time to comment on the quest item, though players might get sick of having to sit through 12 of them even if theyre not long at all
Tileaction PlayEvent works too
It'd be nice if u can bunch up the comments but idk if u can do that cus we don't have goto yet
You will have to ask someone who know event script about this
this is all quite out of my experience lol
so im trying to figure out how best to edit a single remixed bundle option. but im struggling to figure out the best way to contentpatcher TargetField to access sub sections inside data/RandomBundles but also, there's no obvious outer layer between the full file and the individual entries. i guess maybe technically RandomBundles is just a list of bundle data models or something?
The first advice about making bundle mods is don't 
The data has to be edited before the save is created and changing bundle mod in middle of game breaks things
that much i figured. i mostly just wanted to extend animal husbandry mods inclusion of the meat items it 'reactivates?' to the remixed animal bundle like it does the regular one.
@lucid iron Hey chu, I've been playing around with the panorama feature of MMAP and I have a couple questions. So basically I am trying to customize your mountain panorama and I want to achieve a very slight vertical scrolling effect like the vanilla summit and island panoramas both have. So I removed the alignY component since I figured it was stopping the image from moving vertically and played around with a lot of different values for the parallax rate. But no matter the value I try the scrolling is always way to fast so it ends up with the bottom of the background empty when I am at the top of the map. Could you maybe explain how exactly the parallax rate works? I am quite confused since it also seems to move the position of the image itself (I tried a really high value just to see what happens and the mountains were way at the top).
@lucid iron hey so my animal catalogue turns into a house plant when sent through the mail
TargetField can use indexes #0, #5 and if the value in the list has an Id or ID field can use its value as well.
so what the parallax rate actually control is relative size of bg compared to view port
I was kind of iffy on this implementation bc the behavior is different depending on your screen size
To achieve what you want, a combo DrawOffset.Y and ParallaxRate.Y is needed, but I do want to make some mode of parallax relative to the map size instead of the viewport
I already have a bit of draw offset
Should I make the parallax rate higher or lowere to get a lower scrolling speed?
Or should I hold off on this until you implement that?
The real answer is "whatever factor that gets you close to the height of the viewport" which is terrible i know 
Is the catalogue feature of your mod chu able to be sent through the mail? its turning into a house plant
It's a big craftable right, did you qualify it?
what does that mean?
(BC)
Yeah (BC)YourThing
So I guess if I make this work for me there's no guarantee it will work for someone on a different size screen?
ooooo
(the vanilla panoramas aren't guarenteed to work on different size screens either)
Yeah that is the gist
Hence why i was thinking of a second map size based rate
The reason why I wasn't super concerned about it during dev is that, when the bg is static (anchored to bottom of viewport) but you are walking up to the edge
It does feel like the mountains are coming up anyway
Good to know. But that's also cursed
Random bundles does not have an ID field btw
Entries/fields can also use it too
the outer room doesn't, but the bundleset entries do (though the specific bundle once again doessn't)
Yeah that's true I guess, I just wanted to make something with different layers that come up at different speeds depending on how close they are meant to be
Hmm true, I'll think about what do and ping u if i make something 
Maybe it would be a separate offset that's solely dependent on where player is on the map
So as u go up it approaches 0
thanks that's great ( also no pressure, you've added so many great features already, I was baffled to see that all the farmhouse problems have been solved)
This is where i confess i uninstalled cozy nook bc the furniture got moved everywhere on upgrade 
Nooo you can reinstall it I just updated it with the new feature 
Exciting 
that didnt actually fix it
Hm is it's a mail limitation, cannot send over big craftables
you can though it was working before
I know thats what I have yes
Yeah i am baffled, the livestock bazaar feature just adds a interactmethod
It doesn't do anything to make this not work afaik
What is the expected BC id vs the actual furniture (F) id
can also use id rather than bigobject which will do qualified ids
(BC)Fellowclown.PC_AnimalCatalogue this is the item idea but hm
could it be because I had two different things being added?
You should get them one after the other i think
I removed the action of adding money and it works
I also removed (BC) too and it started towork
idk whats up with that
Oh yeah i assume u were using %item id [qualified id] %%
If u used the old form it should be unqualified
%item id (BC)MyItem %% or %item bigobject MyItem %% would both do it
my brain is braining very slowly
first value is the type of item
even if some aren't remotely items like specialorder, quest, money, conversationtopic, *recipe
yeah when I add the money action with the object action in there it becomes a house plant
I wonder why the money thing breaks it
A workaround might be to give players the gold coin item instead
The theory is
%item id (BC)animalcatalogue 1 (O)GoldCoin someamount %%
Each gold coin is 250 actual money
So to give 1500 money you need 6 gold coin
that sems to have worked thank you
Oh I see the issue
the bigobject variant doesn't do quantity, so its randomly selecting between {{ModID}}_AnimalCatalogue and 1
so you could remove the 1, or switch to item id, or keep the goldcoin workaround
thank you both a bunch
I regret trying walk the path of replicating spring onion behavior.
Would the "modded-tech-support" channel be an appropriate place to get some pointers on troubleshooting a mod mid-creation? Or is that more just for player troubleshooting mods they installed?
That's for using mods, yeah. This channel is the one you want.
Thanks
True.
Ultimately just seemed less than ideal for a custom farm type to need custom c# even if it was easy.
Brain thought it'd be cute for my Foraging/Ranching farm type to spawn stuff like spring onions or other foragable crops in the dirt based on the season though technically really carrots were the only other one that made sense.
Are you after the help now or just being prepared?
Both?? I am midway through something, but also I'm at work right now, so will be looking for that conversation at a later time
I know folder structure could also be a factor, so I may do like, a video share walkthough or something.
Basically I have a Json asset, and a C# mod (that work together), I can see in the console log that SMAPI knows it's there, but it's not actually showing up in game. I have the Lookup Anything mod, so I've also been testing with that to see if the item is appearing in there if my farmer doesn't have the recipe yet. There's more to it but that's the TLDR, as mentioned I'm at my real money job right now, so a more detailed conversation will come later
Fair enough! I imagine it will probably be when I'm asleep given our likely respective timezones (nearly midnight here) so good luck :)
cfl can spawn those
An example would be Kustenheide Farm, which has Spring onions, Fiber and a few other seasonal crop growth
Sorry for not seeing this sooner, No I did not do the patch export after interacting with a fish pond. Maybe it isn't a reproduceable error, you could try testing with the current version of my mod(haven't updated it yet) + alchemistry/SVE and see if it is just my mod for some reason, but idk.
It's ok sinz fixed it
Seems to be a problem that goes away as soon as the asset gets loaded with correct typ
interesting
So the solution is improve type detection
Huh. Useful. Cool that there's an example of this.
nevermind... i don't think i can use this. at least not without a large conversion to the cfl system.
since i already have the map and custom location working and would rather not have to essentially clone everything id setup using vanilla systems.
unless im misunderstanding. since it seems CFL tries to replace normal custom farm loading with its own system/menu?
Hi guys, unfortunately discord is banned in my country but somehow i can access it via eduroam without using vpn. I'm quite a new to modding, I'm planning to make a mod that adds a essence maker and perfume maker to the game. My boyfriend is a perfume enthusiast i want to give it to him as a gift. However, I jusst couldn't figure out where to start, i read wiki but it looks like i must write codes that are "too long" which i barely understood. I hoped to find another machine's codes thinking maybe i could adjust it for my perfume mod but i could not find any. I'd be really happy if anyone helps me
I don't have problems with private messages too, if i am not answering it means i am not at my university campus 🤧
Ah, another question, some of the items that make a perfum are not in the vanilla game and i have too many mods that i don't even know if ylang ylang and blue iris are associated with the same mod. Do i need to reference all my mods just in case? Or maybe i should make my whole mod include the items that'd make essence and perfume (which will be hard af considering all perfumes have unique notes)
Odds are Ylang Ylang and Blue Iris are from Cornucopias more flowers pack if your using that .
Otherwise I couldn't tell you.
Ultimately when editing recipes for anything except vanilla recipes best practices is to ensure that anything to do with a modded item only runs when you know it actually exists.
Lookup Anything can tell you what an item is from. Not every mod expose that information however (Cornucopia doesn't), but the full item ID (via the "Enable data mining fields" settings) can give a hint
Never knew those ahh thank you
have you read the Content Patcher guide? the wiki page explains the game's data and how they're organized, CP is how you edit that data
in this case, if you want a perfume maker machine you'd add its entry to Data/BigCraftables, and its machine rules to Data/Machines
[[Modding:Index]] has a page for both
Cornucopia Artisan Machines is an example mod that adds machines, though probably not the simplest example
Wildflour Atelier Goods too (that one even has a perfume maker), but again, not the simplest mod to reference
@lucid iron So i've run into an interesting issue using EditData instead of Load for the FishPondData file.
The Vanilla FishPondData file has no top level entries... so like in the edit data example for fields using data/objects moss soup has a top level entry that encompasses the whole thing being "MossSoup",
but the FishPondData doesn't have any, it's just a straight list going
{"Id": "Lionfish",
...
},
"Id": "BlueDiscus",
...
)
etc.
"MossSoup": {
"Name": "Moss Soup",
"DisplayName": "[LocalizedText Strings\\Objects:MossSoup_Name]",
"Description": "[LocalizedText Strings\\Objects:MossSoup_Description]",
"Type": "Cooking",
"Category": -7,
"Price": 80,
"Texture": "TileSheets\\Objects_2",
"SpriteIndex": 144,
"ColorOverlayFromNextIndex": false,
"Edibility": 28,
"IsDrink": true,
"Buffs": null,
"GeodeDropsDefaultItems": false,
"GeodeDrops": null,
"ArtifactSpotChances": null,
"CanBeGivenAsGift": true,
"CanBeTrashed": true,
"ExcludeFromFishingCollection": false,
"ExcludeFromShippingCollection": false,
"ExcludeFromRandomSale": false,
"ContextTags": [
"color_green"
],
"CustomFields": null
},
moss soup as an example having the top level entry
I don't entirely understand what you mean here
Fish pond data is a list instead of dict yes
But content patcher makes you use a dict to edit those anyway
so, the way I had it was doing something like
"Id": "Lionfish",
...
}
to edit the fishponddata, but that didn't change anything in the file, it didn't overwrite the base game code
so i'm not quite sure where to go from here using EditData, because i'm not sure how to go about changing the default data as it doesn't have any entries specifying the fish, and is just a list
it being a list means for some reason i can't push any changes to it
This should work tho, because content patcher is searching the list by Id=key 
so like I tried doing this afterwards,
{
"Changes": [
{
"Action": "EditData",
"Target": "Data/FishPondData",
"Priority": "Early",
"Entries": {
{
"Id": "Lionfish",
"RequiredTags": [
"item_lionfish"
],
"Precedence": 0,
"SpawnTime": 1,
"BaseMinProduceChance": 1.0,
"BaseMaxProduceChance": 1.0,
"WaterColor": null,
"ProducedItems": [
removing the "lionfish": before the {}
but it is just giving me an error in VSCode
but it didn't
Well yes this is now invalid
which is weird
You can try usin #0
that's what I figured
yeah sorry, reply auto pings
But yeah try using #0 as key and then toss a fish into a pond before u do patch export
so like "#0_LionFish": {}?
You will also want to look at your trace logs to see what mods are editing stuff
Nope just #0, assuming lion fish is the first fish
You still need to quote it
Well, try and make sure the lionfish works first
Before you go #1 #2 etc
This kind of succ tho 
I'm going to do some testing see if the old way I had it does work or not, and it was just something funky going on, or if i need to do the #0, #1, #2, etc.
Also check if there are more than 1 Id=Lionfish in the data for some reason
yup
okay. this is getting weird, so normal fish seem to work fine with the "LionFish","BlueDiscus", etc.
but where it gets weird is the legendary fish. which is what was tripping me up in the first place making me thing nothing was working
The legendary fish all have 1 entry pretty sure
So obviously the vanilla implimentation of vanilla fish is a bit weird.... and in the process of editing that trying to keep the same structure and then that being loaded into the game... duplicates the entries for legendary fish?
like now there is the default entry and my edited entry in the same file
yes it does
If you want to add unique outputs per legendary fish i would do a separate editdata which adds a new Anglerfish entry or whatever and then use move entries to reposition them above the original
Leave the vanilla legendary fish entry alone
that is the way i originally had it setup, but that didn't work either
it just defaulted to the vanilla values
Move entries is a thing you do as part of EditData
I dont have that in no, however all the other entries, outside of the legendary fish, are working perfectly fine
getting overwritten properly
But chu is not saying to overwrite, they are saying make a second entry and ensure that entry gets chosen first.
even though the files don't have matching list order (artifact of when i first made the mod, and then the default file getting rearranged when it was updated)
so, making a separate entry for crimsonfish. and using move entries to make sure it's above the default legendary fish entry so that it gets loaded first?
therefore "overwriting" the default
I would refer to that as taking precedence because the original data is still there. Have you adjusted the precedence field at all, relatedly?
i haven't done anything with precedence no, as I didn't know how the priority system worked, whether 100 comes before 0 or 0 comes before 100
(my problem with priority systems, they can be either way, and without proper documentation it can be hard to tell)
does anyone teach classes in creating mods or anything similar?
I always just experiment if the wiki isn't clear. That or go looking at the C#. Are you attempting to replace the entire legendary fish list item or just the items within the ProducedItems field inside the LegendaryFish list item?
there's a university (RIT) that uses stardew modding as one of its game design courses. the results get published to nexus so there's a small crop of them each year
i guess i don't actually know if it's a game design course, but it's something along those lines i assume
I don't need to replace the whole entry, I just want to add in additional drops to the legendary fish, as I had it before switching over to editData
switching to editData from load leading to me finding lots of stuff that needs to be changed over because I didn't do it quite the right way
Are you using TargetField to only edit ProducedItems?
I feel like taking classes in modding is something I would have never considered tbh
AND I took classes in square dance and radio in college
no, as I am editing more than just the produced items, I am targeting the entire list entry for each fish (including legendary) and editing some of the values + adding additional drops
I would also not take classing in modding. Sounds too boring. Too restrictive.
the only entry that is giving me trouble is the legendary fish entry because it's different from the rest
How is it different? Looks the same to me
so the normal fish each have their own entry, where as all the legendary fish are put together into one entry using conditionals
If you look right under legendary fish you will see desert fish, semirarefish, carnivorousfish etc. Are they not the same as the legendary fish?
nope, those are default entry classes the encompass the default context tags, as a fall back for if any fish doesn't have it's own entry or fails to load an entry
{
"Id": "LegendaryFish",
"RequiredTags": [
"fish_legendary"
],
"Precedence": 100,
"MaxPopulation": 1,
"SpawnTime": -1,
"BaseMinProduceChance": 0.5,
"BaseMaxProduceChance": 0.5,
"WaterColor": [
...
"ProducedItems": [
{
"RequiredPopulation": 0,
"Chance": 0.75,
"Precedence": 0,
"Condition": "ITEM_ID Input (O)160 (O)899",
"Id": "Angler",
"ItemId": "(O)812",
"RandomItemId": null,
"MaxItems": null,
"MinStack": 1,
"MaxStack": 4,
"Quality": -1,
"ObjectInternalName": null,
"ObjectDisplayName": null,
"ObjectColor": null,
"ToolUpgradeLevel": -1,
"IsRecipe": false,
"StackModifiers": null,
"StackModifierMode": "Stack",
"QualityModifiers": null,
"QualityModifierMode": "Stack",
"ModData": null,
"PerItemCondition": null
},
where as legendary fish is like this
using conditionals so specificy which one, and the legendary fish don't have their own separate list entries for their outputs
they're just shoved together under the "LegendaryFish" entry and separated using conditionals
{
"RequiredPopulation": 0,
"Chance": 0.72,
"Precedence": 0,
"Condition": "ITEM_ID Input (O)682 (O)901",
"Id": "_MutantCarp",
"ItemId": "(O)812",
"RandomItemId": null,
"MaxItems": null,
"MinStack": 1,
"MaxStack": 4,
"Quality": -1,
"ObjectInternalName": null,
"ObjectDisplayName": null,
"ObjectColor": null,
"ToolUpgradeLevel": -1,
"IsRecipe": false,
"StackModifiers": null,
"StackModifierMode": "Stack",
"QualityModifiers": null,
"QualityModifierMode": "Stack",
"ModData": null,
"PerItemCondition": null
},
so all of this is under the same entry, unlike every other fish in the game
What makes that difficult? The fact that you want to edit fields outside ProducedItems individually for each legendary fish but can't because they're treated as a group?
no, the fact that when i tried to add other items under ProducedItems using the same conditionals creating two separate entries for legendary fish, one the default and the other the default+what I added
and when I tried to have separate entries for each legendary fish, none of that getting applied at all in game
That sounds like you do want to use TargetField then, since you want to leave the overall LegendaryFish list entry untouched and only edit what's inside the ProducedItems field inside LegendaryFish.
so, has anybody else had any npc ideas that required them to look into asymmetric encryption, or am I alone on this particular rabbithole /lh
but I am editing more than just the ProducedItems, so i want to edit the whole thing
But you just said you don't want to do that
did you chatgpt that? I’ve never seen half those keywords but I’m not super familiar with fish data
No they're all vanilla iro
I have written and gone over these files for hours and hours....
what is populationgate
every day I learn a new keyword
editing each thing by hand when stuff needed to change
What do you want to change outside the produceditems? SpawnTime? MaxPopulation?
fish pond quests for raising pop
basically i'm setting
"BaseMinProduceChance": 1.0,
"BaseMaxProduceChance": 1.0,
for every fish
are the IDs all supposed to be the same?
but for legendary fish it's that and then the produced items
usually when there’s an ID field it implies uniqueness
I think you should be targeting just the fields you want to change instead of replacing entire entries, unless you just don't want your mod to be compatible with other fish pond mods
fishponddata feels very much kept together with zipties and duct tape lol
(just throwing my first thoughts because sometimes it helps having someone who knows nothing throw ideas out lmao)
Don't worry iro I am already occupying that coveted space here xD
but yeah, what is Id in this context, because I find it strange for multiple entries to have the same one
it is strange, and it shouldn't be doing that, it should just be editing over the default one
all the normal fish are getting edited over correctly
look a shiny object iro go get it
ohhh this is a patch export not the patch itself
I don’t like shiny objects I like breaking things
like lion fish
well go break it then iro
or tiger trout
working perfectly fine editing the overall entry,
just legendary fish is being wonky
don’t see you being helpful wiz 
i'm moral support
are there any other mods that edit them?
maybe you can see if any of them had to do some weird magic to get it to work
How is this any better than load, by the way?
i'm not to sure,
however caveat here being,
everything worked fine pre 1.6 when legendary fish were added to the fishpond in vanilla
even coded my own c# mod to make it possible and it worked perfectly fine
and now with 1.6 and me switching from loading my file directly over to using editData it's doing this
I think this is a patch export, not the json of the patch itself? unless I’m wrong
Yes it's patch export
load was being wierd
and not letting other mods append to the end of the list
meaning no other mod could add custom fish to fishponds, being a nightmare of compatibility
are there any other content patcher mods editing legendaries
it might be just unsupported
I feel like this might be fixed 
Is there a guide for making a custom mines location?
meaning technically I could go back to load lol
None because mines r so very hardcoded
More specifically, how to get randomness in each floor
iirc the tl;dr is you should change floors of the original mines somewhere after 77877 or something
What you can do to simulate it is
- Make a ton of map/location
or do what chu said
I swear spacecore had something for this
I just had a framework idea
ultimately whether I go back to load or stick with editData, the legendary fish entry is still doing weird things
So if I make a load of maps, how do I determine the ladder randomness?
The spacecore thing is for map generation, it doesn't handle custom dungeons
I've looked into it before, but I haven't had time to write it
I nerdsnipe you then, iro
Does your patch for LegendaryFish have the BaseMinProduceChance set to 1.0 like the others?
not yet as I forgot to change that, but yes it should have that
as I want all fish to just rely on the produced item chances and not an over all chance to proc an item and then roll for which item/items
The ladders would be fixed to a few spots
But you can decide which ones appear per day
going to do another test and patch export and see what happens this time, whether the same thing happens again or what
what do you think my last message meant 
another thing is this.. which it shouldn't be doing as max pop is 1... but uh, i'm not to sure on why that is a thing
weird things or no, it is in your interest not to go back to Load
We are at the point where you sharing your json and the patch export via the json validator is probably going to be the best way forward.
why did I remember legendary fish already being possible to put in fish ponds in 1.6
ah, icic
1.6 added it in, before that was impossible without C# modding
or was it end of 1.5 that added it, can't quite remember
1.6.9 added legendary fish ponds
thanks
anyway, now that the entries are actually loading in properly i need to test to see if the items are producing properly
anyway I’m going to move to my thread to throw some framework pack structure idea spaghetti at the discord wall
I am going to move to my bed to sleep like I should have done an hour ago
lol
turned out the fix was.... use a capital L....
missed the stupidest tiniest thing
I had "legendaryFish" instead of "LegendaryFish"
Staying up past 2am is so dangerous. That's when it starts getting busier in here.
🤦♂️
But your patch export had a capital?
well cause it removes the "asdSDA" {} before the brackets when shoving it into the list
this gets removed when added into the game files
Oh the one for your CP key. Well, an example of why sharing your files is helpful from the get-go I guess haha
yup XD
Glad you found it and mentioned it because I was baffled lol
me too lmao, then I saw that tiny thing taunting me
still some wierd stuff going on though, but if some ui bugs and water color not working are the most of my issues whatever
i can figure that out later
Best I can offer is an insanity check
the first image ( my file)
should not cause second image (patch export)
editing third image (default)
with only content patcher and my mod installed
so they way I'm understanding this from this new info...
editing the whole entry with editData seems to be replacing everything even the unspecified stuff, and then that stuff is being regenerated based off of some default somewhere....
not just editing the specified entries within my file under the entry, as I assumed it did
so like lake fish is going from a precendence of 500 to 0
By editing it the way that you are, you're replacing the entire fish's data with what you have specified or with the default.
Hence why I was mentioning TargetField.
this'll be fun to fix
Or you can just copy and paste the whole vanilla entry for each fish and then just edit the fields you want to change. Without your early priority that would be a compatibility disaster. With the early priority...I don't know enough about compat to say if that's safe enough.
so something like "TargetField": [ProducedItems, "BaseMinProduceChance", "BaseMaxProduceChance"]?
But I want my mod to take precendence over everything else as it changes a bunch of fish pond outputs and other stuff
it's not really meant to work with other mods that directly affect fish ponds anyway
hopefully it should work with mods that just add onto it with custome fish
ie SVE or Alchemistry or others
No, TargetField is for drilling down not picking multiple fields. Just using fields without TargetField instead of entries might work... but I'm very hesitant about that because I haven't had cause to use Fields so I still haven't properly grasped it.
I think Fields is what you want yeah
yeah, target fields is too specific
if you were editing one fish entry that would be fine
but editing every single one just adds like 200 more lines of unnecessary code
using target fields
"Fields": ["ProducedItems","BaseMinProduceChance","BaseMaxProduceChance","SpawnTime"],
so something like this "should" work
Nope
Second example here shows how fields works: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md#edit-a-dictionary
ahhah, so just replace entries with fields and it should work?
{
"Format": "2.6.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/FishPondData",
"Fields": {
"LegendaryFish": {
"SpawnTime": -1
}
}
},
]
}
Enjoy my terrible example
I should add the quotes lest someone tries to just copy and paste that in future but I'm on mobile so it's too painful
Remind me in 12 hours to add quote marks
yeah, so they way I think this should work is instead of "Enties" {}, you have "Fields" {}
I'll have you know abagaianye I am SO MUCH MORE than just a reminder bot. but fine. (#6656610) (12h | <t:1745905995>)
Yeah but I think if you want to edit ProducedItems by just adding another entry to it you'll need TargetField because just Fields will still replace the whole ProducedItems field
It's fine cause i'm rewriting the whole "ProducedItems" anyway
increased roe rates at different pop and additional items
Good to know for future however in case it comes up
so it is the same exact structure, just fields instead of entries
now that the patch export looks correct, need to actually test with the fish in the ponds
this whole ordeal was quite confusing for me lol
For Custom Companions, is there a way of making it so they don't spawn in rain or snow?
thank you for all the help 😄
You're welcome! I rely very heavily on the examples in the CP documentation to help me understand the explanations of the different functions of CP
yeah, the problem being when you're working in a file that is a bit different from the example files
can be hard to relate the info to what you need
Yeah not having many examples for lists makes for some educated guessing lol
yup
Anyway, actually to bed now, night!!!
and I definitely am not the most adept coder lol
night
thank god I finally fixed it XD
@ivory plume Hi! I'm the Nexus user who asked you for help to make a mod compatible with your Central Station mod.
that would be case by case. We don't touch most cutscenes. But if one is touched, like the bamboo pole cutscene, it could break our ability to detect it. I'm not sure
If people think that would be valuable, I'd be all for it. I definitely dont have the bandwidth to follow the entirety of this channel so a dedicated space would be cool haha
(I also wish I had the mod maker role
)
for reference on the hat collection feature: https://staticdelivery.nexusmods.com/mods/1303/images/18177/18177-1729477846-890621896.png
I see, that's interesting
I'll keep that in mind for when hatsanity becomes a thing
it is true that it is extremely thematically connected to Lacey and would be worth special handling
also re: the hatsanity percentage, 100 is madness since there are some hats that are extremely difficult (living hat), specific (emily's magic hat), or impossible (panda hat) to obtain
Stardew Archipelago - Integration Request/Discussion
12 bug reports come in immediately, you cannot relax
I don't know if this really fits in this channel, but could somebody do me a massive favor? I am incredibly dyslexic and can't read that well. I love this game, but I can only play on 1.5.6 because that's the only version that a TTS mod works. Please restore it for me — the source code is in the description. If you could, I would forever be in your debt.
Is it the font that's bothering you? There are mods that modifies the font, you could try that as a workaround
If not, I can't personally do it, but I'm sure someone would be able to
for now does this work for you: https://www.nexusmods.com/stardewvalley/mods/16205
Sadly I really can't read altogether I mean I can but it takes forever since I was dyslexic I was never properly talked to Reed because it was pointless so I can a little bit but not enough to be useful
So TTS is kind of my only option
Stardue access seems good but that announces everything I really only need dialogue and text
This is the mod I normally use it has the source code but I have no idea how to restore it https://www.nexusmods.com/stardewvalley/mods/1079?tab=description
Oh, that's kind of sad, but I understand
Yep very though I'm working on it
I wonder if you can config what to read in stardew access
I'll look into it
Didn't find relevant documentation though
I know it's possible to update mods to newer versions but I have no idea how to if somebody could teach me or do it themselves that would be absolutely amazing
Yeah it doesn't sound like it
From a little dive, it seems there is an unofficial update to the mod: http://forums.stardewvalley.net/threads/unofficial-mod-updates.2096/post-124930
Beware it doesn't seems compatible with Lookup Anything, if you're using it
Unfortunately, I believe Date Night is not open source so even if someone updated it they couldn't post it without author permission. I'm running into the same thing with Adventurer's Guild Expanded (same author). I have the mod updated locally, but the author is MIA
Question, but I saw you...
Yay! Glad you can continue to play like before ^^
Thank you so much for helping
anyone know why my submod tags refuse to work?
"UpdateKeys": ["Nexus:24869@@fruitghostsAHM"],
should that not be it?
wait why are there two @, shit lol
eh doens't seem to make a difference
Honestly I have never seen an update key use more than just the numbers
I noticed that one of your optional files doesn't have an @ key
hm, would that bother it?
would that make smapi think it's your main file I wonder
can try that
maybe i'll just archive that anyway since it's out of date
i see i have a "MinimumApiVersion": "2.11.2", for reasons i do not recall
here's the trouble mod's manifest
keeps getting the main file's version
yeah this one has been eluding me awhile now
i've reuploaded it like three times lol
i guess i could like....set them both to the same version?
which maybe would be wise anyway
that does seem to make it happy, weird
if it works it works i suppose ¯_(ツ)_/¯
How do I make another farmhouse in a custom location? Specifically, I'm wondering how to make it so that when the player enters a bed, it will ask to go to sleep, and also the ability to change walls and floors/decorate
i feel like those are maybe properties you can set in tiled?
I saw the TouchAction Sleep prop but it would mean that the bed couldn't be moved
I believe you need another framework to be able to place beds that you can sleep in outside of the farmhouse
Esca's Modding Plugins iirc?
Ahh that would make sense. Does that make it so the player can change the wall/floor and add furniture also?
Hmm doesn't seem like it does. I can't see a property to use in tiled either hmm 
I think it has to be a farm building
wtf is that link
hmm could you set your location to subclassing DecoratableLocations without it being a farm building interior?
I don't know, hope it is possible without it being hardcoded
i believe the portable hole mod lets you sleep in it's added room, maybe that could help to look at how it does it?
Oh I'm fine with the sleeping thing now, I'll be using EMP for that. I'm just concerned about the decorating the rooms
Is it even possible lmao
it should be, PIF rooms can be decorated
Just had a look and PIF has a dll
ah, welp
Is it not possible with CP then?
In the Type field of your custom location , set it to StardewValley.Locations.DecoratableLocation
then follow the link above and add decoratable walls/floors
try it and see if it works
Thanks Selph, will it work for furniture also?
probably
that would be my next suggestion if DecoratableLocation didnt work
What smapi rendering event do i need if I want to draw an overlay over everything, including the global fade? The rendered event isn't doing what I want
I'm currently using RenderedHud which is close but id prefer if I can draw over the fade as well
You need some RenderedStep thing i guess
Hmmm ok
Gotta investigate if there even is a render step after everything
If not then uh, patch game1.draw ig?
I'm not super familiar with the rendering pipeline but you'd think rendered would happen after everything
I would expect Renderedhud to do nothing when hud not there
Global fade hmmm
Rendered*
oh fr? i will take a peek
I recall that being kinda wacky, like a second of black and then the snow resuming
(in the fade after events)
hmmm
the thing i want to occur is theoretically simple: draw over everything without regard to what is on the screen right now
actually, when I use Rendered, it draws under the global fade but it somehow manages to draw twice with 2 different scalings once the fade is gone
when I use RenderedHud i don't have the duplicate
Hi! Sure, I can help you here. You mentioned you already tried; what do you have so far?
I only read the documentation where you explain how to do it, but since I didn’t fully understand it, I haven’t changed anything yet. The only part I understood was about adding your mod to content,json
For posterity, use the RenderedStep event and draw if the step is RenderSteps.Overlays
Ok so I'm having a strange problem. It's using up my wall and floor out of my inventory when I click to use it but the visuals aren't changing to the new wall/floor. Any ideas why?
Hi there,
My real money job is over so I'm ready to talk about this.
Idk what I'm missing exactly.....the goal is for the recipe to show up in the mail after sleeping, but it isn't appearing. I wasn't using the MailFrameworkMod initially, but wondering if that's not optional? I do have it installed for other mods I am using.
SMAPI definetly sees my manifest and my JSON cause the console log IS registering it....it's just not happening in game. Not sure what I'm missing. (for context, I haven't programmed the bat box behaviour yet, for now I'm just trying to make the recipe spawn, unless ya'll suggest I do it all together and then debug the whole situation)
Anyway, here is the C# I have atm. It'll be the next message since I hit my no nitro limit.
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
namespace BatBoxes
{
public class BatBoxesMain : Mod
{
public override void Entry(IModHelper helper)
{
helper.Events.GameLoop.DayStarted += this.OnDayStarted;
this.Monitor.Log("BatBoxes: Mod initialized.", LogLevel.Info);
}
private void OnDayStarted(object sender, DayStartedEventArgs e)
{
Farmer player = Game1.player;
if (!player.craftingRecipes.ContainsKey("Bat Box"))
{
int heartsWithSebastian = player.getFriendshipHeartLevelForNPC("Sebastian");
if (heartsWithSebastian >= 4)
{
this.Monitor.Log("Conditions met: Unlocking Bat Box recipe and scheduling letter.", LogLevel.Info);
player.craftingRecipes.Add("Bat Box", 0);
if (!player.hasOrWillReceiveMail("BatBox_Letter"))
{
Game1.addMailForTomorrow("BatBox_Letter");
}
}
}
}
}
}
Did u set up the whole wallid floorid business
Yep I did
Need specifically walls_and_floors tilesheet no substitutes allowed
Oh so I can't have a default wall and floor from town_Interior?
By json do you mean a content patcher mod?
if we move past the fact that you may want to just use a trigger action, what's your mail data look like?
I mean JSON assets
sorry I'm super new at this and reverse engineering all the things so I may have outdated stuff/things that aren't quite right
Please don't use json assets in 1.6, it's deprecated and kept alive just for old mods
oh thanks! See I didn't know that
So i vaguely recall the wants for this mod (a tapper like thing that makes fruit?)
Would you rather do the entire mod in C#, or do nearly all of it in content patcher and then maybe do C# to implement bat critter
ya, but I was going to try adding other things other than fruit so it's not just another fruit cave. Idea was you add one item to attract a specific species using a "bait" item, to give it more variety
whichever is cleanest/most lightweight down the line
For a purely content patcher approach i suggest this dependency https://www.nexusmods.com/stardewvalley/mods/22975
to update this would it be as simple as changing the "UniqueID" field in the manifest i.e.:
{
"Name": "Bat Boxes Content Pack",
"Author": "fdoom6",
"Version": "1.0.0",
"Description": "The content that brings the bat boxes to life.",
"UniqueID": "fdoom6.BatBoxesContentPack",
"ContentPackFor": {
"UniqueID": "spacechase0.JsonAssets"
},
"MinimumApiVersion": "1.11.9"
}
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
yep, I'm aware of that guy, definetly using it later for the functionality, right now it's just getting it to spawn
Read up on how to make a content patcher mod first
Using machine terrain framework is still making a content patcher mod, you are just adding more data
As for your mail/recipe, this is usually done via trigger actions in the base game
!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!
If something exists as content, content patcher can patch it, hence the name
My recommendation for now is to get your big craftable into the game, and spawn it with cjb item spawner or whatever
that's super helpful. Ya, I was likely reverse engineering older mods
Then u can look at making it a machine
And lastly mtf will let u hang the machine on a tree
Did you at any point define your recipe in the game data
yep
Can you show that
but now that I know I was using a legacy methodolgy it's entirely possible it wasn't getting picked up right
Your actual c# code doesn't look particularly wrong tbh
it was done the JSON assets way though, so probably isn't right, going back around that
I'm sure it's just little things
Yeah, go define your recipe manually tbh
It's more that 1. you don't need to do it bespoke 2. we don't know if your data looks correct
in the C#?
Among other things, I suspect JA may namespace your recipe now
In any gd way you want to just do it yourself
If you want to do the whole mod in C#, you can
Essentially just gotta do the content edits by the c# way
Info on that here
So yes pick the approach you vibe with more, either is fine
Just remember that you cannot have a mod that is both content pack and c# dll
Mods that have both components just ship them together in 1 zip
But they need different unique ids
more good advice, again piecing things together as I go along ha ha, I do have coding experience, but Stardew modding is a new area
The reason why Iean more on doing it by content patcher is cus the only thing u definitely need c# for is the critter spawn on machine 
that's actually super helpful though, saves the pain of being a version behind
Other things are either vanilla or existing framework
making a list of notes here, on the upside it's not like I'm starting OVER over, just redefining things so it's not JSON assets
and I'll probably actually make my own life easier lol
hey I'm creating my first mod and I've not worked with C# much. I'm trying to do something when a default ActionTile is clicked. The action tile is Default_GetClubCard_Left and Default_GetClubCard_Right, which is the wood pile that's on the left side of the farmhouse. I've reviewed the wiki and it just isn't clicking in my brain how I'd want to handle a click for those action tiles. I really appreciate any help.
Those Ids do not get used in the logic, the action is called LumberPile
Can you elaborate on the desired effect though?
(Oops, feel free to ping me on reply; otherwise I might not see it!)
So the mod is already a Content Patcher pack, right? Can you save the content.json to smapi.io/json and post the link here?
I see, I see. Thank you for letting me know that.
Sure! Sorry, just didn't want to post a wall of text. Essentially I'm trying turn the wood shed functional, where it would start empty, have a chest interface on click for the tiles in this area:
Not important ATM but then I wanted to change the sprite based on the amount of wood stored
I think this is somewhat bad idea if you are going to do it unconditionally
Do you wish to lock it after casino unlock at least?
Yes, sorry, I should've clarified, this would be after the casino unlock
Hurray, the walls and floors are now able to be changed by the player
How do I put an already existing bed in the house that the player can move? Obv won't work if I just put it in Tiled
So what I'd do is
- Register a tile action to do the wood storage stuff (open item grab menu, handle global inventory), name this yourModId_theAction
- After casino quest is complete (and perhaps some further unlock conditions), edit Data/Buildings to replace the LumberPile action with your custom tile action
Alright, that certainly helps a lot, thanks! going to get back to work on it
Awesome, thanks again
that's certainly preferable, I know it's super obvious but C# in general is not my wheelhouse 
Eh if u used any oop language b4 it's simple to learn
If you haven't then there's definitely a curve but i believe in u
Will I have to use a specific framework for it?
@lucid iron so your mmap mod is making the Light tile on the paths layer function duing the day and not at night?
Oh yeah Kailey ran into this
Basically a quirk of the woods lighting mode is that all map lights turn off at night
FTM can spawn furniture I think
There is a workaround for this in mmap itself, you need to use a light with light context None
Oh cool, does furniture count as 'Large Objects'?
im not sure what that means light context with none
Im on me phone rn so give me a bit to write the tile data
no, Item > Furniture Category
mushymato.MMAP_Light 2 White 1 0 0 None
Large Objects are Stumps and the like
I think this is equivalent to path light except it's not considered a MapLight and becomes immune to woods lighting mode
Ah right ok. I'm just confused how to spawn in furniture with FTM then as it's not a forageable or large object
I'm not sure what to do about this in a general sense, do people want lights to go off at night under woods lighting?
I want the on at night
cause people cant see if they are off at night it gets too dark
Yeah but is this something I handle generically vs documenting what do instead of path light
The behavior is lifted from vanilla, putting path light in secret woods would behave the same
hmm interesting
I admit I never used FTM before so this is as far as I can go lol
https://github.com/Esca-MMC/FarmTypeManager/tree/3c87f19f77a4273015b2de868114a730eae8bd8e?tab=readme-ov-file#item-settings
This particular thing is a TileData (back layer or front layer) rather than map data so u still place them more or less
its just weird that the foreloadpathlayerlights dont work
Yeah I do need to write that down 
Thanks, this is helpful 
of course
Hello.. I'm not sure what I'm doing wrong here - https://smapi.io/json/none/87e0ffc2055d476893e1eff90429a845
[Content Patcher] Error loading patch 'ZayneLi > Maps': file contains fields which aren't allowed for a secondary file (Format)..
Format is only in content.json
if this is a file you're Including, remove the Format line
This is the mod and I'll send you the content.json now, as you requested.
https://www.nexusmods.com/stardewvalley/mods/29039
okie thank youu
Alright! The first step is adding the mod to the Central Station's ticket machines. Try adding this patch (anywhere in the Changes list is fine):
{
"Action": "EditData",
"Target": "Mods/Pathoschild.CentralStation/Stops",
"Entries": {
"{{ModId}}_NorthSunnyfield": {
"DisplayName": "North Sunnyfield",
"ToLocation": "novaphene.sunnymap_North",
"Network": "Bus",
"ToTile": { "X": 105, "Y": 80 }
}
}
},
Now if you walk to the bus stop and check the ticket machine, you should see an option for North Sunnyfield in theory. (You'll probably need to change the ToTile position, but we can do that once we have that part working.)
The mod has another folder named [BL] Sunnyfield Location. Will that cause any issues?
Nope. You won't need the Bus Locations version anymore, but it's fine to leave it there for now.
ok this is content,json from that folder https://smapi.io/json/content-patcher/66c790fe892e4ce8b2f222c53e33e2ea
Done
Yay, I got the bed to spawn 
If you want to match the same values:
{
"Action": "EditData",
"Target": "Mods/Pathoschild.CentralStation/Stops",
"Entries": {
"{{ModId}}_NorthSunnyfield": {
"DisplayName": "Sunnyfield",
"ToLocation": "novaphene.sunnymap_North",
"Cost": 500,
"Network": "Bus",
"ToTile": { "X": 76, "Y": 26 },
"ToFacingDirection": "left"
}
}
},
I'll check this, give me a minute.
Only issue is, they keep spawning when the first one is moved 
Does spacecore spawnables support furniture
Since those work via trigger actions you may mark as applied
Ah ok, never used Spacecore before but will look into it
I'm not making a mod but I need help with downloading one
Because I'm trying for almost 2 hours and one doesn't want to work
!mh
Thank i
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
Make a thread
I'm really confused:(
Don't know how I would spawn a bed as a one off. Is Spacecore the best way to do this?
Well I don't recall offhand how else to do it 
Actually i have an idea give the player an item when they first enter the location
By item I mean bed
No frameworks required for this
I was just gonna say, I could use FTM for that but how would you do it without?
Sorry for all the questions lol
Well additem and trigger locationchanged are both vanilla
You can do it once and only once
Awesome
Hmm good point
I just wanted there to be some place the player can sleep so a removable bed seemed like the best option
You can give them tent kits too
True, I forgot about those
I wanna do one of those little gift boxes you get when starting a new farm
i got another issue.. FileNotFoundException and it's looking for the xnb file of the custom house i created
SMAPI crashes
Can you upload your SMAPI log (see instructions on that page) and post the link here?
Ok so I can't seem to find a way to add a one time only gift box like the farmhouse does at the start of a save. Is this hardcoded?
yea very
Oop
(Adding items to the existing starter giftbox is easy though.)
FTM has support for spawning treasure boxes as well
Hmm okee, well the problem with FTM is that it will keep spawning. I was gonna set it to only spawn on Spring 1 Y1 but what if someone installs my mod midway through their save?
Nice! That's half the update done; next is just adding the ticket machine to Sunnyfield so you can get back. Do you already have Tiled installed?
Yep, it will allow conditions. Hmm that's a good idea
Yeah... but I’ve never actually used it, hahaha. I installed it because I want to make a small map to learn, but I’ve been busy with other parts of my mod and haven’t had time to study the program. Since I’m visually impaired, I just opened it to set it up in a way that I think will be useful for me to see, but I haven’t really tested it yet.
Central Station will handle most of it, you just need a small edit to the map file in Tiled. I can walk you through it if you're interested?
Ok let´s do it 😁
Alright! First:
- Launch Tiled.
- Click File > Open File or Project and open the
assets/Maps/North.tmxfile. - See if it loads correctly in Tiled. (If you see a bunch of red boxes and errors, we'll just need to add the tilesheets.)
@golden basin ok i got home n checked the decompile
The paths light is actually index 4, so the equivalent tile data lights are these:
Light:mushymato.MMAP_Light 1 White <light index> 0 0 Noneon the desired tile's TileData, Back or Front layer.- Path light:
mushymato.MMAP_Light 1 White 4 0 0 Noneon the desired tile's TileData, Back or Front layer.
The reason why not even forceLoadPathLayerLights works is because path light actually just modifies the Light map property and is thus subject to woods lighting
ok red = (
Yeah, you're just missing the tilesheets. Do you see a list of errors somewhere in that window (probably at the top)?
Yes, Files not found
Can you post a screenshot so we can see which ones you need?
Oh, you're just missing one then. So first you'll need to unpack your game's content files (it should take about 30-60 seconds to run), then copy Maps/spring_outdoorsTileSheet.ong into the mod's assets/Maps folder. Then close & reopen Tiled, and it should work this time.
😁 👍
(Is it working now, or you're still doing it?)
Working
It might be the Map.tmx file? I'm not sure what the destination looks like in-game where you arrive by bus.
(In scope for SMD, though)
(Although that one keeps getting pushed back by real life.)
I'm hoping for a June release. If not...
i believe in u atra
Great! One person believes in atra
I don't know either because I haven't played the mod yet. How could I help you check if that file is the correct one?
If you click "North Sunnyfield" at the bus stop (from this screenshot), where does it take you?
Let's find out, give me a minute, I'm going to the mod location.
Here
Yeah, that looks like the Map.tmx file. Let's try editing that one and see if it works.
When you open it, you'll get a lot more missing tilesheets to fix the same way as before. Make sure to keep note of which ones you added, since you'll need to delete them when you're done (to avoid issues when the update is released).
Actually, looks like there's a ticket machine a bit further down. So instead of editing the map file, we could just edit content.json to conditionally replace that placeholder machine with the Central Station machine if you want.
Ok, I see it now, hahaha.
Yeah, I think the best option is to replace it with the one from Central Station.
First, find the "LogName": "Sunnyfield Map" patch and change the MapPath field:
{
"LogName": "Sunnyfield Map",
"Action": "EditData",
"Target": "Data/Locations",
"Entries": {
"novaphene.sunnymap_Sunnyfield": {
"DisplayName": "Sunnyfield Map",
"ExcludeFromNpcPathFinding": false,
"CreateOnLoad": {
"MapPath": "Maps/{{ModId}}_Sunnyfield"
}
}
}
},
Then add these two patches:
{
"Action": "Load",
"Target": "Maps/{{ModId}}_Sunnyfield",
"FromFile": "assets/Maps/Map.tmx"
},
{
"Action": "EditMap",
"Target": "Maps/{{ModId}}_Sunnyfield",
"MapProperties": {
"Pathoschild.CentralStation_TicketMachine": "74 3 Bus"
}
}
And then go there in-game again, and in theory you should see the Central Station ticket machine now.
(You can also set that map property directly in Tiled instead, which will have the same effect; either way it'll only be applied when Central Station is installed.)
I wouldn't know how to do that. Could you wait for me 10 or 15 minutes?
Sure! If you want to use that approach, you can skip the content.json changes I posted above.
Pathos, would it be possible to make custom-movie testing easier in the future, as whilst I was making my own custom movie. I had numerous quirks that made it a bit of a pain to test, especially taking vanilla NPCs and testing their reactions, as I found the only reliable way to do it was exit to title and try again, otherwise the game counted me as seeing a film with someone and they simply don't watch it again for that week.
The movie theater logic is a bit of an untamed jungle. It got a tiny bit better in 1.6, but not sure it's something I'd want to touch unless we were adding something to it.
okey dokey
Must I change this "MapPath": "{{InternalAssetKey: assets/Maps/Map.tmx}}" for this "MapPath": "Maps/{{ModId}}_Sunnyfield"?
If you'll set the property in Tiled, nope; you can skip that part too.
Iirc you can set the day forward
I can't remember now, but I know I had some quirks with the debug movie npc I think I tried forwarding the day.. but it didn't seem to like it, it wanted me to sleep the full 7 days, and was just quicker to exit to title and go back in
after reach reaction
also have to leave the cinema after each test viewing to retest
My mod, movie theater options, might help with that since it allows for taking unlimited dates with npcs
If I make another film... I might try with that
Friends, I'm drawing a blank, does anyone special need to happen to add NPCs to the SVE or RSV festival maps? (the expanded vanilla festival maps, not any custom extra festivals added by those mods)
Or is it just picking coordinates according to their maps?
I mean I'm only handling vanilla festivals
But want the NPC to appear at that festival even if RSV or SVE is installed
(currently Satoru Gojo apparently just poofs away on the RSV flower dance?)
might have to patch late
also are you doing both y1 and y2? as if you're on "year 2" your y1 wont show up
yep
The coordinate doesn't seem to be taken up by anything, so I'm a little confused as to why users say he's disappearing during the RSV flower dance
Because I've got a Set-Up and MainEvent for both y1 and y2
try to append the patch late, incase it's SVE, alterting the festival after your edit
as I think SVE alters the whole set-up line
rather than appending it
interesting, that's likely it then
that sounds like what i remember from SVE, but i haven't checked in a while
Users have only mentioned RSV and not SVE, but I didn't see anything immediately that would break it in RSV
Odds are good they do have both though and just assumed it was an RSV issue
users will always assume
😛
yes SVE just changes the entire entry, so any changes you made before would get overridden
oof



