#making-mods-general
1 messages · Page 416 of 1
tbh I don't export files out of ILSpy at all and do all my searching and navigating in it, because I love ILSpy's searching and analysis tools
we said visual studio 2022 or rider, not vsc. vsc isn't designed for c#
(unless you mean vsc to be visual studio community 2022, which is fine)
(aka. visual studio)
this should all be explained in the decompile guide on the wiki
anyway, the goal of all this decompiling and such is to give you the full codebase to look over for your project
you'll want to make a new separate project following the getting-started guide on the wiki as a launchpad, and from there work out spawning monsters, and then spawning monsters on crops harvested
spawning monsters is fairly trivial, you'd just use something like new Bat("Bat", new Vector2(12, 24) * Game1.tileSize) to make a bat at the given map pixel position
getting the entry point to spawn monsters to be on crops spawned is the harder part, so once you've sorted the monster spawns we can give that a look
Mod idea
Amar that divides up the introduction quest by mods
!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 also I'm not convinced that's strictly possible without some cursed harmony patches on content patcher, since the game doesn't know which mod each NPC came from)
you'd probably just care about expansion mods with a significant amount of npcs in one region, so it may be a manually mantained list
honestly bewildering why i keep doing this to myself. it should be studied
i was thinking about doing some hakama to go with it but that was so many hours ago
I'm also wondering why you're doing this to yourself
noone else has made yukata in the five and a half years this mod has been up. thion k of the roaylties
NPCs sort of work with open world, their pathing is very muchbroken as they tend to want to go through the wilderness instead of town to get to the busstop for instance
fonoty d[p
I can't see this image clearly so I'm filling it in with my imagination
bug: ur sleeves dont get drunk
Wow! That's a lot of frames for a cat
oh wait they do but they dont show the meat behind them so its less red
what is happening
the format in CP pack should match the Content Pacther version in the manifest right? so rn with CP 2.8.0 being released, the format should be 2.8.0 too
yeah
perfect thank you
in general yes, though it only really matters if you need the features in the newest version
a slightly lower version should be fine yeah
I just noticed the wiki was out of date and had 2.7.0 so I was just going to update it, but I have forgotten my wiki acc login details so I may not be able to
so for 2.8 for example going from 2.7 to 2.8 would only be relevant for using Range |step, but it doesn't have migration checks ensuring you can only use it on the correct version
Gotcha thank you!
It seems the format in the code blocks on the wiki don't actually exist on the page but in a seperate location
pathos being a mediawiki god has it templated
just need a quick help please i can't seem to find the right format for tools and items and furniture i read the wiki but still not sure how they should look and chatgpt can't think straight so can someone help please? here is my current format
{
"Astraios.Motrin.NightmareMayhem_DreamAxe": {
"ClassName": "Axe",
"Name": "Dream Axe",
"DisplayName": "Dream Axe",
"Description": "Made for the dream world, this axe slices through even the thickest wood as if it were mist.",
"UpgradeLevel": 4
}
}
{
"Astraios.Motrin.NightmareMayhem_NightmareFragment": "Nightmare Fragment/150/-300/Crafting -20/Nightmare Fragment/A shard of nightmare energy, pulsing faintly. It can be fused with others."
}
{
"Astraios.Motrin.NightmareMayhem_DreamgateBed": "bed/1 2/1 1/1/0/-1/Dreamgate Bed/A special bed used to enter the dream world./0/Mods/NightmareMayhem/dream_bed"
}
(code blocks use 3 backticks, the key below escape, ` )
Please don't ask chatgpt for any help with modding
also please don't use chat gpt it's useless for stardew
do ```json if you want it to be colour coded
i made a whole game with it it just sucks here cause lack of online info
Fine I'm just saying don't
AI developed code isn't allowed on this discord
thank you anyways
no? how is that a thing
image not code
it explicitly says code as well
also i took the format from gpt
to answer your question, tools and items and furniture have different formats. You'll want to look at each individual wiki page as well as look at the unpacked game files to learn how the format is
Okay
thats the problem lol
Have you unpacked the game files
!cp
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
start with this
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!
https://stardewvalleywiki.com/Modding:Tools
https://stardewvalleywiki.com/Modding:Furniture
https://stardewvalleywiki.com/Modding:Objects
(to read alongside reading the unpacked game files)
thank you so much
You're definitely welcome to come ask for help if you're not sure where to start
Believe it or not im like 60% done with the code im great at c# just got no experince in making sdv mods although i have a friend who has been making mods for like 2 years
Everyone starts somewhere. I think the best way to learn is to just start doing it yourself
wish all codding communities were like this
thats truly helpful
never got used to writing good comments
Writing useful comments is also something I struggle with too, just remmeber it's better to have too many comments than not enough, being annoying is easier than being confusing
last community i was in clicking a link even if it was verfied was prohibited they used to hack you thru making you their friend for years and then rating you taking all of your stuff and your account and selling them that is completly different from what i have seen here
bruh
I can't help it. I have to take part.
Can someone explain plz
You dont have to make a tortilla mod, you can always release something else
Im kind of scared of whatever tortilla mod requires MEEP and BETAS
What kind of hellhole-
I've got 4 packs in the freezer, I'll send you some via bluetooth
how is it that I procrastinated with releasing speedy solutions and accidently released it after 5 months during a meme frenzy
Alab WHAT 
Tortilla.
Speedy Tortilla solutions, It just optimises the tortilla, thats it, just the tortilla
No but why do you need meep and betas for this what kind of monstrous tortilla is this
I have been trying to dismantle the blur to figure it out but it's so very hard
its a certified ShareX™ blur you wont defeat it
"Baby popadoms with something" is what I've got for the desciption so far, which I know is probably not even close
if I register a custom tile action, is writing a content pack json that informs about where the tile action should take place and specifies on which map and provides a new tmx enough? or do you need to enter a custom property to the tile on the correct layer in tiled on that tmx too?
oh man I am so confues about this
Ok. I’m sorry. I just woke up. Normally I understand those words but I’m struggling with the way you put them together
Can you rephrase? I’m not sure I understand
by the way, was the astraios mod id suggested by chatgpt? because I believe there’s another modder who uses astraios, so that may end up causing some confusion
I assumed they were working together but.yeah i was also confused
Please use my high res tortilla if at all applicable
i spent real minutes of my lifespan on that
...okay, absolutely using that. Was currently working on pixel arting a tortilla from a public domain stock image. 
…can you draw an animation for it— /hj
Whould this work how i expect? It would load the data files in Data/mod.one/data.json only when mod.one is present? Dynamic tokens are still new to me
"DynamicTokens": [
{
"Name": "SupportedMods",
"Value": "mod.one, mod.two, mod.three"
}
],
"Changes": [
{
"Action": "Include",
"FromFile": "Data/{{SupportedMods}}/data.json",
"When": {
"HasMod": "{{SupportedMods}}"
}
}
]
I was thinking of animating it so it works with confused tortillas
but i think my mod users would prefer i work on actual mods
FromFile wont split like that I dont think
I don’t think so
I think it will use all three for all three
a token can only ever be one value im pretty sure
If they don't understand that tortillas come first they don't deserve your mod
and the patch split logic runs before dynamic tokens evaluate
but I want a tortilla preview for my portrait mod— /j
Lmaooooo
(not exactly. tokens can be sets, though I’m not sure about dynamic tokens)
Tokens can and do contain more than 1 value, See Also: HasMod
I don't think that's the case for dymanic tokens
From CP docs:
The value(s) to set. This can be a comma-delimited value to give it multiple values. This field supports tokens, including dynamic tokens defined before this entry.
oh wow that was a lot of replys bahaha
sinz, while you’re here, are tbins more performant than tmxs in stardew?
So it would do the include for all 3 tokens seperatly? or would it do Data/mod.one, mod.two, mod.three/data.json
how come?
it would require all three mods for all three includes
Ahh okay gotcha
(how come they’re more performant, not how come you’re using the better version, obviously)
tmx files first deserialize their XML into the TMXMAp format and then do all sorts of deeply nested hell to transpose that contents into a Map instance.
while TBin deserializes directly into the Map instance
interesting
and Binary deserializion from reading a stream is faster than xml decoding, along with smaller file sizes
makes sense all in all
Is just the register action thing i discussed
snarfing a binary directly to a class instance is a lot faster than even just the xml parsing step (famously zalgo), i would guess
If you want to look at the code path it's GameLocation performaction iirc?
the biggest one is avoiding the data transformation, and for SpeedySolutions once its a tbin I can just in-memory cache the TBins as a immutable cache as deserializing that binary data structure is faster than deep cloning a Map instance
where is the tbin format from, anyway? monogame? ik casey made the tiled tbin support plugin but idk what was used until then
but I think I rewrote too much of my code and now I myself dont really understand it anymore
How much do you know about functional programming
its the native format of Tide / xTile
ah, I see
are you asking me, chu?
yea
is there a sprite sheet, as place holder? like a all greyed out NPC for mod creators to try
like are you aware of the concept of passing around a function (delegate) as an object
haha stardew is the only non-demo game on the xtile/tide home page 
if so, I have taught myself c# by only looking at tmodloader mods and tmodloader code - so I understand what things can do and which syntax they use but I am missing out on many terms
I could make confused tortillas work with inspect tortillas instead, special compat /silly /MAYBE I WILL
then ill avoid too much terminal comp sci brained words 
is that callables?
yea some langs call em that
well they’re things you can call
yeah callables I understand
fun fact function delegates and events was arguably the first feature of C# and its difference from java
delegate is also a direct description but a little more technical iirc
passing around a function (delegate) as an object
but his sentence was like 
but I mean I get it
yes well, terminal comp sci brained 
disciplines are like that
but I can show you my current confusing code that tries to enable easy registering for frog tanks
we literally call it code, if it wasn't at least partially cryptic would we be doing it justice
but I dont know if this works and if a simple cp.json would work + a tmx
that is true
quick walk through of the code path i speak of tho
GameLocation.checkAction - this is the method used whenever player tries to interact with a tile
and somewhere inside there:
// game attempts to read the tile property Action from layer Buildings
tileActionString = doesTileHaveProperty(tileLocation.X, tileLocation.Y, "Action", "Buildings");
// a bit later, game calls performAction on the value
return performAction(tileActionString, who, tileLocation);
later, in GameLocation.performAction
// tries to fetch a registered tile action to call, instead of falling into vanilla logic that lives in the rest of GameLocation.performAction
if (registeredTileActions.TryGetValue(tileActionString, out Func<GameLocation, string[], Farmer, Point, bool> callableTileAction))
registeredTileActions is a dict that can be added to via GameLocation.RegisterTileAction
and it also makes it cool and myserious
callableTileAction is the thing you give to game via GameLocation.RegisterTileAction and so all the behaviour post interaction happens inside there
you don't have to worry about how the interaction happens, since that is a vanilla game system
its called hypixel skyblock a gamemode inside a server inside minecraft i place it at a worse state than cod players like if you ask anyone who plays why do you play they say its addicting i never asked anyone and said i love it all are addicted
hardcode what 
an example tile with that action so that the content pack can edit that?
Well you do have to add the Action from the content side yes
I don't think hardcoding means what you think it means tho
hardcoding is specifing a location to a script instead of making it... transitive?
Hardcoding in context of sdv modding is usually locking the logic inside C# code that cannot be changed easily
when editing a building with content patcher is it possible to just, change it's size? can't say i saw a mod that did that
Instead of making it a variable?
ah yes
Size should be part of building data yes
also I’m not sure what you mean either by specifying to a script or by transitive
Maybe I’m too math brain but transitive makes no sense to me
You can easily change where the tile action is applied, and the tile action callable gets to know which tile it is called from
So I wouldn't consider this hardcoding
making it require a specifyable object?
Yes I think chu has a fish pond mod that does that
(I have never heard of a meaning other than the maths one)
oh wait it might be C# hadn on ill checlk
Anyways i am abscond now i hope other people can help you out
“All windows are 1 tile wide” is hardcoding to me
ah i only know the linguistic meaning of transitive
My pond mod need c# to fix draw nonsense, not the size
You can just change the size it's a field
like, a c# script referring to a specific location?
“This object can have bomb radius specified by context tag to any number” is not-hardcoding to me
cool.
I’m curious now, what is it?
the maths meaning is if a=b and b=c then a=c
so if i were to uh, make the pet bowl 1x1 instead of 2x2, would that be a targetfield edit
I think so yeah
e.g. enjoy
(I think. I’m not awake enough to words rn)
you cant just say "I enjoy"
I’m not 100% sure what that would do to the actual image bit
you have to say I enjoy "something"
Since it’s both 2x2 footprint and 2x2 image rn
or maybe need is better than enjoy
i'd assume i'd need to provide a different texture
because honestly, english doesnt seem to have many transitive verbs
i mean you can say "i'd prefer not to"
weird language
I don’t think all non-hardcoded things require an input variable. For example, if it’s a property like “glowing” and it’s just that you add a context tag to make something glow, the C# function behind it won’t need an input variable because it’s a binary state of being
(Ignore that light glows have details to them for the purpose of this analogy)
but it has to make something glow, right?
It’s implied by the context tag being on the object
honestly that might be a really good thing to talk about
It can be a function in the object’s class, for example, and thus have access to the instance by default
because this might be the same reason why im confused
…pet? “I pet a dog”
oh pet is great for that!
prismatic as a colour
Yeah, that’s a better example
I’d say hardcoding = tying functionality to a specific value. so if I wrote something that made chairs glow, that’s hardcoded, but if I made everything with the context tag glow_item glow and gave that context tag to chairs, that’s not hardcoded
actually how would a smaller pet bowl texture look like
i experiment
for me non-hardcoded is data driven
so similar, yeah
hardcoded to me means baked into the code. you have to change the code to change the behavior
(linguistics and latin mention 🔥🔥🔥)
i don't think i understand how buildings work
but obviously a whole lot of things are "hardcoded" so typically the term applies when it's something that could (or, in one's opinion, should) not be baked in
it may be easier to make a custom pets bowl thats 1x1 rather than modifying the existing ppet bowl
custom building? would that even work tho
its a sliding scale, so while you can make almost anything prismatic fairly easily data driven, the speed and offset are hardcoded
pet bowls are just buildings in the game I think, if their function isnt hardcoded to just the specific vanilla ones you should be able to define a new one using CP similar to any custom building
i think their function might be hardcoded
or not? wonder if setting it so buildingtype would work
unrelated to pet bowls, can I define a custom json dictionary in a content pack? so that if the token is equal to the key, it uses the value instead?

so.. i18n?
Looks like "BuildingType": "StardewValley.Buildings.PetBowl" might work
i'll try that out
can’t you do that with dynamic tokens?
ok so I register my tileaction
I write out what my tileaction does
spawn frog, be clickable once per day etc
i write something that parses on the buildings layer for the property action with my custom tileaction string as value
is that it?
is an additional tmx enough?
or does that need a content pack json q.q
not translation, but functionally similar
no one said i18n is exclusive for translations, its a keyvalue store
how would adding a custom buildings with cp code even look like
I dont know why, I have read so many times through the content pack and content patcher wikis and tutorials and readme and it just makes my head spin
Possibly? if the name of the dynamic token supports tokens (I dont think it does)
registering your tile action is enough, you don’t need to parse maps yourself. but you do need to load a new map tmx, which would usually be done via a content pack, yes.
I’m starting to think this is an x-y problem. what are you actually trying to do
HxW has custom buildings you can have a look at (https://www.nexusmods.com/stardewvalley/mods/28031)
i was sure uw ere gonna suggest ur one lmao
I think it standing for “internationalisation” might have been a hint in that direction 
my one is a mess and should never be used as a reference 

and its Content Patcher and yet people add new content to the game instead of patching it
The places you want to add your tile action to (spouse room, sciencehouse) are vanilla maps
Thus you don't need a whole tmx, just editmap maptiles is enough
buildings have a lot of fields...
ok! so I say if event seen edit map and swap in -
Why is this letter triggering multiple times, please?
"Action": "EditData",
"Target": "Data/TriggerActions",
"When": {
"Query: {{DLX.Bundles/DaysSincePurchase:glymr.BrokenFarmhouse.FixUp25}} > 0": true,
},
"Entries": {
"glymr.BrokenFarmhouse.Upgrade03Mail": {
"Id": "glymr.BrokenFarmhouse.Upgrade03Mail",
"Trigger": "DayStarted",
"Condition": "{{FarmhouseUpgrade |contains=3}}",
"Actions": [
"AddMail Current glymr.BrokenFarmhouse_UpgradeMail_03 now",
],
"MarkActionApplied": true,
},
},
},```
ok i will read again editmap maptiles
almost all of them are optional, I'd recommend doing an unpack with the cli argument to ignore defaults
wih the what
Bea what's the goal
oh maybe what I wrote is actually already working then 
im making a pet bowl that is 1x1 instead of 2x2
if anyone wants to read that (I also figured out how to enable syntax highlighting lmao): https://pastebin.com/iHFbRBD8
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Just make it OX\nOO collision then
I have a list of mod names and uniqueids retrieved from the manifest files, I'm going to use these to "Action" "Include" json files, these files are in the Data/{{Mod Name}}/data.json folder, I also want the include to have the "HasMod" condition which I'm going to do with {{Mod UniqueID}}, I would like to not re write a lot of include sections as there will be a lot
That's less hassle than changing the dimensions
those are the collison stats for the bowl though
{
"Action": "EditData",
"Target": "Data/Weapons",
"Entries": {
"DreamSword": "Sword/75/120/0/0/3/Dream Sword/A blade forged from condensed nightmares. It vibrates with haunting energy."
}
}
that is right format right?
CP doesn't have a method of iterating over the values in a set to do that style of All-in-one include even if you solve your KV lookup problem
No that's old format weapons are data model now
im so lost game files look different than ones on wiki and ones i find online
because you’re adding the action again every time the query is true. move the query from the when to the condition field
do BuildMaterials default to nothing?
man thank you
i have been looking for such thing for 3 days
If you were Canadian it would have been obvious (/joke)
thonkies
https://stardewvalleywiki.com/Modding:Weapons seems up to date to me. (have you unpacked your files lately?)
@agile flame did you see my question from earlier, btw?
that page doesn't actually have an example of what it would look like assembled
he is my friend he is doing the art im doing the code his name is astraios911 he got couple mods i think
no, but it describes string -> model with a list of fields, and an unpacked Data/Weapons should fill remaining gaps instead of the 1.5 format
ah, I see
neither do the other 1.6 item pages outside of Items umbrella page itself
the reply wasen't mentioned so i couldn't see it
hey @oblique meadow do you know anything about adding custom buildings? perhaps this task too large for me
Yeah. It’s not super hard. What do you want to know?
Hm the watering tile on a pet bowl might be hardcoded

You could probably make it 2x1 but not 1x1
oh noes
Ahh okay, looks like Ill be automating it using python instead
my code didn't immediately break so that's nice
(C#) so, Utility.ForEachItem iterates over everything in the world, which is great, but at the moment i care only about items in chests and inventories. is there a similarly convenient call to do that, or a good way to check the context of the current item in the big iteration? or do i just need to extract the parts i care about from the big pathos implementation
struggling with what fields i actually need and also, textures, how and why
Thank you!
inchresting
when I needed to do this I had to do the manual extraction
@gentle rose Can I have multiple conditions?
boo. thanks!
(I’m sure you can do something with ForEachItemContext but it was more convenient for me to just do it manually than type testing everything in the list)
oh no
Looks like you may have the collision a bit bugged
is this a collision map issue or...
"Action": "EditData",
"Target": "Data/Buildings",
"Entries": {
"{{ModId}}_Pet_Bowl": {
"ID": "{{ModId}}_Pet_Bowl",
"Name": "Small Pet Bowl",
"Description": "Pet bowl but smaller. what more can I say?",
"Texture": "{{ModId}}/Data/Buildings",
"BuildingType": "StardewValley.Buildings.PetBowl",
"Builder": "Robin",
"BuildDays": 0,
"BuildCost": 5000,
"CollisionMap": "\n OX\n OO\n ",
"DrawShadow": false,
"Size": {
"X": 1,
"Y": 2
},
"SeasonOffset": {
"X": 0,
"Y": 32
},
"SourceRect": {
"X": 0,
"Y": 0,
"Width": 16,
"Height": 32
}
}
}
}```
i have no idea how the collision map works
"CollisionMap": "
OX
OO
",
I think this would work
vscode code did not like that
"CollisionMap": "OX\nOO",
or this
Oh wait I think X\nO is right because the size is 1 x 2
I was going off vanilla size and forgot you changed it
right, size 
(It may need a game reload and new building, not sure if this is a persistant setting or not)
uhm so u can't like, walk trought it but it does do that
is that just a setting. it also won't fill with water and i am scared
I think there’s an AND gsq iirc?
give "SortTileOffset": -1 a try
or -1.5
I think thats the right field for making it draw lower
doesn't seem to do anything, but might need to reload
Wasn't there a overload that kept track of the breadcrumbs
U need positive number
I swear that was added 1.6.9
yeah there's a bunch of stuff like that but decoding the Enterprise OOP™ out of it is difficult, as usual
how can i make u real
Did u copy the tile property
"Format": "2.8.0",
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/spouseRooms",
"MapTiles": {
"Position": { "X": 1, "Y": 15},
"Layer": "Buildings",
"SetProperties": {
"Action camiska.SebFrogTank"
}
}
"When": {"HasSeenEvent": "9333220"},
},
]
}```
like this?
Location name not needed
looking at the PetBowl code, it looks like for Watered state it offsets the texture by the intended width of the texture
cool thanks!
maptiles, position refers to the position on the maps/spouserooms.tmx, right?
not the position in the actual farmhouse?
dont forget to close the MapTiles object
who does that, shitposts 4 lyf
im not sure i understand what that means
the stock petbowl is 2x2 and has its SourceRect be 32x32, but when rendering the water it renders the 32x32 region to the right of that SourceRect coordinates
gang I need help I know it's been a while OK so,
I'm finally getting into custom NPC heart events (more importantly, in custom locations) and I swear I've looked at every tutorial on this earth (even page 2 of google) and there's not a single way I'm getting this event into the game at the current rate I'm going.
Does anyone know where to get a good tutorial (On implementing the event, not the actual scripting of it) that isn't years out of date and is actually comprehensible 😭
if it's in a location you added, make sure you did a blank load to Data/Events/yourlocationhere
my sourcerect is 16x32 since i made it 1x2
then the watered state is the 16x32 region to the right of it
but this .json needs to be registered as its own mod, right?
Slurp
since it works like that i can prolly do a 1x1
i check
yeah theres nothing hardcoded to the size in the PetBowl code, other than the hardcoded relative position of the water texture
most of the code is just figuring out the correct sort depth to ensure it renders on top
i slept and water still there
do you have a pet currently?
I looked again and i was wrong about the hardcoding 
I think it only empties when you have a pet
So you can make 1x1
nice
Just debug build another one
another pet?
i did load the blank yes, any idea what this means?
lookup anything will tell you if its actually watered I think, but yeah the bowl will only empty if theres an assigned pet that drinks it
need moar pets
ye just build another pet, they come in kits nowadays DIY animal
relationship with pets isn't configureable with cjb cheats
is there a console cmds somewhere
is it not? I thought it was
can i just delete the old bowl
probably
you can have more than one pet bowl building
it should automatically reasing the pet to a bowl if theres enough bowls
particularly if you are cheating with build commands
yes but atm i can't have more than one pet
There is a for that
looks like u can't demolish ur first pet bowl
oh! thank you atra
!!! unless im mistaken tho there isn't a way to demolish ur first ever pet bowl buildings?
can i make a quest with a penalty and timer in normal stardew valley or do i need some sort of a framework or c#?
did i miss an important field or is that hardcoded
ah yeah that part is hardcoded to be 1.5 tiles offset from the top left corner
can't win em all
so you could do 2x1 easily enough then
the people wanted a smol
Hello everyone.
I'd like to ask a question.
We have gone from tortilla's, to them being in our drinks, our mayonesee, now as a blanket
What has happened to our world 🙏

fish taco
time to unrelease Speedy Solutions, the community went too far and doesn't deserve the game to be performant anymore
what
u ok?
I barely tolerated the tortilla meme grind, but combining it with the previous stupid meme of grandpa is a step too far
how does your mod relate to people who are making tortilla mods as a silly joke
sometimes I dont know when yall in here are serious or joking
-# (i assume SinZ is joking)
Sinz, your performance mod looks great and I'm totally using it if I ever play the game again
Actual No More Lag
me neither bc im also working on a tortilla mod rn
mod very good
anyway, just came in here for a general question to the C# people because I had a spontaneous thought. how hard coding wise would it be to, like, make a lil building with the function like a pet fountain were it would let several pets drink from it? just a random thought i had cuz of Bea and the general thought of an army of pet bowls on a farm kinda looking cluttering
stop.
get some help
jk
no
/j
nah ur cooking
maybe sea bg?
yeah..probably lol
have some fish floating around
Color the clouds. Give them a slight colored tint to make them look more like coral. And put some small sea creature silhouettes in the background. Also, outline or dropshadow your title so it pops more. It blends in too much with everything else
You want the title to be the focus and everything else to be supplementary.
Oh wait, I think that's what already used.
Although, you could use the squidfest letter bg
yup
o?
where is that stored in game files
i can convert from xmb to png
is anyone accepting C# comissions to like, fix an annoying thing in my smaller pet bowl mod
Still in LooseSprites
Well, I've only made two little practice mods but today I feel ready to start work on Pierre Hates You. I expect it to potentially take weeks and I may make more micro mods on the side. Just to be clear, every file that I'll need to edit is somewhere in the unpacked content, right?
its a seperate file
o
squidFestLetterBG.xnb
found
whats the annoying thing?
i want this text to show up where the bowl is, but it's hardcoded
i can take a look a little later for ya if you like. i enjoy digging through the source code
{
"Format": "2.8.0",
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/spouseRooms",
"MapTiles": [
{
"Position": {
"X": 1,
"Y": 15
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
},
{
"Position": {
"X": 2,
"Y": 15
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
},
{
"Position": {
"X": 3,
"Y": 15
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
},
{
"Position": {
"X": 1,
"Y": 16
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
},
{
"Position": {
"X": 2,
"Y": 16
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
},
{
"Position": {
"X": 3,
"Y": 16
},
"Layer": "Buildings",
"SetProperties": { "Action": "camiska.SebFrogTank" }
}
],
"When": { "HasSeenEvent": "9333220" }
}
]
}
can i make this "if any player that exists (but isnt necessarily playing right now) in the world has seen event"?
or do i need to make that in c#?
👍
tysm
if you wouldn't mind, that'd be awesome
Lucy this might be more of a #making-mods-art thing, i would say maybe turn up the saturation on the background tho
okii and ty
Small feedback. From a colorblind guy. The text is getting lost. They blur together
contrast should def go way up
It's good. Its just...a lot of bright mingling together
anyone else have any insights on this maybe? :3
contrast would help
You have two things trying to do something with the same thing.
Similar example: If I have a mod trying to replace the entire Spring tilesheet, and another mod trying to replace the entire spring tilesheet, it would generate a similar error.
that's fair, do you have any idea what the exact problem would be though? All I've changed is trying to add this cutscene
Don't know specifically since I can't see your code but it looks to be focused around Data/Events/Custom_CityApartments4
my god I had a look and my smart butt managed to produce the exact same codeblock twice
That would do it
@gray bear sorry which specific mod is it?
hehehe
oh, i didn't publish it or anything, i can send you the file
ahhh ok cool. yeah do.
alright I've now removed the double codeblock, new issue is that the cutscene still won't play whenever I enter the loading zone with 2 hearts, does anyone have any ideas?
The smapi logs show up completely empty
(context, I've followed every tutorial on the planet and didn't understand a single one of them)
You should publish it, it's certainly a mod I've been too lazy to make myself bc I never build in even numbers
i should figure out i broke it first
Condition {{HasSeen: anyPlayer}} should do the trick with content patcher
Wait I'm actually not sure how the format should be 👀🤔
what did you do before it broke?
ahh
added skins that i broke, managed to fix tho. user complains the buildings aren't in robin's shop tho
and somehow it doesnt seem to work :(
with just editmap and this as content pack (no additional tmx included)
hey you should know i just published this. thanks (?)
ichor ur the hero we deserve
Looking at it, I don't think you need to specify Hay pet bowl and Stone pet bowl bc they're skins of the the original, they should get loaded along side the original, as for rbins shop I'm not sure bc it looks right to me?
(as an aside, you might want to use the 1.6 preconditions (the full words, not the letters) just for better readability for you https://stardewvalleywiki.com/Modding:Event_data#Event_preconditions )
your preconditions require 2 hearts + the NPC on that map, are they there?
yes :)
Have you already viewed the event on that save?
nope, and i start a new save on every test anyway
I assume you use CJB to set their hearts?
yes that's right
i think it broke bc i didn't add desc to the skins, seems good now
And the event plays when you use debug ebi, it's just not triggering naturally?
Ahhh ye descriptions are needed on skins too
I haven't gotten the event to trigger a single time, since I'm not entirely sure if I've even implemented it correctly
So, for the animals that show up outside marnie's, is it possible to set it to one mods sprites? Right now it randomly chooses a sprite from all mods that change the cow, in my mod list, or vanilla
Use debug ebi youreventname to run the event (ignoring preconditions), you can test with that.
alright let me give that a try
You should see 'sent command, but there was no output' in the log and the event should start ingame if it's working.
firing up stardew rn, will report back :3
Time to dig through 16 mods source code, this is certainly one way of improving with C#
the cutscene is playing with the debug command! it's very broken but that's ok I probably just scripted it wrong
now I wondering why it's not showing up naturally...
Just to check, but your NPC name in the preconditions is the Internal ID and not just the display name?
Is this correct? Or should it be modid_Babey
How is that NPC defined in your Data/Characters entry?
I'm presuming i need modid now that I'm looking at it lol
I've been on the custom map grind lately so I've gotten used to prefixing everything with Custom_
if you’re using CustomLocations that’s deprecated
yeah i am, I've been meaning to switch that over at some point
The NPC's internal name should be your key in the Data/Characters entry, so yes, {{ModId}}_Babey is what needs to go in the precondition
since 1.6 / cp 2.0 the constraint that the old CustomLocations functionality that locations had to begin with Custom_ was removed anyway
the cutscene is completely working now! thanks guys
ohhh i see
as that was just originally there to ensure it didn't clash with TXML/vanilla added locations which was made mute by Data/Locations having the native functionality
I do have a tutorial waiting for when i do plan to switch everything over, so I'll get to that when it starts to pose a serious problem
using CustomLocations will become mildly annoying once you want to actually use Data/Locations for your map as it'll clash with CustomLocations editing the same entry
mmm that's fair
Hi, quick question: with content patcher, how do you force the config stuff to require an integer?
More info: this
"FloatX": {
"AllowValues": null,
"Type": "Int",
"Default": 15,
"Min": 2,
"Max": 19,
"AllowMultiple": false,
"AllowBlank": false
},
nets this
08:20:48 WARN Content Patcher Ignored KTG's Slime Hutch Interior > Floating Horizontal: invalid X: that token isn't restricted to integers.
08:20:48 WARN Content Patcher Ignored KTG's Slime Hutch Interior > Floating Vertical: invalid X: that token isn't restricted to integers.
the examples in Pathoschild's author guide don't cover interger values
I don't think? haven't found it, I should say
I don't think you can specifically, but I seem to remember people using Query to return an int value
is there a context tag for big craftables?
or maybe I should just check for placeable since sprinklers might not count as craftables 
sprinklers, torches and crab pots are some non-BC placeables
probably some other as well
jack o lanterns
Query doesn't return int values, it does however turn off context validation so it can be used in places that normally require int/bool checks
crab pots count as machines though I think
They use the crab area rules from data/locations but what those actually give is hardcoded
nope, all their logic is handled in DayUpdate
yes its horrible
horrible things
thought you were calling me salty about crab pots and i was like yeah you're right
wait I thought that got turned into the location fish data in 1.6, is that still hardcoded??
im salty about salt
LMAO
no rock salt emote so table salt is the closest
you can add custom crab pot regions now
but the drop logic still reads from Data/Fish directly
I might be confusing it for the crabpot trash table
yeah crab pot trash chance is dehardcoded
the specifically annoying thing about crab pot is you can’t reorder entries because Data/Fish is a dict
so any fish you add has to beat the vanilla fish first
you also can’t just add any arbitrary items because they have to be in Data/Fish

also if you take the Mariner profession the game completely redoes how it picks crab pot fish
selph why would you curse me with this knowledge
I have many thoughts on the crab pot code as someone who stared into the abyss a little too long
the darkness must be spread
lowkey giving me flashbacks to that one time in 1.5 that I tried modding the fishing rod to fish up non-object items
i think slime hutch maps and content patcher might just be cursed 😭 could well be coder stupids, too.
I can replace the map, but I can't do anything about where the game spawns the water troughs for the slimes, or ensure the slime incubator that the vanilla hutch comes with spawns. Looking at how other coders handled it, and I keep seeing "didn't" or map overlays.
and my map overlays aren't working, even when I scraped trying to do a positioned map edit and went for an all over map overlay
i denounce the tortilla trend and further shenanigans. my lawyer is advising me to keep all information of my alleged involvement under wraps
Ok but cornucopia cooking will add more tacos right, to use all these tortillas
...we have a quesadilla
For the token nerds (/pos), Is this a valid token syntax?
"LocalTokens": {
"ModName": "PlaceholderName",
"{{ModName}}Extra": "AnotherPlaceholder"
}
is the spouseroom data loaded after the farmhouse_marriage data (and farmhouse_2marriage?
Quesadillas are lovely
Spouse rooms are a kind of dynamically applied map edit by the game
Now craving cheese quesadillas
It should come after the marriage versions of the farmhouse yea
but if i do an editmap "Maps/spouseRooms",
"MapTiles"
it didnt load and i wondered if the patch applies it to the wrong spot because the spouseroom is so 6x10?
or do I need an on asset requested? (I thought i dont need that if i let cp handle that)
You can patch export the spouse room asset to see if your tiledata made it in
I also dont know which room is seb room there
Advice for where to start on a mod this big? I already made a mod that just makes Pierre nonsocial if you're a Joja member. I'm thinking of potentially making this as more small mods that go together but not sure how else to break it up. My only other mod experience is giving unique dialogue when a specific item is given to a specific character. Not sure if I should continue making micro mods to learn/practice skills before I start this one or not.
my advice is not to break it up into little components unless you want people to use only some of them
for tackling the project, i would just pick one small piece and implement that (you have done this). then pick another small piece and add it in to the mod you already have. then pick another small piece, etc.
just do one thing at a time, get it working, check it off the list, move on
you'll learn things as you go and maybe want (or need) to revisit earlier pieces later. that's fine, although try to avoid doing that unless it's need
Thank you so much. I'll jump into doing it this way, one feature at a time. If I get stumped I may make more micro mods on the side.
Also, everything I need to change is somewhere in the unpacked content files, right?
all the stuff in your image is probably doable with data/content patcher, yes
when you get down to tacks, especially about the SVE stuff, there might be some tricks involved (SVE has a bespoke, closed-source C# component which may be doing some of the work, about the mayorship in particular)
oh, my mistake. i remember not being able to find it, but i may only have tried once
Wow pathos auditing code style https://github.com/FlashShifter/StardewValleyExpanded/pull/36
I find it funny that Pathos reformatted SVE
I'm sure there was discusson beforehand
If I'm going to continue to PR SVE for compatibility updates, I can at least make it better to look at
- Pathos probably
I mean, short and to the point, it's effective at least
I'm just gonna send out a request to new mod devs to please make sure filename paths have the correct casing, windows doesn't care but mac, linux and android do
ahem RSV ahem
Good thing that i just kebab case all my stuff then
they fixed it ik
I thought SMAPI fixes that for mods mostly
not entirely, many things still have issues
hmm i havent got complaints
a lot of stuff in stardew modding land is not case-sensitive, until it is by surprise for this one thing ha ha gotcha
Ik audio is a big one
Is that exclusively a C# mod issue, or does it also affect Content Patcher mods?
The absolutefilepath token is case sensitive for some reason
I think CP normalizes file paths for you?
I think CP mods aren't effected, but I know some smapi ones are
So i have to go rename ppl's ogg files sometimes
(It's still good practice to follow the same casing though)
Once/if mods use a GitHub build system, that could be a thing that gets checked for
chu, and everyone else
thank you so much with bearing with me and my underdeveloped programming language understanding
❤️
I finally got it to work and am almost there
(I accidentally freed the frogs in the new code)
Smapi partially doesn't care about case sensitivity but only fixes a handful of places, it's in general safe to assume it always matters because it provides does
I mean I have also included a command in my mod to spawn them in a 1x3 area
so frogalypse could be turned into reality
hey! uhh how would one make an NPC move faster in an event? I want an npc to run somewhere rather than using the defualt walking speed
EDIT: wait just found it, nvm!
that looks so cool!!
Thank you so much. I'm thinking even if I get permission, the stuff involving other people's mods will be the last thing I do and might not be part of the initial release. I had a feeling the SVE stuff would be the hardest part.
currently tweaking some mods to work better together, is there a way to stop NPCs from getting stuck on each other at map entrances?
is the entrance the BusStop in particular
it's the most common one for sure
there's a few others as well but not as important
i haven't really seen NPCs get stuck on each other during schedule navigation except at BusStop, typically trying to get to the desert festival
I thought it was the warp to RSV being too low at first but moving it up didn't fix it, not to mention NPCs coming from the valley also kept getting stuck at the entrance
the issue on that one is usually that there's a mod editing the bus stop that didn't get the 1.6 memo that the map is wider now
honestly any mod that stops NPCs from colliding with each other would be great
so they warp in from Town onto a map that is (1.5-era) narrower than expected, and then i'm not 100% on the exact details but they can't navigate to the next warp so they just give up
it's not that they are blocked by collision with other NPCs, it's that they can't proceed
I see
The NPCs in my game don't collide with each other, Might be due to non destructive NPCs mod
how can I add a temporary bush to a map for an event? I want a character to freak out after something happens and then run and hide in the bush. if it's possible to add the bush shaking animation thing (that plays when you interact with the bush) when the NPC runs into it, that'd be great!
if I want the same thing that now loads onto the map be applied to a furniture, wherever it might be placed, I can just use basically my Action property as tile/furniture property?
(I have read and learned a new word in the wiki called scope creep)
I think this now needs MMAP, right?
2 cakes, or in this case hopefully 4 cakes eventually
I see why people prefix local tokens, this has become confusing very quick
do you guys have any idea why the event keeps looping on the dialogue box? this event is from a fork
source generator thing now handles GMCM configs. It registers all standard option types, enums, and pages. It also handles the gmcm events, config reading & writing for you. It also provides some optional hooks in case you want to add your own stuff.
Checkered 
To add on to this, if you edit the BusStop map and accidentally have a tile on the Buildings layer blocking entrance to the bus, it can make all the NPCs pathing there get stuck on the map
I've seen that one happen at least twice
hello, do you guys know to override a location's catchable fish, specifically how the "farmfishoverride" works on farm map property, but for custom location
you can change to a temporary map during the event that has a bush there, and i’m not sure about this one but maybe doAction on the bush?
note that your character will have trouble pathing into the bush, so warp them away right before they get there, maybe?
or play around with the viewport to hide that awkward transition
not without seeing the event script
fish data is defined under Data/Locations, so if you overwrite that with your own patch (instead of using target fields to drill down into it) that should work
this is obviously horrible for compatibility but i assume that’s what you want 
ouh thanks youuuuuu

does anyone have a video or a wiki post that shows how to turn a c# into a dll without using visual studio im using visual studio code but i can't seem to make it a dll problems happen and i have .net 6 rn
Just do dotnet build
didn't work many errors popped up
how would be the best way to send it through discord? since the event script is too long to be screenshotted
!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.
quick question that might be dumb does smapi need to be in mods
ah right
https://smapi.io/json/none/0b20a57e491e4e1c95b9251351f7df96 Here we are. The problem is with the ChessYes fork event. Before adding the fork i had no problem ending the event
another option i just thought of is using a TAS of a bush on a very high layer with your character can then easily walk into and be hidden. this will make it impossible to shake the bush though
the event gets stuck after the dialogue box in the chessyes event
does the same thing happen with chess no?
oh wait i see. you shouldn’t use switch event with a fork
the fork does the switching for you
uhhhh ok chessno just redirects to chessyes which then does end (cause chessno is currently broken)
oh
a screenshot/text dump of the errors would help
i was just copying an elliott event for this, so i used what he used
have you read the wiki page for how forks work?
i can explain if it doesn’t make sense to you
I did, but i had a hard time comprehending lol
yeah they’re complicated lol (and soon to be deprecated in favor of GOTOs)
oh jeez
so the way forks work is that the label you have after the fork command will shunt the event to the labeled event. if it doesn’t get shunted, then the event continues to play while skipping the label command. so you can make chess yes the default, write the chess yes script in the rest of the original event, and just have chess no as a separate event
does that make sense?
"soon" meaning when 1.7 comes out, which could still be years away
that makes sense. I plan to have a lot more branches that come off the ChessYes event though, where you actually get to play a few moves. Would it still be smart to have Chessyes be the default?
it’s up to you, but i think i would make chess no the default then, yeah
okay ^^ thank you! I'll get on fixing it then after i get off work
if you need an example of a fork check out charles 7 hearts under lighthouse https://github.com/nbeymer99/DeadBoyDetectives/blob/main/data/Events.json
oh I will! Thank you ^^
(also in there is monty 7 hearts, under farm, which has multiple forks like you’re describing, but it’s a complete mess so only use it as an example at your own risk)
loll I'll have a look too
its way too big to be sent i think its smapi related gonna try something
forks are scary
uhhhhh I'm super super new to modding so I prob won't be able to do that, I really appreciate the advice tho :)
those are just event commands! and that’s how i learned, went in knowing nothing and then tried to get things i’d never used before to work for me
I was worried about temp maps, but I found it very easy when I recently did one for the first time
yep! the only iffy thing about it imo is if you try to fork inside of one, the fork needs to go in Temp
So :v I'm trying to add this flooring right? It's xnb and unless I wanna corrupt my save I need to content patcher it thingy. I used a guide (ish) a friend (idk if she consider me friend) to base the terrain features off it cuz for the tilesheets it worked and I observed it and figured out what she did
I think I'm ready to throw in the towel on moving the slime water troughs around in the slime hutch, but if anyone knows how to set the slime incubator to spawn at least (and preferably only) once, just using content patcher, can you point me in the right direction for that?
!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.
Use the first link to paste your json into then send the URL here
This is the manifest and content json I followed
is this an interior change? the incubator is added as an object in Data/Buildings, and if you apply your map patches to an existing building it won’t be moved retroactively
it is, and it isn't loading in new buildings.
why is your file xnb
you can unpack it
It looks liek you dont have any images in your mod folder, and the fromFile should be a .png if you're changing images

CP is actually capable of loading xnb files
Dumb it down-
It is? I did not know at all, pretty cool
your zip file however seems to contain neither
that doesnt make it a good idea
Here is the one I tried to make :v
its literally fine if it goes through content patcher
Can u editimage with an xnb
yes
Like putting xnb in the fromfile
yes
Nice that works then 
yeah but you cant see with your eyes whats in the file and troubleshoot
And looking at the data/buildings file, I see where the problem might be ... I think I have a building layer in that tile
I'd just do that n not worry about it
can you post what code you have
that doesnt make it a bad idea
okay yeah that might probably do it
You can patch export the loaded pngs later
base map works
working on fix for slime incubator failure to spawn
working on fix for positionable water troughs for slimes
okay so your first problem is. Do you understand what the "FromFile" field actually does?
you’ll need a data change to Data/Buildings
https://stardewvalleywiki.com/Modding:Buildings (IndoorItems)
No
your manifest is called manifest .json with a space instead of manifest.json
you also dont need that When condition
it points to the file you want the mod to load, starting from the folder the content.json is in
actually that When condition is keeping your mod from exploding further
bc you've written targets that dont exist
....
which in your case is Assets/TerrainFeatures/Flooring.xnb and Assets/TerrainFeatures/Flooring_winter.xnb
(dont exist in your assets folder that is)
OH SO I DIRNT HAVE TO WRITE ALL THIS?
Liliet, her FromFile isnt the problem
it is?
she's using the target token.
Uh u can call Me a she
assets/{{Target}}.xnb will become e.g. assets/TerrainFeatures/Flooring.xnb
(noted, apologies!)
first of all its case sensitive on mac
Nah it's fine
second, their target field causes their fromfile to target like 20 things
(i did not count)
which is a case sensitivity issue, and not anything todo with not understanding what FromFile is
while they only have 2
yeah, which is fine*, because of the When condition
38
they literally said that they dont understand what FromFile does
the extras just wont do anything
the When condition keeps the specific target patch from applying if the thing they wrote in the Target does not exist in their folder
i would say its a problem when a person doesnt understand their own code
that is a problem. but its not whats giving her errors.
aside from maybe the case sensitivity issue
Uh smapi said this is not a smapi mod
dont know what platform she's on
your manifest, as mentioned, is named incorrectly, so it cannot find a manifest
yeah you have space after 'manifest'
just saw it
it's named "manifest .json" rather than "manifest.json"
I fixed it so should it work now?
if the "when" condition only prevents specific patches from loading, then yeah. I haven't really used the multi-Target way of doing things
IT WORKEEDDD
im assuming you're not on linux (just educated guess) and your zip doesnt have that weird .MACOSX folder, so the case sensitivity probably doesnt matter if its a personal use mod
what else would it do?
SMAPI isnt, its OS dependent
SMAPI isn't linux and Mac are
SOME things are case sensitive but file paths are not
Who knew it'd flat out say it's not a mod if there is a typo or sum
Understood teachers
Thank u for ur time 
case senstivity = uppercase and lowercase sensitivity
All of u
i.e. MANIFEST vs manifest
make sure it actually works in game too though ofc and not just the main menu
the asset might not have been requested yet and might only throw a warning when the game tries to load it
If I doesn't work, we will be able to help further, paths were the first mod I made I think, I have an inherant love for them
I think this is the edit data I need?
{
"Action": "EditData",
"Target": "Data/Buildings",
"TargetField": [
"Slime Hutch",
"IndoorItems",
"Tile"
],
"Entries": {
"X": 4,
"Y": 5
}
}
What is your content.json looking like now?
and do you have any other mods that might be conflicting?
you’re missing Default_SlimeIncubator (as an entry) before Tile
I removed all the unnecessary stuffs and kept only flooring and flooring winter
Uh I do have soft season change
Does it affect the paths?
ideally test it on a very minimal mod list
no, it affects the order in which mods edits are loaded and applied
and now to test!
since you are Loading yours, they might be editing it back after
Ok I'll remove the soft season change and try again
unless you meant paths as in like, in game paths
and not file paths
in which case i dont know what every mod changes
😭 Cursed!
[Content Patcher] Can't apply data patch "KTG's Slime Hutch Interior > EditData Data/Buildings" to Data/Buildings: the field 'Slime Hutch' > 'IndoorItems' > 'Default_SlimeIncubator' > 'Tile' has type 'Microsoft.Xna.Framework.Point', which isn't recognized by Content Patcher
Uh I meant actual paths
you can just remove Tile from TargetField and set it in Entries
I'm looking at making a content pack for Iconic Framework to freeup some keybinds, the docs for making an iconic framework pack states it needs a parameterless method or parameterless constructor, currently I'm on trying to get the Automate overlay to work, is internal class OverlayMenu : BaseOverlay parameterless or is the : BaseOverlay a parameter?
type patch summary Sera.PlaceHolderXXX into your SMAPI console and share the log
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Bless you! It works! Yes!
that’s the parent class
a “parameter” is what you pass into a function, like void DoStuff(int number) accepts a parameter number of type int
Ahh okay gotcha
(also I looked into the Iconic Framework docs and I’m pretty sure what you want to do is use the keybind settings + CMCT to grab the Automate overlay keybind)
Looking further down I think I found what I need but it has paramenters
(I’m assuming you’re using the pure content pack approach to add a keybind to toggle the Automate overlay)
I thought iconic works by reflection anyways
I'm doing this to free up keybinds, It is a lot easier to go with a keybinds but accessing not often used things directly is the option I would prefer to go with for this
Not by simulated key press
it has a keybind option
Either keybind, method or constructor are the options it supports, whether that uses reflection I have no idea
hmm it seems like Automate does have a EnableOverlay function in the mod entry
it’s not static though
I'm not sure what static specifically means in this case, but I'm going to take a guess and say it means that it can't be called
I’m pretty certain you’d need a PR to Automate if you don’t want to go the keybind route
Gotcha, the API is a bit more sophisticated for C# so it may be possible to do it for that instead of a PR but I don't know it well enough, so that's one of the integrations I shall be leaving
with enough reflection it is totally possible to make a C# companion mod that registers that action
but at this point a PR to add that to the base mod is an infinitely better solution; pathos is very welcoming of contributions
Don't PRs also include the code that needs to be changed to facilite something like this? or is just asking nicely with reference to the framework and the API acceptable enough?
a PR would be you making the desired changes and submitting them for consideration
Oh I'm liking htee art for this fish mod, do let me know when it comes out. I've seen a few fish mods, but haven't always liked the art for them.
just “asking nicely” is a bug report /lh
Ahh okay, I don't know C# enough to even begin to make a change to be submitted for consideration, it's not the worst thing to not have included, it's a rarely used feature by me atleast
I actually think automate should disable this feature and roll it into data layers instead
Sadly I don't remember if the data layers API change went anywhere
i would disagree very
I personally do prefer adding it to data layer too as it's the kind of thing that thematically fits imo
hello!
I tried to add a new rule to the keg that uses 5 of a specific fruit as input, but in game it always outputs wine. Is there any way to make it use my custom rule instead?
sorry if it's a dumb question
make sure to reorder it in front of the wine entry with MoveEntries
yeah it's a question of rules priority
bc otherwise the game will hit the wine entry first and not look for anything else
*with data layers installed i mean
thanks, I will try that!
Tho it is not like it is happening anytime soon 
pls… i need my fishing zone overlay…
you can ask in #modded-stardew
whoops
Uh... Can someone break down where tf u get the coordinates and shit from please-
A mode called DebugMode can help you, when activated, it lists the corodinates, locations, and a few other details if a song or event is playing, or in a menu
Debug mode my beloved 
By far one of the most useful mods I've used, there would've been so many broken locations without it
What is 'big' for a C# mod? My .dll is 300kb
It doesn't matter very much
content patcher is 326kb so not the biggest, but size doesn't matter, what matters is how you use it
Cool
You can code in a way that's very size inefficient in terms of instructions ofc
Or code in a super size efficient way that is terrible perf
I'd certainly prefer a larger file size if it means it isn't as performance intensive
Just wanted to make sure it wouldnt get 'too big'
it's stardew, my nearly 700 mod pack is only 2.3GB, size is not an issue at all I can promise you that
A single hd portrait is probably bigger than ur whole dll 
I know assets can rack up the size of a mod itself, I was just curious if there were any limitations to the actual size of the dll specifically - thanks for the calrification y'all
to my knowledge there is no size limitations besides the storage you have on your computer (or ram, ram is probably the first storage based bottleneck)
so im trying to test run my mod but i need the cs to be turned into dll i try to do this like a million ways all fail and it seems like there is a problem with smapi a missing file called stardewmodingapi.dll but even after downloading a new smapi install still isn't there so what can be the problem i can find this specific file in the stardew valley folder but i assume there should be one in smapi and one in stardew valley so can someone help me real quick
do you have multiple stardew installs?
only 1
is your csproj the same as what the wiki shows?
Either that or the game is in a weird place
i tried the nugget thing didnt want to setup for some reason from vs so i did it from the cmd
please post your .csproj file
alr 1s
Where is the main dialogue file in the unpacked content?
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- Target the .NET Framework used by Stardew Valley / SMAPI --> <TargetFramework>net452</TargetFramework> <!-- Ensure C# 8.0 features are available --> <LangVersion>8.0</LangVersion> <!-- Disable implicit .cs inclusion to avoid duplicates --> <EnableDefaultCompileItems>false</EnableDefaultCompileItems> <!-- Build configuration --> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <OutputPath>..\bin\</OutputPath> </PropertyGroup> <ItemGroup> <!-- Explicitly include your mod source files --> <Compile Include="nightmaremod.cs" /> </ItemGroup> <ItemGroup> <!-- SMAPI and XNA references --> <Reference Include="StardewModdingAPI"> <HintPath>..\..\smapi-internal\StardewModdingAPI.dll</HintPath> <Private>true</Private> </Reference> <Reference Include="Stardew Valley"> <HintPath>..\..\Stardew Valley.exe</HintPath> <Private>true</Private> </Reference> <Reference Include="Microsoft.Xna.Framework"> <HintPath>..\..\smapi-internal\XNA\Framework\Microsoft.Xna.Framework.dll</HintPath> <Private>true</Private> </Reference> <Reference Include="Microsoft.Xna.Framework.Game"> <HintPath>..\..\smapi-internal\XNA\Framework\Microsoft.Xna.Framework.Game.dll</HintPath> <Private>true</Private> </Reference> <Reference Include="Microsoft.Xna.Framework.Graphics"> <HintPath>..\..\smapi-internal\XNA\Framework\Microsoft.Xna.Framework.Graphics.dll</HintPath> <Private>true</Private> </Reference> <Reference Include="Microsoft.Xna.Framework.Input"> <HintPath>..\..\smapi-internal\XNA\Framework\Microsoft.Xna.Framework.Input.dll</HintPath> <Private>true</Private> </Reference> </ItemGroup> <ItemGroup> <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.4.0" /> </ItemGroup> </Project>
All I can find is engagement and extra dialogue files.
yeah this is super wrong. I'm not sure where you got this but it should look like this
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableHarmony>true</EnableHarmony> <!-- only if using harmony -->
<Version>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.1.1" />
</ItemGroup>
</Project>
who wrote those comments, btw? it looks like it’s from a template or something?
ye i had no idea what i was doing in this part tbh
is there like a wiki for this part
wdym? you have comments saying “explicitly include YOUR mod source files”, where did those come from?
I recommend reading the wiki for your first c# mod. https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Create_a_basic_mod
a dumb friend of mine i told him to try and make it he said this should work it didin't i tried editing a bit still same results
well, I suggest not asking this friend again. clearly they’re hallucinating their answers and don’t seem to know much about stardew modding.
...anyways, why don't you fix the csproj and see if it builds
Do every cp path mod use the same codes and coordinates?
The wiki should have exactly what you need, the link wren sent
What do you mean by path mod?
i regret making a sdv mod in first place too complicated making a game from scratch was way easier but eh
(like floorings)
Like cobble stone paths
Like the paths on the ground you can place?
ye i opened the wiki
idk how do i find these parts of the wiki
i try to search it up but nothing pops up
If you’re making new paths then you don’t need to target the exact same coordinates
It's in its own subsection, but you can use the [[Modding:Index]] to help navigate it
Making a game from scratch was easier? 
It’s the modding sub space of the wiki, I personally just have Modding:Index bookmarked and I go from there
I'm worried it's just not there.
But technically u could right?
20 times easier
There isn’t one dialogue file, there’s like a million
smart man
And u don't need contentjson for AT mods?
can you imagine if all dialogue was in one file 💀
If you’re editing the existing paths yes, new paths would need new image files and new locations to load those files to
Not a man lol
AT has its own format
It doesn’t do content.json like CP, but you do need json files
All I can find are ones for engagement and extra dialogue
you can also make a wiki account and change your settings to include modding in search!
Each NPC has their own dialogue file
oh I didn't know that, I should do that
Oh. Thanks
Ohhhh
Thank you for the info! I shall be doing that rn
it’s so helpful, I strongly recommend
Can that be found in the characters file? I didn't see it there
(I've just noticed that my profile on the wiki is blank, is that allowed to be edited? thinking of putting a list of my mods on it)
Oh, what game was this? I'm sure folks would love to check it out 
May I ask what configschema means when coding?
I'm dissecting contentjsons to understand better
Ohhhhh. Thanks! I thought that folder was only for sprite sheets.
configschema is about setting up the format for the configurations
It's the config options you can set to allow for configuration for you mod, if you have Generic Mod Config Menu they can show up in there
How do I make monsters spawn in my map? 
Ooooo
so if you have configurations like: "ShirtColor": "purple" for example, you have to define a) what config options even exist, and b) what are the allowable values
Not at all, the folder inside pretty much contains all of the vanilla NPCs dialogue, regular/marriage
i made couple ones that isn't online and will never be cause they are either mimics or is another game
but made one basically cookie clicker but cats im going to publish it very soon actually just had to pause it cause my laptop broke down and had to use another one untill its fixed
i can tag you when i publish it
Ohhh ty guys!
They go to another school you wouldnt know them type energy
Oh, so it's incremental/idle? I follow the incremental reddit and incrementaldb so if you post it there I'll definitely see it!
Poeple rarely make new stuffs from scratch right? Specially if it's retextures and stuffs
People make new pixel art from scratch all the time
it is incremental but i don't post updates or anything like this so you won't find much info not now at least
I feel like you are asking about something else though, elaborate?
Like instead of replacing the files like for example craftables to give it another appearance
?
and i get that you may be judgy or thinking im lying when i say making a game from zero is easier but trust me it is highly depends really but for me its way less steps
I fear my English isn't Englishing
Yeah, they're both places you can post a link to show it off when you release it
incrementaldb's just an aggregator for idle games.
damn bro how'd you guess the name
Craftables are a little special in that adding new ones that function the same may not be possible
Due to hardcoded things
um ok does anyone know how to get appearances to work with HD portraits? like, can spacecore do that...
Let's take paths for example. Poeple usually don't make new paths right? They can just replace the vanilla one with a different texture right?





