#making-mods-general
1 messages · Page 131 of 1
Hey all, I'm using the Spacecore framework for a mod making a custom dungeon and was wondering if there's any way to have certain maps or layouts appear at certain levels, similar to how in the base game you always encounter a room with an elevator at a 5 divisible floor or when you switch to a new theme and the floor is the one with the chest. I'm trying to see if I can replicate that. Also, if there is any way to affect the spawn rate or types for certain room layouts.
Quest solutions (from Data/Quest) are confusing me 
Best reccomendation would be looking at the in game code for the mines. The way they do it is by loading maps and different tilesheets depending on the mineLevel. If your custom dungeon has a stored int (levelCurrent) or something, then on warp you can change the map / tileSheet to customize things like theme, elevator appearance etc. For spawn rates you could check for the same levelCurrent or check the gameLocation's map for a conditional spawn multiplier. Just some ideas, I dont know the inside of your code so yk
idk i still cant get it to work, maybe another time when you have the time you can explain, if not its ok. thanks in advance
hey? sooo quick question? how do i make a furniture recolor into a standalone furniture mod? i see a ton of furniture recolors and it kills me inside that not all of em are configurable. i got permission to convert one of the many recolors into a standalone and i plan to do that sooner rather than later
https://stardewvalleywiki.com/Modding:Items#Furniture this might help?
thank you! i'll check it out
Is there any possible solution using content patcher and not C# coding, my mod is a content patcher one so I'd like to avoid having to use C# modding
Quests are still kinda hardcoded, but in case it helps, the solution's based on quest type:
- ItemDelivery:
<npc> <item ID> - LostItem:
<npc> <item ID> <location> <x> <y>(for where the lost item is) - Location:
<location> - Crafting, ItemHarvest:
<item ID> [amount?] - Social, Basic, Fishing: not used at all
Yoo is there a mod to play as npcs?
I'd guess probably not, but #modded-stardew would know
Playable Abigail is one of my favorites
.
neat, hadn't seen that, and I guess aedenthorn made a framework for it too
😮 thanky Esca, imma try dis
the spacecore documentation for it is just your best bet, but if it doesn't mention it as a possibility then there's not much you can do
ah ok, I already looked through spacecore docs and there isn't any mention of something like what I'm talking about, so I guess I'll find another way. Thanks for the help
Hi guys, I was wondering if anyone here know if we can do custom "flavored items" now after 1.6.9 update? I know that we can copy color to any produced items but can we copy the item name as well?
Look at cornucopia
cornucopia uses Extra Machine Configs. but can flavored items be achieved without it?
since 1.6.9, yes
WAG is a better example probably
since it now uses 1.6.9 features for flavor/color
WAG?
Okay, thank you very much for this info! I will check it out 
its not new
it's been done for years
is there a new method for "true" flavor that we should swap to?
ah yeah I got my wires crossed haha
Hi my favorite not a square number
what's supported in 1.6.9 is 1. actual copy color and 2. flavor inheriting in "higher-tier" artisan goods
Oh, like aged roe?
yes
Btw, hi my favorite sneezing cat!
anyway, just a minor correction, flavored goods have always been possible, 1.6.9 (and before that, Extra Machine Config) just fixes some annoyances with it
hi guys, I was wondering if there is any way to make an event script without any actors? or idk, maybe make the actor invisible?
Sure! Just spawn farmer off screen
what if the map is the farm? (the size depends on the type of farm the player selected)
Spawn them at -100,-100
alright, thank you very much!!
oh for some reason even if I have /farmer -100 -100 0 it still spawns the farmer in front of the farmhouse door 🤔
I think I might have bitten off more than I can chew with my project... I've only done maybe 20 or so pieces, and I'm already feeling overwhelmed. Not asking for any help or anything, just wanted to whine to a heopfully sympathetic and understanding group, cause anyone who doesn't work on mods would think I'm nuts xD
hm...how many growth stages has a mushroom tree... 
same as other trees I reckon
and those are?
i never paid attention to it and i am looking at the wildtrees.json but
1 (seed in the ground) to 5 (full grown)
The good thing is, I'm able to adjust and tweak little things, some of these tilesheets are from the very early modding days, and now there's more options for some of these amazing pieces of work (ofc, this slows me down a bit, but I'm looking forward to having them back in my game).
thanks
... huh, has maple and oak trees always shapeshifted in Winter and I've only noticed just now
the base/stump literally changes shape
As far as I know, yes.
wacky valley magic
They're just different sprites entirely.
I remember bushes being pretty weird about it in summer too
so to just to be clear: can i make custom flavored items with CP only?
yes
Okay great 😄
cant stop staring...
do non evergreen trees in the valley retract their roots during the winter to protect against the cold
I'd bet it was done to give the impression of the roots being covered by snow without needing snow texture on the tree sprite?
it's just to make it look like they're covered in snow maybe?
I have this exact problem with my big project I’ve made no progress on in ages
that makes infinitely more sense, but the fact the pine trees stump remains the same means they have their own internal heat generator
I feel your pain
(or their roots are just taller)
Skunk pines
It's Just A Game™
Drawing trees sucks away all my motivation
They’re just so big
For so little reward
I don't know, trees have a pretty big impact on the overall feel of a map. Depends on your definition of reward.
I feel like compared to just reusing vanilla trees
Maybe I haven’t gotten far enough to see the impact
But like, the vanilla trees are fine
Maybe I’ll try making more progress on crop sprites instead, but those also are so big I find them daunting
Give me a good 16x16 object sprite any day
Vanilla trees are fine, yes. If the requirement is just to have trees, that's good enough.
If your mod is about trees then it would probably justify some extra effort.
(Also, there are 48x48 and even 64x64 tilemaps out there, and 128x128 or even 256x256 pixel art for larger map features... although probably not in Stardew mods)
man, i do be loving adding new shit
what did i forget this time lol
AHA
yet again, my old enemy, the bracket
i love map making
Can someone help me with fixing the JSON files for my hairstyles mod? Updating SV past 1.6.8 breaks it and I don't understand why.
Here's the JSON files that don't seem to work anymore:
!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.
pls use the json validator
Yeah you can do that by having specific data for those levels. Like, in your "Regions" entries, you'd want to set level ranges for the specific levels to have specific maps
It only complains about the format field's value for the content.json file as it's not the latest version. The rest is fine.
yeah but people tend to not look at your code if you dont link it from the validator
I don't know how to link from the validator.
just the url
Changing the value to the latest version of Content Patcher doesn't fix it either.
It's showing vanilla hairstyles instead of my replacements in-game.
hm, i havent really done hair before 🤔 your fromfile is right tho? including capitalization
Yes, because it works like a charm in Stardew 1.6.8.
I have no explanation for why it breaks when I update the game when it has been more than fine before.
i sadly dont know much bout hair so i can only suggest the basic attemps for every mod testing, like...have you tried it on a new save etc
i dont see a specific mention bout hair changing on the 1.6.9 migration page at least
In order to do that without having duplicate object keys, I create a secondary to main with the level ranges and map pools right? or is there something more semantic that I'm missing
Somehow it worked itself out and I don't know why.
That looks correct 
It'll be kinda tedious but you'll need a region per contiguous level range. So one for 1-4, then one at 5, then one for 6-9, then one for 10, etc.
ah so like a whole new
"main": {
"level range": {
blah blah blah
}
}
hi casey! I figured out the issue with some more help in the end, i forgot to define the spawngroup cough but i didnt wanna ping you again saying it was solved asdfgh
As for the spawn rates for different rooms, you use multiple regions for that too. So you'd set the spawning data for each region's specific stuff.
You can have multiple regions with the same level range and it'll randomly pick one for that level from every region in that level range, based on the weight in the MapPool entries. So you could have two different regions with LevelRange 1-4, and those two different regions each have different things to spawn
Ah, okay.
let me know tho if you prefer getting pinged when the issue got solved before you happen to pop up(since there's quite a few people in this server who prefer no ping so i tend to be careful to not annoy)
You can also edit the initial message to say you solved it
oh right! I actually didnt think bout that, will do in the future 
Ok I think that might've worked, thanks a lot for the help man I really appreciate it.
Hey all, I'm throwing up my hands and coming in for help, how is everyone's day going?
i fought with a bracket again, then spawned error trees on my map, so the usual
So I'm adding a new type of barn animal to the game - livestock guardian dogs. I've created a bunch of different skins, and coded it so that they dig up truffles just like pigs do. Generally I've gotten it to work, except for the skins.
SMAPI says this when you select a dog: [game] Constructed farm animal type 'Pyrenes, black' which has no entry in Data/FarmAnimals.
Pyrenes, black, is just one of the skin options
this is the content.json :https://smapi.io/json/content-patcher/f286e9695d7c4fa8ae22c613a4e69e48
any advice is highly appreciated!
alternate purchase types are for different animals entirely, not skins. like how brown chickens and white chickens are different animals, each with their own unique drops
Ahhhhh
Since you already added the skins, just remove that field and it should work
also side note, why are you adding skins separately with TargetField instead of just putting them in the main entry
That explains why the default dog works fine, it's the one actually coded in
because I used another barn animal mod as a template, and actually am super nervous about coding
thank you! I will report back
p.s. here's a preview of the dogs
back to square one, where the default dog works but not the extra skin colors, but I can work with that. Thank you!
Aww cute doggies
you seem to have a config option that's ensuring only one skin gets added at a time
okay, I switched that and am going to give it another try
you might need contains yeah
actually someone more proficient in CP pls confirm that if you have a config that can have multiple values whether you need to use |contains or direct comparison would still work
Now getting this error:
[game] Farm animal 'LGD' failed to load texture path 'Animals/CC.LGD_pyrenes_blonde, pyrenes_black, heeler_blonde, heeler_blue, shepherd_blonde, shepherd_brown, mutt_blonde, mutt_brown, aussie_blonde, aussie_black, aussie_blue, bordercollie_blonde, bordercollie_black, bordercollie_blue': asset doesn't exist. Defaulting to error texture.
I'm obviously more of a pixel artist than a coder, I am a bit in over my head
current state of the json: https://smapi.io/json/content-patcher/e91a1f4827204a1bb7db0dacaa729a224
Shouldn't the texture be the target for "load"
Is there a reason why you're using a config to only pick one skin, rather than enabling them all as options?
I thought it might be nice for people to be able to choose what puppies they're getting
but maybe it's better to have it all enabled
Ignore my Breeds comment, I was thinking about Pets
anyone know where the specific addwarps stuff is on the wiki, i feel like i am blind...I wanna know if i really gotta add, like, 8 warps jsut so all of this blank space will warp to the other map
I'm confused about Animals/ModId}}_{{LGD Skins}} being used by default if you're just gonna change it via the configs anyway, wouldn't it be simpler to make it whatever your default value is instead of the token?
Or try to randomize it by default, if that's your choice?
I would love for it to be randomaized by default. I think that's where I have no idea what I'm doing
the immediate issue breaking your mod is that your texture path in the skin IDs are wrong
you loaded them into Animals/{{ModId}}_heeler_blue, so you should use that in the Texture field, not assets/heeler_blue
as mentioned earlier, your When conditions are probably also wrong? your config can have multiple skins enabled, so if you have say heeler_blue and mutt_blonde enabled the config would be "heeler_blue, mutt_blonde", and "LGD Skins": "heeler_blue" would not be true
Yes you do gotta add 8 warps here
A solution is to draw more map and make the exit taper off a bit
dangit
would this look fine as an alternative
so i jsut have to add 5 lol
Oh but remember to make all the tiles behind not passable
well i mean noclip goes past anything so nothing i can do there anyway lmao
uhh
It's cus ftm will put forage there
I have seen this in RSV
i jsut spawn forage via spacecore and cp
maybe i should jsut do a 1 tile void frame around afterall
Yup, good ol rsv impossible forage
hm
what if I make it like this and put the bottom tiles and non passable or something
how do i even make it non passable besides putting it on building layer
TileProp Passable on back layer
What's going on here? json [game] Event '14635299' has command 'faceDirection Annetta 2 continue' which couldn't be parsed: optional index 3 (bool continueImmediate) has value 'continue', which can't be parsed as a boolean. [game] Event '14635299' has command 'faceDirection Annetta 0 continue' which couldn't be parsed: optional index 3 (bool continueImmediate) has value 'continue', which can't be parsed as a boolean.
where do i...put that passable exactly...i thought directly on the tilesheet..
TileData
you can also use invisible tiles on the Building layer if you wanted to block it that way. xD
I did building layer before but i thought the passable thing would be like...better or something
It's the same thing
The reason why I did it is cus I had lots of ocean too
Even the base game makes use of mostly hidden tiles for blocking, if you have leaves or something, there's always a bottom trunk on the Buildings layer that you just don't see since the leaves are on Front or AlwaysFront
And I didn't feel like finding all the tile to mark as water
For your case u can probably just ctrl c the back layer ctrl p on building
oh yeah i susally do the building layer thing, i jsut thought the passable one was, like, different or somethingg
ruh roh
i uh, just encountered another problem that is unrelated
i crashed the entire game 
huh
its my lights
Light crimes?
smapi yells at me that i did the index wrong or something
Light crimes
[23:54:58 ERROR game] Can't parse map property 'Light' with value '11 12 4 11 20 4 13 23 4 15 33 4 36 49 434 37 4 24 9 4 28 13 4 34 17 4 40 21 4 44 25 4 24 25 4 28 21 4 40 13 4 44 9 4 45 32 4 63 32 4 77 38 4 79 38 4 55 28 4 58 20 4 54 15 4 58 10 4 68 14 4 63 22 4 63 28 4 79 12 4 77 21 4 77 5 4' in location 'VoidWitchCult.CP.TheFishmongerNPC_LostIsland_Orchard': required index 86 (int textureIndex) not found (list has indexes 0 through 85).
I'm wondering if it somehow reduced 434 down to 86
maybe i will try again with it fixed
i believe it's because each value needs a set
like position type whatever whatever
and you have one set with only 3 value instead of 4
11 12 4 11 20 4 13 23 4 15 33 4 36 49 434 this 434 for ex looks suspicious
hm i fixed it but i still crash i just gonna slap the entire log in here with the wall of red
😔
Log Info: SMAPI 4.1.8 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Pro, with 19 C# mods and 20 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I need to do my daily practice today but have no idea what to do, what is a simple project that a total newbie could do for practice?
I already did that, any other ideas?
Adding cooking recipes
What do mean practice
dialogue, crop, what do you need a daily practice for?
Yeah, im a bit confused on that too
Like practice art or what
if the config is a list of things separated by a comma i imagine that example would be true, because itd be the same line of reasoning that makes "HasProfession": "Blacksmith, Gemologist" work as an OR. that said, ive never tried
I want to make a big stardew mod eventually, but my skills are not onpar, so I am trying to practice daily my modding skills inorder to brave what I eventually want to do
i got no clue what i did wrong this time around, i never understand the null reference stuff in the logg
I wouldn't really say "daily practice" is necessary though?
not all in active developpement but yes more or less that
i can't wait to see how many years my project takes lol
Here is the thing documentation just kind of confuses me when I read it without putting it to practice
i would say that i wouldn't start with a project as big as VMV as the goal BUT
If you know what you want to do as the big mod, work away at it! Even if your new, you can learn as you go (as chu just said). If you dont know what you wanna do yet, maybe play around with a random framework or content patcher mod to start
Well you can start with a small portion of the mod, and test as you go
What is VNV?
If you want small mods tho take a look at mod ideas
!vmv
Visit Mount Vapius (https://www.nexusmods.com/stardewvalley/mods/9600) is an expansion mod that adds a new region in the mountains. Accessible by train, you'll enter the hamlet of Glimsap, with its tight-knit group of villagers, that holds a market twice a week. You'll get to explore new places, fight monsters, get new crops and forage, trade local coins for exclusive goods, and complete tasks to unlock special items, including machines, buildings, and animals.
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
But I think having something completed helps motivation
- learn to read a log and use the json parser. You know how to do that? then you are pretty much good to go on most CP stuff
- have reasonable sized goals (ex : adding your area with a small shop for ex)
Oh found one that looks easy enough! Thanks yall gonna make this one
Dried Red Mushrooms #1277
VMV is my mod, an expansion adding a lot of various stuff using mainly content patcher (i can't code, atra made the code part)
Im gonna commit as many crimes against CP as I can
(Same all I do is in content patcher or any other contnet framework)
Content Patcher is pog. It lets many folks (me included) create things without needing to know c#, etc.

(P.s: Hi. It's been a while, mod chat.)
*I technically do know some c# but hate with a passion *
damn, i am still clueless what is up with my lights...
oh my god i found another typo ugh
i fixed it finally
what a mood 
i came for help but damn this is gorgeoussss
thank you 
lol ofc<3
mood lighting makes the dream work
okay so i require the help. I can't figure out how to content patch object names from sde specifically. I can't seem to figure out how to target the i18n/default.json file where they've got their item names or if theres a different way i should be doing this. Either way despite the 50 different ways i've tired this i get bupkis. This was kinda where i last landed with it.
`{
"Action": "EditData",
"Target": "Mods/FlashShifter.StardewValleyExpandedCP/default.json",
"Entries": {
"object.golden-goose-egg.name": "Lucky Egg",
},
},`
you cannot target another mods files like that. you need to edit the object itself to change its displayname to use your own i18n
presumably this object is being added to Data/Objects, which is where you want to target, and edit it like you would any other item, just make sure your patch runs after SVE
so i actually have tried targeting it like a standard item too and gotten no response that way either and i'm not sure why.
well, that is the way you need to do it, so it will have been some other error. possibly a patch priority error i.e. it didnt run after SVE but instead before it. we'd need to see what your code was
Probably an issue of running your code before SVE's, would be my guess unless you considered that
Remember to spawn new item after changing data
because you're not using the sve item id
you really don't have to draw trees - it's fine to play around with other stuff until you feel like digging back into something that's being an obstacle. i'm drawing tables and silly decor instead of the shrubs and bushes i started last week. it's fine
like it's still relatively net zero progress in the end but it's fun at least lol
so i've been working on a large content patcher mod that patches plenty of other sve things for the last couple months now and i've not had an issue with priority so i'm guessing i do have it set properly? But i did forget to spawn a new item. I will give that a try here.
changes the name of an sve item. You have to find the actual sve object id though, not whatever you have now
a saint, tysm!
There are some cases where displayname is overriden and applied into the item (so you have to trash and respawn it), but i dont think this is one of those case
SDV modding, SDV modding, please never change
it work yay.*+ Thanks again for all the help!<3
I know right. I've noticed CA reuses leaf clumps, which is really what you have to master. But I draw the leaves individually anyways
Thats great!
I still need to finalize what the crane game tree prizes look like when rotated
The leaves are a struggle for me to figure out
They don't have rotated sprites, roku did make it so the crane game can be used outside of the theatre though
I didn't ask for anything with rotating the objects via code
tbh, I didn't realize that was a thing, and I'd be worried about how they would look anyway
The draw method takes rotation in radians as well as horizontal/vertical flip
It'd probably look better via draw because game's at 4x scale
So you get "subpixels" kinda
drew 1 tree, realised like clothes i don't want to do that again
@next plaza
Got a couple SC bugs to report
- In certain situations with SC guidebooks if mouse is positioned right it is possible to get two tooltips displaying simultaneously (First pic)
- Being unable to close the SC equipment menu if you're holding an item and have a full inventory as shown in the attached video.
Replication steps are as follows: either have nothing that goes in a certain equipment slot in your inventory, or already have something in the equipment slot. Have a full inventory and an item on the ground waiting to be picked up, open the equipment slot and grab any item, you should then pick up the ground item and end up with a full inventory and nowhere to put the held item without switching it with another item in your inventory/equipment slots. - I'm pretty sure this one is already known, but recipe descriptions break/show item name instead of description when altered using the SC CraftingRecipeOverride and CookingRecipeOverride features (last pic), just wanted to check if there's any chance for a fix soon for this one
what? clothes are a lot of fun to draw 👗
I'm so old I don't want to draw anything not for work anymore
Pants tho
shirts are fun and relaxing to draw. hats are alright too
I'm gonna draw pants
My Internet went out 😞 i surrender myself to the pants while i can
chewy weedses...
Yeah we had to add a specific fix for crops with plural names
this used to not have Weeds b4 i changed to item tooltips 
i wish there was like, ITEM_ID_REGEX
The English language is defined as one that makes programmers insane
I have a question i hope yall can help with.
I have walk of life and machine progression system. I'm trying to integrate the machines from MPS to WoL. I'm copying the code over for each machine. However, MPS machine lines doesn't have (BC) in front of them. Do i need to add the (BC) or do I not add it?
Sorry for the bad picture.
screenshot is your friend
this is a problem with MPS though, it should have (BC)
I'm trying to figure out how to move that over.
Kk thanks ill add the BC manually.
unless i misunderstood you and you are copying out of the bigcraftables page
no BC in there cus all things in bigcraftables is BC
I'm copying from the MPS page to add into the walk of life file
And i assumed i needed to add BC because walk of life said to copy the string with BC but MPS said these are the IDs you need and none said BC so I was a bit unsure
has an explanation
tl;dr they are both correct, but one is more correct than the other
and in this case WoL expects the more correct version
Ok that makes sense. I assumed that to be the case. Thanks for confirming!
selph u dont patch PurchaseAnimalsMenu in EAC right
hey Selph, should I try to convert my Laundry Machine furniture experiment to the Furniture Machine alpha? Instead of using Extra Machine Config like I had before.
Haies
nope, feel free to patch the hell out of it
i yeeted it
please leave some hell in it for the rest of us to try later
the better crafting strat
you shouldnt need to do anything if you want the "produce every day" effect that you achieved earlier
and you still need EMC for the holder item
Yes, but I should use Furniture Machine also if I want working effects?
yeah I guess that works
I just want the animation I made yesterday in there somehow, LOL
Laundry machine goes round and around: #making-mods-art message
Hah and I just realized my mod can be used for furniture animations
heck you dont even need machine rules, just set it to produce output after 9999 days and reset it every day
though FF is still better overall
Yeah, I just don't want to have to rewrite a bunch of stuff
but isnt your laundry machine 1x1
ah yeah it is, you can just make it a BC if it's only 1 tile
I have two variants, one is a 2 tiles tall and 1 tile wide, and the other is 2 tiles tall and 2 tiles wide.
It is not a 1 tile
1 tile foot print i mean
yea then u can use the furniture funtimes for the 2 tile footprint one
I explained that I didn't want it to be a BC last time I talked about implementing the laundry machine, but thank you for the input. ❤️
say what is behavior when the furniture doesnt render the hold item
it still works right
i look forward to making a table that produce itself every morning
hmm I should add the ability to disable the ready bubble, or fix that
yeah, the funny part is I copied this from vanilla code 100% intact so it's a vanilla bug lmao
oh i guess theres no machine that spits out furniture in vanilla
there's no furniture used for crafting in vanilla 
spacecore currency is backed by an item right
how can i know an item is a spacecore currency 
hmm, animation's not happening for WorkingEffects, I probably did something wrong somehow.
I changed the chance to 1, so it should be fairly consistent
public List<string> GetVirtualCurrencyList(); in the SC API
post your code?
actually, do you have both LoadEffects and WorkingEffects set to the same animation
I think you need both for a persistent animation
feel free to peruse my own test code for the pain table: https://smapi.io/json/content-patcher/34e7d1bbd8db4011bdd6ec48633192f5
ah, I only have WorkingEffects set, let me duplicate that real quick for LoadEffects
nope, still no good. Let me get that code into the JSON parser so I can share it
another possible cause is that you didn't change the rule to work on output collection
so the machine's remaining inert until the next day
yeah post the code haha
https://smapi.io/json/content-patcher/6cd3f4eb50864da5a1d9692312373447
I definitely didn't change the rule
gonna try that now, it's the Trigger, right?
yep, you need to change the Trigger to "MachinePutDown, OutputCollected"
and set DaysUntilReady to 1
fuck, typo
mechanically this is identical to "DayUpdate" with no DaysUntilReady set, but with the effect of the machine continuing to work and running the animation
still nothing
lemme test myself
I forgot to explain — Hay -> Haies
I have one more idea to try
A particularly bad plural
nope
hmm yeah doesn't work on my end either actually
My idea didn't work
If you want, I can DM you the zip of my mod attempt so you can test against it?
in case I really messed up somewhere that's hard to see from just the content file. >_>
if you want to, but that's not needed since I can reproduce with my own test
ok
...this always returns 1 doesn't it?
Or can it choose a number that causes it to round up to 2?
PaceCore
It should according to the desc. Only way to know for sure is to check the decomp.
I pulled it directly from the decompile, just trying to figure out why I'm getting 3 when I should only be getting 2
I think it's a separate issue though, something about how I'm adding shit to this inventory is wrong

@latent mauve try the new version, it should fix the drop down rules not working: https://github.com/zombifier/My_Stardew_Mods/releases/
How are the non-choppable but paths-added trees in the town handled? Is there C# code behind them? Someone has requested that I do the ES trees similarly to "bring the map on par with vanilla".
(I can likely add my specialist atra-added code but I was just curious!)
is that a feature 
hardcoded to the StardewValley.Locations.Town location type
i thought it was bespoke C# stuff
okay cool, I'll try and use atra's
that seems to be a global settings for a tree type
I think itwas added to my C# then Meep added it as well.
ah hm thats awkward to use then 
so you can't set maple/pine/oak trees to be invuln only in your location
oh the code I have I think only affects the tree on that tile
so does that mean theres 2 separate "no chop me trees" code by atra in my mod list (vmv and es)
hopefully it works on maple/pine/oak the same as fruit trees?
probably
let me test it on planted trees
if I have a penny for a full town expansion with a C# component written in part by atra, I'd have 2 pennies
Still no animation, but the machine where I changed the trigger is showing the output one day before it's available?
RSV
ok let me look through the file you DM'ed
atra not on sve github but it doesnt seem like ppl actually PR to that
or uh, merge PR from there i mean
okay yeh looks like atra's only affects fruit trees. Time to try MEEPS
nah it's only on the type of tree. I'm just going to leave it. Maybe I"ll just make all the trees choppable and people can deforest East Scarp if they choose.
What would a C# component be used for? (Just asking I have no idea about C# or its uses in modding)
(player wanted them to blow in the wind)
I really don't know why I'm getting the wrong numbers in this inventory, all my logging returns exactly the numbers I expect
@latent mauve so your files have a few problems:
- The short machine is still set to the old
DayUpdaterules withDaysUntilReadynot set instead of the new trigger rules with"DaysUntilReady": 1. The large one is correct, but... - Your animation uses (a misspelled)
TemporarySprites, which is not reliable and only recommended for intermittent effects (like bubbles, etc.). You should use Frames and interval underLoadEffectsandWorkingEffectsdirectly
now with EastScarpe.TreeCut, same rules as previous
which reminds me, I need to special case moss for Lumi too
oh atra, you are amazing 🙂 Now we can have moss!
(and I have to re-edit so many trees, lol)
nah, you don't have to, lol
well true, I don't have to for one person, but... I might!
Is there a big list of all the big frameworks for content?
I used TemporarySprites because the Texture needed to be different (animation is not on the same sheet as the base machine), how does that get handled?
how many does "Town" actually add?
actually, quick reconsider (I had the moss exception on the outside of everything)
I know the short one wasn't updated yet, I was trying both options to see if either worked, and was gonna swap them both to match as soon as one worked. 🙂
there's so many great frameworks these days!
you can also just ask about a specific thing and probably be pointed to the right location
I'm 25% sure someone managed to get TemporarySprites working reliably for different machine frames (Kedi?), but not me. Only direct frames work, and they have to be on the same sheet as the machine's initial frames
anyways, it's past an atra's bedtime
so yeah you have to move your furniture's frames to the animation sprite you split out
Alright, in that case, I'll need to redo the spritesheet.
feel free to ask me for code any time; I might not be able to get to it quickly, but 
(scrolled a few months back to the thread, I don't think Kedi got it working either and ended up just using traditional frames? either way I really don't want to be TAS' next victim so
)
Do any of the issues you pointed out explain why the output item is suddenly visible early?
ah yeah, forgot about that
you need to add dont_draw_held_object_while_processing to the context tags list
ok
add it next to furniture_machine with a space between
now I just need to figure out why animation is going crazy
The first frame (the one I don't want used when animated) is bouncing one tile higher for some reason
can I i18n-ify mail
Yup
oh ok that totally saves me all the trouble. nice
Not at my computer atm, power is out in my town, but definitely would have given you some examples you could use
Wait I do have github in my phone maybe I can access my mod files real quick
you should do it like: "{{i18n:mail-text}}%item .. %%[#]{{i18n:mail-title}}
Actually you can put the item you want to give into the i18n also
"Reyla.plushie_title": "Plushie Time",```
yea but u dont want people to mess that up
Be a problem if they translate that
the purpose is to separate logic from data
Ah, I see may need to fix that then in my mod
why'd i think to add so much dang mail
scope creep
I think u should add less mail 
I dunno if this is everyone's experience but my brain auto skips mail now
Yeah... I had to make a concerted effort to read the mail from Lumi's mod
Otoh I always read ppl's daily dialog, as long as I talked to em
Prob cus that's an intentional act
I use mail only for the flags it set
I am having trouble making sense of the wiki specifically with the special orders mail data! The boolean option don't make sense to me because I used true and for some reason they said it sent the mail as null.....
"Type": "Mail",
"Data": {
"MailReceived": "Name of mail flag", // string
"NoLetter": "true/false", // boolean??
"Host": "true/false" // boolean
}
but I didn't want it to be sent just set the mail flag so is it true or am I supposed to set to false if I don't want the mail to show...
so ```json
"NoLetter": "true"
then it says that it's true by default
Seems like that's what it's supposed to do
But then why does it show up still? Is it some mod?
@rancid musk the version I imagined would simply generate a ApplyHarmonyPatches method in the partial class that calls harmony.Patch(...) for you
@calm nebula: add trade item ids to the gsq check (14d ago)
@calm nebula: actually try learning a katseye dance (14d ago)
[PatcherClass]
public partial class MyPatches
{
[PatchPrefix("original", "priority")]
public static bool MyPrefix(...){}
}
I mean yeah it would generate a method on a class you would call. But where does the method go? On ModEntry? On a new made up class? On each individual class with harmony stuff? But what if the whole class is a [HarmonyPatch]?
There's a lot of ways you can do things.
I prefer having a static class that's the game patcher
question about rain / rain2 schedules: if somebody's 'rain2' schedule applies (as opposed to rain), will it be the same for everyone else? wondering about coordinating two schedules.
But ig u don't have to
But you get the point of why it's more complex to implement.
Yep
like is it random for each person or random for everyone together
That said I dislike the way patchall currently works with how u gotta sort patches into classes
Cus I like to organize in terms of "these patches combined achieves X"
It is big reason why I do manual patching, more so than any perf
(I mean I don't think you have to?)
You can jam cram all those bad boys in ModEntry if you wanted
slaps public class ModEntry : Mod
This bad boy can fit so much the entire mod even when it should really be split up into multiple files way past any point of sanity
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Delegate | AttributeTargets.Method, AllowMultiple = true)]
public class HarmonyPatch : HarmonyAttribute { ... }
Oh interest, I guess it's just that this is the form introduced first in the docs so most ppl do it 
I suppose it could also aim to be a drop in replacement for patchall
You annotate it all the same way but u call the GeneratedPatchAll(harmony) instead
Nah, need custom attributes to avoid them sticking around at runtime and confusing anything.
At least there should be custom attributes for that.
Then keep it similar enough that someone hoping to change can just sed their repo 
But again the premise here is "the design of the harmony attributes are ideal"
Ppl may or may not agree
Random for each person
I mean lime
What do you do if a patch fakls
What do you do if you get il error
What do you do if you want a conditional patch
[HarmonyPatchIfModLoaded()]?
[HarmonyPatchIfConfigSaysSo]
Well the second one is sinful
Something else I'd like for, say... ```csharp
[BlahBlahHarmonyStuff(typeof(SomeTarget), nameof(SomeTarget.SomeMethod))]
public static partial class HeyAPatch {
private static ModEntry? Instance;
private static IMonitor? Monitor;
public static Prefix(...) { ... }
}to generate something likecsharp
public static partial class HeyAPatch {
public static void Patch(ModEntry instance) {
Instance = instance; // because a ModEntry container is defined
Monitor = instance.Monitor; // because a Monitor container is defined
// now actually do whatever patching
}
}```
[HarmonyPatchIfAprilFirst]
The If Verbose thing is an actual thing I did btw
Some harmony patches that added extra logging or extra logging metadata would only get applied
Sounds like a need for a mode where it generates Patch / Unpatch methods per-class and you can call them manually.
I think the source gen shouldn't do any sdv specific things
Ofc I just did bool Prepare() => ModEntry.ModMonitor.IsVerbose lol
ie should just accept an Harmony instance
I mean it would be part of my Stardew-oriented source generator
The Harmony stuff could probably be split off easily enough, but Stardew is already implied
Don't use harmony to mod ffixxix?
Yeah it's fairly common for modding right 
Although there's the other thing HarmonyX, no idea about the nuances here
FFXIV doesn't have Harmony. It has much worse nonsense. 🙂
Oh god
There's this package called client structs that just... defines structs for the game's memory layout. There's unsafe stuff abound.
Somehow it all works without exploding
It's about trust huh
Speaking of the stardew oriented generator do u want to implement registering item queries and tile actions 
Triggers too ig
Yeah ideally every kind of delegate should be decoratable
Thar seems cool 
An example of my vague plan that I only posted in #programmers-off-topic: https://gist.github.com/KhloeLeclair/bdd6c3ec820b0302eaeab3a891bf459c
Just... use attributes on methods and it generates methods for registering them for you.
😔 and another event done... back hurt
wow surpringly, the dialoge is only half the struggle
putting in all those event commands is tedious.
Event scripts in Stardew remind me of my RPG Maker days
everytime we start/reload the game, do we need to reapply the harmony patches?
One of the patches i did was applied on day 1 morning only.
after exiting and opening the game it doesnt seem to be active anymore which kinda makes sense
but just wanted to confirm
Depends entirely on where you're applying them from
And if you created any other conditions for them to apply
Typically, you apply them from Entry, so they apply every time you launch the game
the patch isnt triggered on every modEntry, but only on the OnDayStarted of spring 1, so if i progress till day 2, save, exit, reopen, then the patch's effect isnt active anymore
which makes sense
Well, if that's how you designed it. What's the problem?
mods usually apply their patches at all times, and only introduce conditions in said patches
confirming any poosiblity if the patches are permanent in nature or not
thanks
like if they persist forever
they don't
it's just that most mods just apply their patches when starting up, unconditionally
I have a mod that applies patches conditionally. It is the same mod that applies patches based on data files. I am a menace to society. 🙂
Hi, Is there a weapon mode with bows, crossbows, grenade launcher, etc?
#modded-stardew is a better place to ask, this channel is for creating mods
the game doesn't support windows in sizes other than 1x2, does it?
all window entries in the data file use -1 for sprite and tile size
i suppose this could be a painting instead
you can add bigger windows, and it will work; the light will just only come from the left
Furniture Framework might have something for that?
hey you're not the usual sales pitch guy
my other occupation is being the person with approximate knowledge of SDV frameworks
Is there some way to get the Vector2 position of a Tile? Any xTile documentation would be great lmao
Truly chaotic
oaves and lazes, one and all
ohhh if i make the window a painting it won't turn off at night. what a drag
Could possibly fake it with a timed conditional patch
Hello, where i can ask about mod SpaceCore error on android SMAPI 4.1.7?
should i ask in #1272025932932055121?
since you're the one working on the Android SMAPI, i think it would be this channel actually, not the tech support one
Pretty unlikely you'll find any particular help with Android, I assumed you would be the person to ask since you're working on it lol
Ok, my question is how can i fix SpaceCore patch "Transpiler" error?
https://smapi.io/log/058b30794d024e1090ff639bc333c2e3
Log Info: SMAPI 4.1.7.7 with SDV 1.6.14.10 build 24340 on Android Unix 33.0.0.0, with 8 C# mods and 3 content packs.
a hundred line manual transpiler... yeah, i'm not reading that, and especially not in the context of the Android version of the game, which i don't even have the source code or the IL for
Oh ok
You'd have to look through the Android version of the decompile for the IL and figure out what part of the transpiler is wrong
There's no real simple fix for transpiler issues
yeah. i assume the patched method is different enough between the PC and Android versions
which makes the transpiler fail
Worst case scenario, probably just have to write all your own transpilers for Android
Ok, i will try to fix it, thanks you all
i use dotPeak & feature compare between 2 Stardew Valley.dll PC & Android
it be same
is the IL the same though?
Oh IL Code, one sec..
it may decompile to the same code, but may be different IL
there's more than one way to do things in IL, it could be a different compiler
hey, if I don't have mod author role yet and I want to post a mod in #mod-showcase , can I just ask another person with this role to publish it there? 😅
fact: 3x3 windows are not very doable for some reason
It's way up there
3x3 sprite + 3x3 tile = can't place on wall, 3x2 tile = it's way up there
Yep, just kindly link your mod and the description you want included 
public virtual bool isGroundFurniture()
{
if (furniture_type.Value != 13 && furniture_type.Value != 6 && furniture_type.Value != 17)
{
return furniture_type.Value != 13;
}
return false;
}
what incredible decompile fluff
int tiles_high_to_check = getTilesHigh();
if (furniture_type.Value == 6 && tiles_high_to_check > 2)
{
tiles_high_to_check = 2;
}
incredibly rude & targeted code
hoii, not my mod, im using starblue valley but the mod is only compatible for 1.5, it kinda works on 1.6 but there are some rectangle spots here that i guess werent for 1.6 :') is there anyway i can just custom fix this?
sure, you can try your hand at fillbucketing the Maps/spring_outdoorTileSheet_extra tilesheet (for each of the four seasons) and including a new patch in the starblue content file if you have the decompiled game files handy
Hello! Does anyone know if it is possible to make a mod with music for winter evenings? I dont like THE SILENCE
I know how to replase vanilla music with content patcher, but I am not sure how to ADD new...
i'm not sure if that's doable with pure CP, music behaviours are fairly hardcoded
Hmmm maybe there are some tools
I am trying to find something similar, but nothing yet
sometimes u get hit with the true bewilderment of RemoveRange not being able to remove a range (i..j)
sorry, I was in (an interesting) class, didn't see your potential FF use
furniture framework simply doesn't allow for 3x3 tile windows to be placed on walls, and it most certainly doesn't centre lights in multiple-tile-wide windows 😌
did you ask me? Because you can do a 2x3 tiles window, and offset the sprite to be at the height you want, and you can place the light wherever you want...
so yes, you can
alas, i failed to ask and instead wrote a transpiler that swaps out the 6 check with a call to !isGroundFurniture
how have you already covered this edge case lol
not a bad idea either tbh, the FF solution is kind of a workaround for the check
it's covered cuz you can customize basically anything in how the Furniture is rendered
Hello, I know that not many people may know but is there a mod that is similar to underground secrets redux? The mod says that it is updated for 1.6 but it doesnt look like it has worked since 1.6.5
sounds like a https://discord.com/channels/137344473976799233/933546639669493791 question
This is a dumb question, but: how do we open a .dll file to see what's written inside?
I ask because I want to look at what's happening from the Disable Joystick Chat found here: https://www.nexusmods.com/stardewvalley/mods/28808
My controller is behaving very strangely in game. I know it's not the fault of this mod (probably), but I still want to get a look at what is written. The mod author said it's only 3 lines of code, so it shouldn't be doing much.
typically you'd head to https://mods.smapi.io and enable show advanced info and options to find the source code for a given mod, but since this mod has no source available you'll want to download ILSpy and target the DLL
Ok! I'm in the middle of trying "dotPeek"
will that work? I found it through searching here in previous chats (some very old)
possibly, but ilspy has been specifically updated in the past to better decompile SDV and SDV mods
it's the standard around here
ok, switching to that
Anyone here have an idea of what could make a vanilla furniture item go missing from the catalogue? I know it's not my mod because it's just an AT pack but I have a user who cannot access some of my rugs because the Large Red Rug has vanished from the catalogue
If I see something like this:
{
public override void Entry(IModHelper helper)
{
((Mod)this).Helper.Events.Input.ButtonPressed += OnButtonPressed;
}
private void OnButtonPressed(object? sender, ButtonPressedEventArgs e)
{
// IL_0010: Unknown result type (might be due to invalid IL or missing references)
// IL_001a: Invalid comparison between Unknown and I4
// IL_002c: Unknown result type (might be due to invalid IL or missing references)
if (Context.IsWorldReady && (int)e.Button == 2128)
{
((Mod)this).Helper.Input.Suppress(e.Button);
}
}
}```
How do I know what buttons correspond with what on the controller? I am guessing `2128` corresponds with R3 (right joy stick click).
probably here: https://github.com/Pathoschild/SMAPI/blob/develop/src/SMAPI/SButton.cs#L82
where ControllerOffset == 2000 and RightStick == 128
I think something is happening when I use GMCM to change keybindings. But I don't know why.
though i doubt button's mod is giving you gamepad issues, since it's really only those 3 lines hahah
Yeah, that's what the author said, and I don't doubt it.
When I've used GMCM, it happens sometimes that suddenly my whole controller messes up. If I try to use the right trigger to scroll right on the hotbar, it uses each item in turn as I scroll
And if I hit the L3, it opens up the virtual keyboard through steam.
I know something wonky is happening ... but at least now I know it's not Spiderbutton's mod (which I didn't think it was really).
Sounds like normal "Steam Input is actual garbage" to me
yes, no doubt.
Do you have any suggestions for alternatives?
When I put spiderbutton's mod on ... it disabled my trackpad.
I normally disable it if a game can handle input itself, but I'm not sure for SDV since I normally ignore controller for it
I was thinking of maybe trying DS4Windows or something ...
I will try and see what SDV can do if I disable it. I need to play with a controller or I'll wreck my arms.
Ok, it looks like just shutting off the Steam Input works!
And sorry, I know it's not the right spot but there's no chat for modded tech support and this isn't worth opening a forum post:
Is there anyway I can get the GMCM to show me the keybindings? There is a huge gap in the middle and I can't see the text that goes off screen.
i'm testing furniture and haley just walks in, grumbles, then hides under the bed? how do i get my wife out
goblin-like behaviour
Best thing I see is changing zoom level
I'll give it a shot! thanks!
Is there anything similar to portraitPerson from ShopMenu? Seems like it was removed, or was it just renamed?
your wife doesn't like your furniture...? 
i don't think there's any equivalent to portraitPerson in the game right now. what're you trying to do with it?
how to draw a basic rectangle on the screen
i intend to use this rectangle as sort of a menu screen, later adding some dropdown fields and <= => option changers thingy
For basic config menu stuff you can use gmcm
If you want fancy menu then https://github.com/focustense/StardewUI
thanks
Okayyyyyyy
If I don't forget by Christmas
could anyone help? i'm trying to add more lines for suki from SVE to give her more personality because i love her but she only says this during festival of ice & the desert festival. i don't know where this dialogue is from and i can't locate it in the files either
the "have a look at my wares" dialogue isn't in the i18n file so i'm not sure where else to look
is it not vanilla
Should be in Data/Shops
you can use your text editor to search for text in a whole folder btw
She's not really expanded in SVE lol
yeah thats why i wanted to edit her myself 
but when paired it with SVE, it shows up 'have a look at my wares'
so it seems to overwrite every other dialogue?
i would say the next step is to use search in a whole folder to look for this line
both sve and unpacked content
if it's a vanilla line, look to see if sve uses the key for the string
thats all
Sve vendor portrait stuff is non standard
I suspect this particular line is in the c# i18n
you said use a text editor, could you clarify on that? its not the general search function in file explorer right
what text editor do you use?
visual studio code
I dont know the function in that case
sorry what does this mean? im not too familiar with the jargon 🥲
just look around the search functions in the menu
chu means its in a file in the c# portion of sve
this is what the search in folder function is called in notepad++
it looks through every file
ill get notepad++ just for this then
I'm sure VSC does it too
-or try find the VSC version of it lol
where would the c# portion of sve be btw?
it wouldnt be in the CP folder right ...
Okay I just ran it on all the SVE files
It's getting stuck on the sound files but no hits
its vanilla
Vsc has search all too
You need to open a folder first, and then magnifying glass on left side bar
It's from vanilla, but vanilla Data/Shops isn't calling that string
so if i want to replace that dialogue i have to target Strings instead right?
yeah if you just replace it in strings it will work
Oh I remember now this is the default no dialog vendor dialog
unless you want to hunt down how SVE calls on this string
Oh, yeah uh Ice Festival Suki doesn't have any set dialogue
ah okay
I would just touch it, most mods that bother to portrait will give custom dialog 
You can condition your patch to the day if u r concerned
alright, i'll try to see if it works, thank you everyone again 
Make traveling cart lady real mod when
Making Suki a real NPC would be kind of weird, considering how often she's just gone lol
That's the challenge
Gotoro expansion mod when
When you do it
I'm only a little Chinese, I was raised too white for all that
Is gotoro china?
🤔
Seems like it's just kind of generic Asian
Tbh I'm not sure there is any lore in vanilla for that
I don't think there is either
In unrelated, I have a new hat!
Did you make it yourself
asian gotoro is an sve thing not a vanilla thing, and i'm very passionate about people not conflating the two
Things they give in Gotoro prison camps, apparently
Holly
That's fair, I definitely forget sometimes that the Traveling Merchant doesn't get a canonical name lol
He has the same response for any of his hates right? is that the same for all villagers i wonder
Yeah I think so, vanilla didnt really do much with individual gift lines
Yeah, all his hate dialogue talks about getting that item in prison, so still pretty wild spread there
Milk, Sashimi, Tortilla, Gotoro is America confirmed
Also, people talk about how brutal the Gotoro Empire is, so further confirmation
Tbh I find the entire war saga so not fleshed out I don't find it interesting at all
I dont really know why people (not here) cherrypick the sashimi as proof because there's no world in which prisoners are actually being given sashimi 😆 (well, i do know why, and it's because of the prevalent sve-fanon)
(but it does come up a lot as "proof" of gotoro's nationality while not addressing that it's his generic hate line)
Kent hates raw fish lol. Most people do
Anyways
i mean i don't think a single place in the world actually has algae soup
Also ignoring how Asian-coded tortillas are /j
I like raw fish 😦
i, could be wrong i suppose
I looked it up for research and iceland does have algae soup!
not like that though
And algae soup
oh! good to know
I mean, 6480, what is seaweed but algae
perhaps CA choose items from different places on purpose to throw us off
And seaweed soup is tasty
Thats true, but the game also has seaweed, so we can assume they are distinct
or (more likely) he simply didn't think about it
Google show me the phylogeny of SDV organisms
I like raw fish 😔
thats my take lol, it was probably one of those "made at different times" things
Im tempted to add even More sushi to the game
Ot maybe CA doesn't have a degree in biology
:)
Because there's so many fish, the possibilities are endless
you're right
Stop ten people on the street and ask them to explain the difference between seaweed and algae
And get like maybe 20 incoherent answere
"well one is green... wait-"
It's the same way where Maru became Science Girl tm
Ahem, well your fish tanks don't usually grow seaweed on the glass
What if your fish tanks were salty
it is a plant, so
There's saltwater algae right
Seaweed is a plant and algae is a ?????
is algae a plant, whats the actual difference
I don't have a degree in marine biology
Neither of them are plants
They're actually... Just green fish!
Let's discuss the formation of multicellular life in making-mods today
XD
reads what lichen is well im not eating white algae soup
6480 discovering xkcd 2501 in real time
actually i probably wouldn't eat the green one either
(I would find white algae unlikely unless it was, like, dead.)
you kinda need a dye to phothsyntehsize
y'know i feel stupid i didn't connect the dots before
or I guess a parasite, that works too
Oh I think it's white because it's usually in like caves and stuff? Where there isn't sunlight
annyyyyways modding, modders, I expect an Realistic Algae Mod on my desk by next Monday
(the real difference between algae and seaweed is that I'm cool with eating seaweed)
Again, some are... just like mushrooms. Are you gonna risk it?
i don't like mushrooms so i doubt i'd like anything that's "like" mushrooms
so fjallagrasamjólk is the icelandic soup I was referring to, which is made with a white lichen. Since SDV names are a little arbitrary and used colloquially, that's what I imagine as a stand-in for pale broth
interesting!
Penny likes it
the only thing i doubt that is edible would probably be moss soup tbh
Thats really cool! Im not sure if white algae is lichen, but if it was meant to be based off it I applaud CA for that (If it was intentional I mean)
Is lichen soup salty or sweet
What can c# be used for that content packs cannot?
C# can do anything
Content packs rely on frameworks
So if what you want to do cant be fit into a framework
I been assuming that pale broth is like, silver ear mushroom soup adjacent
content packs can not do a lot of things
It's time for C#
Maybe a lil slimey
Can I please have an example?
Content Patcher (though not the only framework with content packs) is just a C# mod that does C# stuff on behalf of a content pack
Honestly I have seen a framework for everything
Changing game mechanics, ie making fruit trees shorter, making the player be able to jump, making a machine with a custom interaction menu, etc
If you feel like you dont need to do anything that a framework cannot do, then you're fine
asking for an example is a little vague bc basically anything that is completely new and custom behaviour will need C#, which is very open ended
There are definitely still a lot of frameworks
Well I'll give u example from my first mod sprinkler attachments
Thank you ❤️
We can always scare them with the More Fertilizers source
custom tools
Things I did in content patcher: adding the attachment items, tagging them with custom fields, adding those items to shop
Waiting for the day c# catches up to me... 
Things I did in C#: actually make the items do stuff
I don't think it's worth worrying about C# cus you will know it if you need it 
Buildings that do anything outside the normal functionality of SDV buildings (like a building that protects a whole map from crow spawns)
significantly fancy Special Items & Powers are another thing that will need C# if you want them to actually do anything beyond what a simple content patcher patch can do
how to enable music loop? It is awful when music plays only once a day and then its quiet
no framework for those yet
Walk out of the map and back in is usually what I do
So c# is like steroids, I don't need to worry about it until I have reached my content pack potential
It's not even so much your content pack potential. It's not like C#-requiring mods are higher than C#, it's just a different category altogether.
As a C# author, I'm not sure how I feel about it being referred to as steroids lol
Frameworks allow you to add new content within the rules. If you want to break the rules, C#. 
If you want to break reality, Harmony
sometimes a framework lets you do both
funnily enough i was just now thinking about that gold clock idea you had
Specifically, after the 12th time you've had to dive back into a transpiler, you'll want to break your computer over your knee
What is Harmony
harmony lets you alter the games original code and functionality
instead of just writing your own new code
Isn't that what c# already does?
i mean Harmony is a C# library so like, technically
without Harmony you wouldnt really be able to stop the game from doing the stuff it normally does, only add stuff on top of it. but with Harmony you can change what it normally does
for a bit of an exaggerated but real example: without Harmony the game will launch and go through the motions and you can write your own C# code, sure, but the game will still launch and run the game and handle daily update functions and yada yada, bc all its normal code still runs
with Harmony you can make the game launch and load up a game of Pong instead of stardew valley
(Which is actually a really real example: https://www.nexusmods.com/stardewvalley/mods/1994)
Mod that detects Stardew valley addiction and makes you load into ET If you play for more than 5 hours straight
that one probably doesnt actually need harmony 
there are some times where you can get away with not needing harmony and just simply making sure your code runs after to make sure your code overwrites what the original code did
but sometimes you gotta interrupt the original code
and even if you dont, it still helps you run your own code at specific times
because you can set your code to run before or after specific functions, rather than relying on SMAPI events to detect when you need to do something
Oh interesting, (this feels like going into the wizard's tower and getting a lecture about magic)
Hey guys I was looking into trying my hand at making a mod, I am a novice with this stuff but keep seeing that stardew is undergoing code changes that change how modding works. Will the guides posted on the wiki still work?
The official wiki [[Modding:Index]] is a good resource for making mods, the modding wiki has a lot of out of date tutorials on it
!startmodding depending on what kind of modding you're looking to do, I suggest starting with Content Patcher unless you're trying to do something frameworks can't handle
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.
If you have more specific questions about what you're trying to do, it can help us to point you in the right direction as well
1.6 was a lot of changes to make modding easier but most things posted after that was released (i.e. in the last 8 months) should be up to date
nothing too major has changed for modding since then
(as long as you don't count light source, quests, and save serializer changes
)
hence "most" but also I don't think the serializer stuff made a difference for anything but spacecore
Yeah, I dunno if anyone else is really rolling their own serializer stuff anymore lol
i wouldn't call the light source stuff or quest stuff major either since they're usually very quick changes 
What is a serializer?
writes your save data to the save file
Without corrupting everything even
Why edit something so core to the game, wouldnt that risk corruption?
i mean it was the vanilla game that changed it, I'm sure they had their reasons, likely mobile related unless I'm misremembering that
I meant modding wise, why do some mods alter the serializer?
spacecore doesn't actually really change it, but it makes it so that modded stuff can be saved to a different save file of sorts
To stop the game from crashing when it tries to save stuff that shouldn't be in there lol
because the game cannot handle custom C# classes in it's serializer
but it doesn't change how the vanilla stuff is serialized or how the actual save file is written
the warning in the SMAPI console about it is just because spacecore touches some of the serializer stuff to make that happen
Thank you very much great sorcerers of math.
odds are you'll not need to worry about it
and if you do it's simple to use spacecore to help you
Does SpaceCore not actually change it? I thought it was tearing out the parts of the save with the custom stuff and then cramming it back in afterwards
i believe it writes most stuff to a sidecar, yeah
I meant in the sense that it doesn't change how the vanilla stuff is serialized
Ah
that is the vanilla save still works without spacecore
minus the modded stuff obviously
(which the SMAPI warning warns may not be the case because it can't be sure)
I know I dont need it but I just like trying to understand that stuff. (Even if I litterally am on page one of the C# book I got for 5 bucks)
the other option if you have custom classes is to remove them before saving and restore them after loading (which is sort of what spacecore does with the sidecar, anyway)
which is slightly less simple, but still doable yes
Didn't atra say that doesn't work very well with custom locations?
I assume printing hello world isnt the key to Smapi modding /j
i believe it. locations are... fun
You'd be surprised how much time I spend adding debug logs to my code 
I imagine you still can do something that isn't spacecore to recreate a location in a similar way
it's just more work
probably creating your own sidecar
i got away with it by just using a regular GameLocation and implementing my special behavior outside of the class definition
(Yhe other reason why you want to use spacecore is that spacecore is a like.)
(Centralized manager of custom types.)
I suppose it depends on how many changes that location can take and how many of those you want to keep
Removal and reinsert breaks if modder Y puts Special Item Z in your location
This space core is sure a core mod, it seems to do a great deal!
spacecore has too many jobs, in my opinion
And other mods doing manual serialization often reflect into spacecore to handle spacecore types
(tbh i wish the serializer was it's own mod)
but i'm the only person who thinks that, so
no I also very much think spacecore does too much
But to reduce the size of both thr save file and mp sync
I don't mind SpaceCore doing a lot, but I worry it's a big cause for burnout for Casey (right behind user complaints)
I have been reading the documentation and it seems to handle like the entire game
But then I recalled I'm retired haha
i think a lot of things in spacecore could've been their own mods personally but it ain't up to me
From shops to virtual currency from buffs to warps to litterally anything else.
true, but then users (and authors) will complain about a mod having too many dependencies
same
honestly we wouldnt have this issue if dependency downloads were one click
Nexus make a mod manager that isn't awful challenge
i dont think spacecore splitting up into different features from the start necessarily means a mod suddenly has a lot of dependencies. the whole point is that i wish spacecore was split up because i dont need most of its features
i wouldnt like it if Custom NPC Fixes, Custom NPC Exclusions, STF, and FTM were all bundled into one "core" mod either
smaller features like virtual currencies or the odd map property need a bigger framework though. No one would want a framework that enables mini fridge placement anywhere
I get your point though and I agree
I been thinking about eliminating spacecore req (for save serializer)
some things are so small and niche that i do agree with those being bundled into a mod that does misc stuff, i agree. things like save serializing, dungeons, and guidebooks,, etc though, i would rather a different mod
both situations (big frameworks, too many frameworks) are kind of irritating, but i have a particular brain rot (empathy for the machine) which makes me get all antsy when i have mods doing code i don't need, so i prefer things with One Job™️
It is exist tho so I must consider it when I make any mod that could interact with it 
Truly the systemd of stardew
(and in case casey backreads this later i hope its clear that im not sayin any of this with any negative judgment or spite or anything, i just have that similar sort of antsyness as ichor)
as delixx said, the too many dependencies problem is made worse by nexus
and i personally like it when its clear why a mod has a dependency on something
Oh delixx since u r here do think u can give the UB bundle object a display name 
if i download a mod and it has Shop tile Framework, i know why
if i download a mod and it has spacecore, who knows
So that they appear normally in mods that r use the display name, like informant tooltips
I just realized I have absolutely zero ideas what I should call my helpful source generation project.
call it "Helpful Source Generation"
Thank you chatgpt
i cant think of a worse insult
lmao
uh sure, I'll just make the bundle display name the object display name.
UB did just update, so it'll be a while before it's added though 🙃

