#making-mods-general
1 messages · Page 145 of 1
Oh I see. The way I have it set up, I need to pass a buff instance to an effect spell compoenent class so that when I player casts a spell with an effect compoent, it gives them the buff. I guess I could create the new instance using the values of the original. Ill have to test that at another time
@silver sand Here's a quick summary of it
ok. I have a strange issue. So I have a dock. It looks like this in tiled (All layers are visible)
But it looks like this in game:
Thoughts are welcome haha
Looks like your water is on a layer below the wood, what does your layer setup look like
Yeah, what layer is the walkable part of the dock on?
(You don't actually need water on that bit since it can't be seen under the wood anyway)
Would anyone know a mod that would let me add the buffs to my rings properly without the use of C#
rings are added through CP along with the buffs
I can't remember any frameworks off the top of my head for rings
Ok. Based on those questions I think I understand. So if I have a back and a back2 layer and 1 is water, it puts the other back layer underwater
Trinket tinker exists but obviously only for trinkets
Yea im struggling out here XD, wish I could with CP alone idk why it doesn't have that functionality 
Item Extension has a ring equipped trigger action
but I'm not sure if that carries over to a new day
Layers in Tiled are layers in an art program, with the exception that unnumbered flat layers come with caveats that the game recognizes to add stuff to
So I would just merge back and back2 unless you really really wanted some overlay details
It's because the game does fancy animation stuff to water tiles which presumably is showing through because your layer setup is unexpected for it.
I need both back layers so I just have to tinker around it. But thank you all very much!
Spacecore should have custom rings
Just also realize that Buildings2 doesn't mean it'll give the layer blocked paths, only Buildings does that
Not that I know how it works lol
haha. Learned that the hard way
With the item extension trigger actions do I need to use C# or could I use CP alone or a .json formmated mod using Item Extensions? It doesnt specifiy on the mod author documentation
but can I just use them directly in my CP mod
yes, it's just a new trigger that you can use in Data/TriggerActions
You can also use the normal Buildings layer but give it the passable tile property, which is what most bridges do
ok awesome and to use them I just need to add IE as a dependency right
yes
so you'll do something like:
- on ring equip, add buff and
add mail flagincrement a custom stat by 1 - on day start, if has
mail flagstat then add buff - on ring unequip, remove buff and
remove mail flagdecrement stat (increment it by -1)
(the mail flag thing is because I'm assuming IE doesn't call the ring equip trigger on day start, and becase buffs don't persist to a new day)
That sounds like a real faff lol
And doesn't account for two rings
(Hides the AtraCore rings implementation behind my back)
Is that best practice? Or just common use? Working on my first farm so Im not sure if there's "unoffically agreed on" rules or whatnot haha
Ok Ill test it without before I add and then I may need some help with the mail flag as I have attempted this before and utterly failed XD, Thanks Selph
if IE/some other mod has a "has ring" GSQ then it could be better, but I dont see it
If it works, ship it™️ if people get curious and look at the inner workings and you're embarrassed? Congrats you've grown
...maybe increment stat instead of mail flag?
It's a practice used on some of the vanilla maps, and it's what we did before we had the option of using the extra map draw layers, so it bypasses the water issue
then that can handle 2 rings
Either is fine
I personally would use Buildings2
It's what the vanilla wooden bridges do (the ones in the forest). And if you want an example of what the vanilla stone bridges do you can look at the town map.
I'll take a look. As always appreciate the feedback all
Ok so it works but if a second ring is added no stacking and if only one is removed buff is gone completely, sleeping also removes buff like you thought, I have never heard of an increment stat so if you could enlighten me that would be great!
^ try this instead
check out IncrementStat on https://stardewvalleywiki.com/Modding:Trigger_actions
You can pick whatever stat name you want. Increment it by 1 on equip, and -1 on unequip
then use the PLAYER_STAT GSQ to check it for the daily moisturizer buff reapply
😂 Ok so I'm still having trouble understanding, Using the player stat GSQ i would check for the stat that they have my buff applied or I would check for the fishing level stat? As the buffs i made add fishing level
so I would use the trigger action to add the stat, but no buff would be applied, and it would use the GSQ to keep it overnight?
It would be easier if I had an example to look at so I apologize for all my questions especiialy if they seem dumb 
you check the custom "number of ring equipped" stat that you define. stats are just arbitrary pairs of stat names to numbers
so instead of applying the buff I would use the GSQ to check the fishing level and decrease it by + or - a number when the ring is equipped/unequipped using the trigger actions from item extensions, that way if 2 rings are added fishing level is increased by 2 and if one is removed its then decreased by 1. I would then be able to delete my buffs correct?
no, don't check the fishing level
oh sorry the rings eqiiped then use the increment stat trigger action to increase the fishing level, but then how to I trigger this when a ring is applied
instead of setting a mail flag that you defined for the ring, define a stat instead and call it whatever you want: e.g. GOAT.numberOfRingsEquipped. increment that on equip and decrement it on unequip. then check that value with PLAYER_STAT gsq
I saw people talking about it earlier so I did a quick decomp. The stealth patch for 1.6.15 doesn't have any code or content changes that I can see.
And on that note, time to rollback my repo to 1.6.8 and change some ILSpy settings as Pathos suggested.
And my collection grows
does it bother you as much as it would bother me that there has to be two different 1.6.15 folders
I'm going to delete one, in fact, since there's no actual code/content difference between the two
I'm just not sure which one to delete 🤔
Nah, it's a perfectly understandable hotfix tbh
That is, there's no difference that matters for the decomp I should say
i understand it from a hotfix perspective if it removed a silly dll. it would just bother me from a nice n neat data hoarding perspective
aka, not an important perspective
The fun part is I get to turn on all the new C# stuff in ILSpy now
Going to re-decompile 1.6.8 to get a diff between the two ILSpy versions, and then decomp every subsequent version using the new ILSpy stuff.
is this new stuff in ilspy 9?
i tried using the new ilspy versions for a bit til i realized that they would not analyze methods correctly and kept telling me no method was ever "used by" anything so i downgraded again :v
We appreciate you, khloe!
i cant even see the repo but i also appreciate the effort into it
ILSpy does have an issue with some local functions now, but on the other hand some of the stuff ILSpy 7.2 was writing out for switch cases and stuff was ridiculous.
And there's only three local functions in the entire codebase it doesn't handle properly.
oh, it wasnt working for most functions for me, local or otherwise lol. i didnt realize you were still on 7.x tho
Nah my decomp has been on ILSpy 9 since 1.6.9
But I was limiting it to C#9
Now I get to set it to C#12 😈
can anyone tell me which wiki page lets me know how to define a stat i can use with the player stat GSQ
like removing training weights
you dont need to do anything to define it other than Increment it
just doing IncrementStat YourStatNameHere will create it if it doesnt already exist
I am so tempted to use file-scoped namespaces
I see
this is the page for the action though
file-scoped namespaces would cause every single line of code everywhere to be changed though

"wow this mustve been stardew's biggest update yet, look at all these changes"
Button so I could use my buff as a stat?
and increase its multiplier by incrementing it up or down as an action?
the buff itself is just increasing fishing level and luck
i only just recently logged on and didn't back read so I don't know anything about your buff or what you're trying to do
you won't be able to read the stat to use in your buff data though
unless buff data has a condition field I guess but you'll need to specify exact numbers
Oh yeah another big reason for ILSpy 9. It actually uses local variable names in a less stupid way and doesn't just randomly decide to make stuff up.
Ok, it doesn't so that wont work, I'm trying to have equipping a ring count as a stat which inturn applies the proper buff which would then be stackable using the increment stat trigger and player_stat gsq
that way I can avoid ring buffs disappearing overnight or when the same ring is equipped twice.
if there's a mod with triggers for equipping and unequipping a ring then that sounds doable to me
Item extensions
you can apply the buff with the same trigger that you increment or decrement the stat
There's an "If" action on that trigger actions page that will let you give a buff depending on whether or not they have 1 in the stat or 2 but you'd need a second buff data I think
though it might still be difficult actually if it only lets you do one action
Yea, this has been really complicated which is why I keep giving up and coming back to it
actually it might not be that difficult, though you're right it's a bit complicated to think about lol
So in the edit data for trigger actions is where I have my equip and unequip, what actions should I use in this section, currently i have increment stat and add/removebuff
okay, so you have one trigger for equipping a ring, and it will happen if that ring is your specific ring (I assume item extensions can do this?)
in that trigger, remove any of your custom buffs first, and then increment the stat
ok so remove the buff being added completely or add the removebuff action instead
Then do the if action to either give them the level 1 buff if the stat is level 1 or the level 2 buff if the stat is level 2
no what you've got now is what I mean
you'll do the same for the UNequipped trigger, except you're decrement the stat instead ofc. And the IF action will instead check if the stat is level 1, and if it is, give the level one buff. if not, don't do anything
we don't have to check for a stat of 0 when equipping since we know it can't be 0, we just equipped one
and we don't have to check for a stat of 2 when unequipping because it can't be, we just removed one
that said if you're putting itemid there because item extensions said the ring is used as a target item or something, that's not how you use it
there is no ItemId field in trigger actions
I also did misread a bit, you want to remove both buffs (level 1 and level 2) in both trigger actions
every time
Hmm. Do I care if 1.6.8 compiles or not when using the new ILSpy
also, looking at the Item Extensions docs, it doesn't actually say it passes the equipped item to the trigger, so this might not actually be possible at all without that
Because there are 248 errors and that's a lot to manually fix
without that I'm not sure how you would get this trigger to only happen with your ring
and not any ring
is that not why my specified buff is only applied when wearing my ring or is that some other functionality at play
im not sure what you mean
a ring applying a buff is fine, but these trigger actions have no idea what thing you just equipped
i know (I think) you can have Buffs do an action when they're applied, but not when they're unapplied, though. unless I'm wrong there
major oversight if true, imo, but i guess whether it's even possible depends on what trigger action delegates can accept
Technically, they can accept anything, since one of the things in the trigger action context is an array of generic c# objects
But another thing they get is an Item
using that Item slot in the trigger is basically how all of BETAS works
May Pathos bless us with ring functionality for CP in 2025 
One of my triggers in BETAS even sends rings as Target and Input items even
I think it's time for me to scrap the rings, I appreciate all the help Button ichotower and Selph, but I fear I may start driving everyone crazy with all my ring questions and no example for me to look at
I can wait patiently until a mod specifically designed for this is made or CP gets functionality for this purpose
i can look into adding my own OnEquipped trigger in BETAS that would send the item, if you'd like, but it wouldn't be till after Christmas most likely
having access to the item is the only missing piece here I think
you could also ask whoever maintains item extensions
Casey and I discussed this at some point; I don't know how it works but I know it's in there
I believe they have some way but its to complex for me and I believe it requires C# use
if I weren't on mobile right now I'd check
I would divorce the atracore equipment model and just release that if it wasn't deeply intertwined with....well
The fucking dependencies problem
(that said I probably will still make my own equipped trigger anyway for more than just rings)
Either that or I would have to hand roll the emit code lol
Someone has done ring buffs
I thought so!
They got help in here and got it working, I thought
And I thought it was with SpaceCore
May be worth asking Nova about it
I think the ring buffs are probably easy but can they support multiple levels of buffs depending on how many of the rings are worn?
this is a thing i would take from atracore and consider releasing as its own framework. a great candidate for a thing with one job
Eli-and-Dylan nova
It's a dependency management problem actually
everything is better as a candidate for a thing with one job
Like, the reason why it was AtraCore in the first place is because of the damn dependency management issue
No idea on that one Button
I'm looking into spacecore rn
anyway i extremely don't have time for that, so maybe someone else will instead
But I'll see if I can find the past stuff
ive definitely seen people do general ring buffs before it's really the multiple levels thing that goat wanted that was catching me
AtraCore has very few actual affects on the game itself, it's more of a rant about corelib really
I can void the stacking I just want to make sure if 2 rings of the same type are applied removing one doesnt remove the buff
then spacecore can proooobably do it then I imagine
I think spacecore should be able to do it
which if that works for you then that's good it means I won't get nerdsniped into doing the trigger stuff when I have a cassette player I need to fix today instead
Yea i just cant find where it is mentioned and after that I am gonna struggle without seeing an example cause thats how I work well
Fellowclown was who I was thinking of I think
ILSpy 9 + C#12 really showing off for this method.
Also check Eli and Dylan
Everytime I search mod authors on nexus it never works is there another way I can find their work?
ILSPY 9 handling interpreted strings or whatever they're called is very tempting
i don't think Nexus has a search for users?
it techincally does
I don't know if Eli and Dylan are on Nexus yet
I would just Google them plus "nexusmods"
ok ill try that
But this is probably the mod FC was doing his ring stuff for https://www.nexusmods.com/stardewvalley/mods/22600
I just saw! That's so exciting. https://www.nexusmods.com/stardewvalley/mods/13883
nova is in this server
Damnnn that is a low Nexus number
Nova's definitely a good one to use for examples, he tends to know what he's doing.
Especially with events tbh
Yep definitely
Ok so I see they used "BuffIdToApply"
Specifically they should be editing the asset spacechase0.SpaceCore/WearableData to add a new key that is the qualified item ID of the ring with the value being an object with BuffIdToApply as a field.
With the ID of that being the ID of the buff as it is listed in Data/Buffs
(welp, that looks infinitely easier than my original idea. I had assumed SC doesnt have it)
exactly so I just need to reference spacecore as a dependency then use my already created buff id as the BuffIdToApply under the ID of the ring and that is it????
Yeah
I appreciate your help regardless!
OH MY GOD IS THAT ACTUALLY IT
im gonna go bang my head on the wall right quick XD
no support for multiple levels with multiple rings though, which is unfortunate
Better test it before you get too excited
definitely do still take it, users are not likely to care if they dont know what the original plan was anyway 
remind me to send spacechase0 some flowers or a flippin coffee XDDDD
imma test it right now
Quick question all. in 1.6 is it possible to have both freshwater and ocean fish on a farm map?
Yes, pretty sure
Yep!
yea, you can define multiple fishing zones
Look at fish areas
check out Data/Locations' FishAreas
Can’t remember if beach farm does it but Forest and Island west both do
Beach has uh, a query?
you can use LOCATION_FISH item query for "fish in another location"
that's what is used on the beach farm
for "use the actual beach as the fish source instead"
From the file of "things that probably seemed like a good idea at the time", in SpriteText.cs:
if (drawBGScroll != 1)
{
if (vector.X + (float)width > (float)(Game1.graphics.GraphicsDevice.Viewport.Width - 4))
{
vector.X = Game1.graphics.GraphicsDevice.Viewport.Width - width - 4;
}
if (vector.X < 0f)
{
vector.X = 0f;
}
}
Because no one would ever want to draw text with partially off-screen coordinates. That's crazy talk.
hopes and dreams shattered
im missing something
All I see in Passerby Cemetery is the Object Data for let's say the Eternal Embrace Ring, the Buff Data, and then the Wearable Data for spacecore
cant offer much help without seeing your json
you need BuffIdToApply not BuffToApply
Oh my god im a ditz
thanks button X(
Second moment of truth XD
I feel like ive been on an emotional rollercoaster for hours on end now
Still no luck
I only changed BuffIdToApply from BuffToApply, so nothing else has been altered
It may be something to do with the duration, since the Passerby Cemetery uses 9000000 as it's duration so I'll check that rq
that shouldn't have an effect so I'm back to square 1
Whew. The result of re-decompiling 1.6.8 with the updated ILSpy is... a lot, lol
maybe I need a context tag?
i unfortunately am not familiar enough with buffs and not not-on-mobile enough to be much help here i think
That's alright Button you've been a major help already ❤️
I wouldn't have made it this far without everyone here!
I think I have spotted one issue, just checking now on whether I see a second
Ok looks like just the one.
Your WearableData entries need to have the qualified item id as their keys, but you have the unqualified item ids
So I need to put (O) infront? I'm not sure what the difference between the 2 is
Yup, that's right. So instead of this:
"{{ModId}}_PrismarineRing": {
"BuffIdToApply": "{{ModId}}_FishermansBounty"
},
make it this
"(O){{ModId}}_PrismarineRing": {
"BuffIdToApply": "{{ModId}}_FishermansBounty"
},
Ok I am on it!
And I am really hoping that is all because I am too tired to scrutinise it more closely and nothing else is jumping out
I mean that is the only thing that could really be causing the issue other than that there is no difference in the information provided in both of our .jsons I even had my coding assistant in vscode check for inconsistencies and it only pointed that out and the lack of null data in my code
Make sure you test with new instances of the rings
Best to test with a totally new save, really
Just in case
Ok I will do that
Abagaianye... absolutely a genius XD its working splendidly
Thank you so much for pointing that out
Awesome :) Even the removing of the second ring is fine?
Yep!!!
it doesn't stack but I don't even care about that, it was just a suggestion from one of my mod users
He'll be happy regardless!
I'm glad we got to a point you're happy with :)
I'm more than happy I'm overjoyed, I could scream from the roof tops, I may explode with endorphins XDD
The reason I wanted these rings to work so badly is because I would like to introduce fish that are harder to catch than even legendaries themselves. But I needed a way besides food that would make catching them less difficult. Like my Reef Shark, a shark is not something you should easily be able to reel in and just making it have the same difficulty as a legendary seemed counter intuitive. So now the player has to find these rings to use to increase their chance of not only the Shark bitting, but also to catch it, this applies for some of my other fish as well
Nice

Is it possible to add 2 When conditions so if cooking is enabled fish are also required to be enabled?
I think you can put 2 conditions in one When, but not 2 When
Really not sure about it, I'll wait for someone to confirm or correct ^^'
Im about to test it so I'll let you know if it works how I intend it to
you can put as many conditions as you want in a single When block so long as the key is not identical between them
Awesome then it should work as I intend, thank you!
Hey all, quick question since SMAPI seems unhappy with me- I'm moving my JSONAssets mod over to Content Patcher and right now I'm having a bit of trouble with the cooking recipe entries. I'm genuinely unsure if I need to use text operations for it or the EditData action.
If you're adding new recipes EditData as usual will work
TextOperations is when you want to modify existing recipes
(though tbh I think few will mind if you also just use EditData and put your own edit on top)
Gotchya. In that case, I've provided a small example, following the data suggestions on the wiki. it's unfortunately throwing an error, should I be formating the edit differently?
I'm checking now through the documentation to see if I'm just missing some crucial entries here.
I think it might be that I need to use the "list" edit?
Or possibly dictionary.
the entry itself is fine
I'm looking at the recipe to see what's missing
your unlock condition isnt valid
(the last entry)
Oh really, okay
Well, as long as I'm formatting correctly I can mess with it.
I'll be using MFM for the unlocks for most of these.
hmm though if it is set to an unknown value it should default to "unlocked via some other method"
what's the error?
Let me grab it.
(also you can do mail stuff in CP now too, something to keep in mind if you want to remove the MFM dependency as well)
Honestly I'm not sure about that. MFM has worked pretty well and there's already 3 languages of localization stuck in there
can you also post the code with smapi.io/json
(Moving it over from JA has already been a real pain)
asking since that (O) is looking suspiciously thin, but I can't tell with just the screenshot
(that should be an O, not a zero 0)
That could be it, but I'm actually sure it's supposed to be 0 as an item call from in game, I've already used one like that to modify a monster drop.
I'm seeing the error in the parser now, but I'm not unsure why.
yep, that's a zero
it should never be a 0
and yeah, syntax error as well, missing a closing bracket
that error in the parser is bc you're missing a closing }
I just saw that oh my god
Well, thanks for the confirms y'all, I'm blind as hell
But yeah I'm still going through the growing pains of transferring totally over to CP
JSONAssets, bless that framework, helped out a lot with making some of these data edits easy to read for a brainlet like me
And as long as MFM decides to behave, that'll make my job so much easier
(keep in mind though that there will probably be a subset of users wondering why they still need a mostly deprecated framework to use your mod, though)
yeah JA does have a very nice data format
especially for gift tastes
but as said, still deprecated
gooood yeah gift taste moving is going to be a fat nightmare
Mr Ape/Pathos didnt have enough time to move every game asset to the nice JSON object format
maybe for 1.7 😌
And I totally understand, and maybe once I can figure out using the translations in CP and make that easy
But for now, as long as MFM isn't crashing games I'll leave it in so the amazing people who did all the localization translations can showcase their work a little earlier
Though I suppose that also means that if I don't move it right away, it'll ruin some saves
I didn't think about that-
im not familiar enough with how MFM works to know if thatd happen or not
Honestly I'm just hoping it doesn't, but code is fickle, and I cant guarantee
Somewhere I have a c# applet that takes a spreadsheet and emits the CP code for gift tastes
Anyways
That would be seriously helpful lmao
Though quite frankly I've got a lot of work before I move to that stage
Well once again, thanks y'all. The actual item works and the recipe, while showing an error image, actually does produce the right thing, so now to mess with it until its right
I wanna make my Meadow farm bigger. If I Action Load my new farm map to the old Maps/MeadowFarmWhatnot, will that work? Or is that the wrong way?
it should work, but keep in mind that the coop coordinates is hardcoded
as long as your new map keeps that in mind it will work
alternatively you can make a new farm type and use SpaceCore's building on farm map feature
I really think this is totally fine
Like, MFM is completely fine and working
That's awesome to hear!
Digus is still around and occasionally stops by
Mostly, I was hoping to make the map I am on bigger, like I already have a meadowlands farm going, does expanding the map down and right potentially kill things?
Down and right is usually fine
Especially if this is a personal edit, it’s totally fine
If I liked it, and thus decided to release it to the world for general use, what caveats should I take to not potentially fubar the worlds of others?
If you make it a custom farm type rather than a replacement you won't run into issues with people using replacement map mods too (like the ones that forget to disable Grandpa's Farm, etc)
I see! So if it were released, it would be wiser to release it as a custom farm type them, rather than a edit to the vanilla map, yes?
Thx!
(Search this channel for CSV--Atra made a tool for converting a CSV mass gift tastes list into json)
(The same one they mentioned above, actually
)
Will do-
Picked it up, thanks to you and ATRA lmao
I'll make good use of this
Quick question, for recipes, if im using something like a carrot where the id is literally "Carrot" I am ok to put like "{{ModId}}_LunarSalmon 1 Carrot 2/10 10/{{ModId}}_BakedLunarSalmon 1"?
I'm pretty sure you need to use Carrot's internal ID.
A simple interger rather than the name
Does Carrot have one since it's a 1.6 item?
Settle the heck down, discord, I don't need an echo
Good question (haven't got used to that lol)
Yes
Its internal ID is Carrot
Or just opening objects.json
That's amazing lmao
int ids stopped being a thing in 1.6
For all previous objects too or just new ones?
(Totally not checking in game now)
All the old items are still under integers.

And just like that, my new decomp PR is back up to date for 1.6.15. Whew.
Those are fun numbers to have on a PR.
.15? Is that out?
Do you need to set up Content Patcher buffs separately now? Not in each object's data entry?
(I have been really sick for like 6 weeks while also trying to pick up over time, I have been super out of the loop)
Yeah, .15 was released on the 20th. And then there was a hotfix on the 22nd that didn't change any code or content, just removed an erroneously packaged file.
Thanks! Imma have to go check this out what is the changes in the files! Thanks!
Food buff is still part of the object data
the standalone buffs in Data/Buffs are used in other stuff (trigger actions, C#, etc.)
Ahhh gotchya
yo theres a bug in your mod better crafting when using crafting from chests it makes more items than it should, using SHIFT CTRL and ex instead of 2 wooden signs it crafts 25
i imagine if i actually pinged id get beaten with a stick
insane
isn't that what shift control always does? including in base game. Shift control crafting/shopping always does 25
I mean you already sent me a DM about it and posted on Nexus about it. I'll get to it when I get to it.
Alright, I promise this is the last time I'm botherin' y'all today, but I can't seem to get the formatting on my buffs section for an object set up properly. If anyone can spot where I've messed up on the buffs let me know- I'm assuming I'm just jumbled on the formatting shown on the wiki.
Use curly brackets for CustomAttributes
also you have an extra closing bracket
Hopefully an easy one.. I've got a GameLocation that corresponds to the inside of a "big barn"... I'm looking for the translated name of "Big Barn". I'd'a thought that location.DisplayName would do the trick, but no. That gives you the display name of the farm, e.g. "xyz Hof" (in German). location.Name gives you "Big Barn", always in English. I can't find any properties under location.ParentBuilding that are localized. Clue?
Instanced locations use the diplay name of their parent location
in this case you want the parent building's name
(nvm, read it wrong)
which I think you need to get from the data
if there's no field in Building for it
Umm every time I try to send a screenshot I got muted
even in this channel?
are you trying to hide the link using the markdown linking thing
yes especially in this channel
dont
this server forbids that lol
oh okay
you will get bonked
its used too much for spam/scams
JSON shows as valid but in validator its telling me I need a JSON array. https://smapi.io/log/d5eec31b1e9348dd84ac16fe1479e6e8
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 5 C# mods and 2 content packs.
(The two other warnings are just because I have some empty fields in an in-progress json)
location.ParentBuilding does not have any properties or methods I can see that would return the localized name. Perhaps I missed it?
soo I want to add a few items to the slime's color-based drops, I get the tiger one, but can't get the checkpoints, so anybody help?
if not in the class then I think GetData().DisplayName or something like that
going off memory lol
Buffs is a list of models
(try putting square brackets around the Buffs entry's curly brackets, should work)
Wowzers. TokenParser.ParseText(location.ParentBuilding.GetData().Name) does the thing. Ouch.
And finally I've realized the error of my ways thank you based selph
enjoy me finally having what I need to dip out for the day and stop botherin' y'all
I seriously appreciate all the help 
Hello, I started poking around in maps and noticed that SVE makes these piles of debris on the beach interactable with a flavor message, but the mod doesn't actually use these spots for anything, does it?
Ok new quick question. Anyone know why my smapi is throwing this error on each new day:
Item spawn fields for location 'Farm' > forage > entry '???' produced a null or empty item ID.
can we see your json?
[
{
"MinDailyWeeds": 2,
"MaxDailyWeeds": 5,
"FirstDayWeedMultiplier": 15,
"MinDailyForageSpawn": 1,
"MaxDailyForageSpawn": 4,
"MaxSpawnedForageAtOnce": 6,
"ChanceForClay": 0.03
},
],
```
This is all I added before the error started
!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.
send the whole json
I could very much be wrong but don't you need some ItemIds in there?
or an item query
So it was generating forage after i added:
"SpawnBeachFarmForage": "T"```
My goal was to increase the output it was generating
also all the stuff you have inside the forage block right now shouldn't be inside it, it should be after it
I think the format of your json is wrong
Hello all. I'm working on converting a (seemingly) abandoned NPC (Delores) from an older format just to get them in my game again. With no changes made, the NPC spawns, but don't seem to make use of their schedule file, as they don't move from their spawn point. I get no SMAPI errors of any kind for the file in loading or gameplay. So far as I can tell from the wiki, and other NPC files, it's not an issue of it being targeted incorrectly on the Target or From File paths.
The original CP Format of the mod was 1.24.0. I updated that field to read "2.4.4" (the latest, which matches my CP version), and updated the disposition data to the latest format, using the sample showing on the wiki page. However, the same problem persists. They just never leave their spawn point.
The schedule file appears to match the latest info on the wiki, and didn't seem to need any updates. I did change the NPC spawn point in teh schedule too, but as I said above, the issue was happening before I did that change, so I don't think that's related. Again, no error messages, so I'm hopeful there's a simple answer to look into. Other NPCs made under 1.6 (Shiko, Ivy) still work normally, and even trying just changing the format to "1.6.0" for this NPC didn't help.
Thoughts?
I'm more confused she ain't working for you
for context, I have her and haven't messed with her and she works
It could be possible her spawn in the busstop's screwed where it is right now though for pathing purposes. That was extended by x=10
I am running SVE. Could that be related? Still, when I moved her I would think she would have been okay moving from the new spot. Good to know she works in her old format though.
ideally you should be testing your mod with no others installed to avoid this kind of confusion
other than that, there's a few points here
The thing is I'm running SVE too
(Yes, I know, bad mod practice, but she works when I actually play, which is more than once in a blue moon!)
- schedules generally aren't updated until the player has slept once, so adding a new NPC to an existing save will not have them use their schedule
- the
Formatfield in your CP mod determines which CP features are available for you to use, and simply updating the format will have no positive effect on your mod - the
Formatfield doesn't take game versions as a value, so1.6.0would be way out of date. as you said at the start, the latest version is ideal (2.4.4currently) - if the character is still not working after sleeping for a day and checking again, share your content files and log here for us to check over
Thank you! I'd bet that's the key factor.
oh yeah, first day additions
I still don't know why everyone's just super tired day 1
god i wish we could force schedules to load on their first day somehow
I shall now headcanon they're all just isekai'd in and are taking a day to go "maybe if I go back to sleep everything will be normal again"
drives me nuts having to iterate a day on my Perfect Testing Save(tm)
Before I bug Pathos
Why DOES everyone sleep on day 1?
I thought in 1.5.6 they didn't
i think it was 1.5 behavior too.
i'm not 100% sure but some amount of schedule setup is done at the end of the previous day (including, if memory serves, selection of the schedule to be followed), so if the NPC wasn't there for the previous day then they didn't get to run that setup
getting off that joja grind after yoba knows how long i'd want to go the hell to bed whenever possible too
yeah i'm fairly sure schedules are loaded on previous day and then written to the save file
which, god knows why, i sure don't
there's probably a good reason for it
Hm, well, if we don't know why
@ivory plume Hopefully shouldn't have any more weird questions, but why do custom NPCs stay in bed for a day after being loaded into a save file? If ichor's correct about setup, is there any reasonable way around that or would it require a ton of schedule code fuckery?
lyoko if this is about doing your non-gacha gacha setup, the easiest workaround is probably to spawn the NPC a day early with a home in some unreachable void map, then switch their home location to the expected place on the next day (when they are "supposed" to appear)
No it's simply just that npcs are spawned after schedules are chosen
I can guarantee that's not it XD I do not have the time or knowledge for that right now
Unique Winter Star - RSV takes prio right now and that doesn't use any NPC movement setup stuff
This fix worked. Now behaving normally. Thank you!
(I've sneakily pre-spawned planned, upcoming mouse friends in a void map in my mod release so their schedules will work immediately when I update the mod with their content..)
that sure is a simple answer, but why
the code was written, it works for vanilla where NPC data is not added after the game is started, no further thought was given to it, is my guess
to decide where to spawn them, maybe
ah but we have Home values for that now
arent 0 schedules used to directly spawn them somewhere else at the start of their day though
well yes, but i'd imagine Home is more suited to being a default spawn location value
i was saying i was guessing the intent was to know where they should go before spawning them, not because there was no way to decide a default, but because it was just preferred for no real reason to "spawn then warp them if necessary"
it is after all just a guess though
i wouldnt wanna rewrite all the schedule code after adding Homes either anyway
Alright, I'm at my wit's end here
I have the following patch for four characters:
{
"LogName": "Daia Winter Star Activation",
"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Daia": {
"WinterStarParticipant": "PLAYER_HAS_SEEN_EVENT Host 75160263",
},
},
"When": {
"Daia": "enabled, spicy",
},
},
Yet, even though patch summary full states it's applied, and this type of patch has worked previously, the patch export keeps stating "WinterStarParticipant": "FALSE",
Is there a specific step I need to do to figure out what on earth is blocking the change?
Unless... hmmmm.
i assume you have the correlated winter gift list, right?
don't need one
if no gift list, it defaults to the main list
Oh motherfu- okay, there's some bad code back in the OG mod I think
brb seeing if I can find it
considering you're the trigger master, that's literally the only thing i could think of- 
For those wondering what was up - I have a copy of Custom NPC Exclusions for Stardew Aquarium. It was editing AFTER UWS-RSV
Disabling it procced it as intended
that's weird, why would it be bothering NPCs not using it?
I don't know!
it might be doing some kind of blanket reset
I saw it in the log, and was like "okay, let's try disabling it"
and it worked
Could also be something leftover in the C# portion - I haven't seen anything in the CP portion linking to Custom NPC Exclusions
Hi, can somebody help me with my mod? I want to change sell price for items to balance the game better, but I'm confused in what should I edit, either the shop.json or the objects.json. Also after I modified it, how do I implement it in my mod? (I already have modded the map successfully thanks to fireredlily)
exceptions are stuff like shipping bin/trash
So what does the object.json modifies?
probably
i almost @ 'd esca to ask to be funny but i dont actually know if they are
So the stuff I sell in the bin are in object.json?
are you talking about the stuff in your unpacked content folder? you dont edit those at all
mentions:esca has like 3000 results, you're good
you need to use content patcher to use EditData and modify things in Data/Objects
what's one more for the road
Then how do I edit the price of the stuff I sell?
I also dropped it where Atra's like to see it, Lyoko, just in case the C# component is doing something
I have Content Patcher, how do I use edit data?
look at the link Jamore sent
yep
gonna throw that in dev rq
specifically, you'll need to
dig into the price part of an object's fields
theres no digging needed, just use Fields instead of Entries
oh true
I have to recreate another file with all the different prices?
how did you get your map to work?
you should read up on Content Patcher's documentation
i assume you've created a content.json/manifest.json for all of that
!startmodding i think the links in this command also have examples maybe?
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.
Somebody help me create the content and manifest yes. But I understand nothing about it
I'm not a programmer
you dont need to be a programmer for content patcher, ignore the C# links and just look at the content patcher links
then yes, i would definitely suggest reading the https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md content patcher author guide
Usually it’s easier to start with making content packs, since you don't need to learn programming.
✨
I need to code
that is actually how it works
its really not complicated at all and requires no code
"Price": "YourPriceHere"
content and manifest required code I understand nothing about
yeah you just need to do that for like. every item in the game hahah
Its true or a joke?
i mean if they want to do it for every object in the game, go ahead
it'd be a lot of copying and pasting
Hmmm
So I understood the basic good. I have to recreate a file with all the entries of the stuff I want to change
if you can make excel do cell a1 + b1 + c1 to print out on d1, you can write a .json file lmao
not really recreate
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
you can use notepad (at the very worst) or visual studio code (at the very best)
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"Carrot": {
"Price": 50,
}
}
}
this is all it takes, you just need the IDs of every item you want to change the price of (some of them, like carrot, are words, but most of them are numbers)
It appears even after killing that json though it's not fixing it. Gimme a few to search for things
unfortunately not a joke, i just laugh through the pain
prices are defined per-item, which is the base value of the item (equal to your shipping/sale value, and will affect purchase price as well unless a shop defines otherwise)
it's one of those tasks that's simple in concept and execution, but just takes a long time if you want to change the price of EVERY item
This look long but easy at least. So I find the Id of the stuff and copy paste this code one subsequent to the other one. No starting line or ending line. And save it. After that, how do I use that json? How do I call it? Content? Create a mod folder in mod like the map?
if you were a programmer you could write a small C# mod to append a multiplier to the end of the function that determines final ship/sale price
have you taken a look at all at the content patcher documentation?
pathos is very good at documentation, the author guide answers and walks you through the first couple of steps
Not at all. Actually I thought something "If for the map there is need fo a code, it's gonna be there already done in 2025". And actually it's not. I thought it was going to be easy now. But it's not. I'm not a programmer, not used to these things
alternately, Kain, go find a mod that does something similar to what you want and take a look at it.
honestly i'm surprised if there's not a mod that sets a modifier on the sale price of items
This makes actually alot of sense. Thanks for the advice. Any suggestion?
from a user perspective? sounds easy enough to slap on a config for a %modifier
i imagine most people are generally happy with the profit margin save options, not much demand i spose
I don't know any specific mods changing prices offhand, I'd search Nexus for something like "price"
u got 8 days i believe in u
knowing mod authors it'd have some unsearchable name like Shopping Spree or I'M RICH
Ahahah
either way, you almost certainly will need to still look at the content patcher documentation for at least something even if you work based off another mod, so it would still be a good idea to read it
otherwise, if you are unable to figure it out entirely just from an example mod, this mod is so simple that the only other way to help would be to make the mod for you
what is this price talk
did anyone actually mention maps
yes, they did
they made a map mod with the help of someone else, and now wanted help figuring out how to edit prices
I want things to be done easy. Not studying for hours just to to one simple thing 90% of modders already know how to do.
yeah fireredlily helped with creating a content.json/manifest.json for a map, which is why i asked how they got said map to work 
oh i see 
we didn't come out of the womb knowing how to write json
did u want to make everything cheaper or just a couple shop items
Ahahah no need just the advice are good
the documentation is simple enough and the specific stuff required was already linked and it would not take hours to study
you gotta have faith in yourself!
No that is true. But you know. It's like I'm medic and ask my customers to learn medicine to heal themself. I don't want to become a programmer. I just wanted some little help to do a little mod project
again, it's not programming, it is quite literally like writing an essay with some funny accent marks
Are you here to ask someone to make a mod for you? I'm confused
well, none of us are medics. this isnt anyoens job here
That wasnt the point
No no, just understand what to do
Now I know how to create it
Buttons helped alot with that
giving me the code done
That was what I was looking for
Thanks alot by the way
But After I finished it. I implement it the same as the maps mod? A folder in the mod folder, and call it conent?
if this was just for personal use and you werent gonna publish the mod on nexus or anything, you could even do it in the same content.json that your map mod uses
but if you wanted them to be separate mods, it would need its own mod folder and its own content.json file yes
(and its own manifest.json)
Maybe I'm gonna publish it if it works good as I plan it to be
Manifest is the same as the map one? Or I need another code?
ooh I have a tutorial for that!
its the same format, youy just need to change the name and description and uniqueid
A manifest.json is a file that gives SMAPI some basic information about the mod, so it knows how to label and load it. Every mod needs a manifest.json, no matter how big or small. So let's look at a basic one:
Name: the name as displayed in SMAPI. Title it how you like.
Author: you, if you're creating a new mod! In this case, this is from ...
Kall tutorials on the way 
Oh yeah thats easy, thank you very much! Now I know everything I need. By the way if you like to know, my mod is based on limiting the farmable are to not make you think "How much should be right to farm" and end up with billions the second month with blueberry. I'm gonna give you some available space (15x6) and let you unlock as you unlock upgraded farm utensils. Also the price of the stuff will change in order to create prograssion, instead of blueberries gameplay based.
Button already told me what I need
it sounds like an interesting mod! probably good to keep future publishing in mind then, im sure theres people out there who'd want it. i like makin my millions personally 
that said, not to hammer the point home too hard here, but for the rest of that idea that isnt simple price changes, you will need content patcher's documentation. there will be no way around that
starting small here will help though! bit by bit is how we all learned it
one patch at a time 
i have yet to make the sandwich command, huh, ig it's because we haven't had any fresh meat lately
It doesn't look like that for me on my perspective, but I'm probably wrong. I hope changing the sell price will do the trick. Can't think of what could make it go wrong or need added stuff
Ahah true
as long as you're prepared for the possibility!
I modded a couple other stuff, I know problems will arise 🤣
found the other part. This should work now
But I know You will be here with a cape to help me!
i will guide you to the fountain but i will not drink it for you
Also because I'm thirsty
just remember that https://smapi.io/json is your best friend if you're not using visual studio code
What's this needed for?
it will tell you if your .json files are formatted correctly and potentially point out content patcher specific errors
and if you ask for help with a .json file, you upload it there and send the link in here
popping in here just to ask a quick question, sorry if im hijacking the existing conversation—do y'all know if content patcher has a way to check a When condition for whether there's a path adjacent to each side of the tile?
im trying to make my own fixed gravel texture (the only other one on nexus i could find was from 2017), the left looks okay for paths but on the right looks much worse
tl;dr i was wondering if there's a token or condition that could apply to replace the image only if there's paths surrounding it
Visual Studio Code will automatically tell you if your json is formatted correctly
there is no token or condition for this
Tbh basically no
And there is not a way to make a texture look good for both cross and square
Hi Lyoko!
u can change the type
Yep, there are two files - CustomNPCExclusions.json and ExclusionChanges.json - in RSV which are still applying stuff that breaks the Winter Star gifter patches
this is something that would be beyond Content Patcher's purview
to make it connect like a floor
FINALLY now have Daia as both
dunno how it'll look though 
dang, gotcha. thanks will have to work around it
the existing one's solutions were to make all of the paths bigger but im not a huge fan of that because of how bulky it looks so i was trying to retain the thin look
you could try chu's suggestion
change the type?
(i leave it to chu bc i know nothing about floors and paths but also never feel bad about interjecting in the middle of a convo, multiple convos at once happen in here all the time
)
understood!
and i assume CP can also patch data? very new to all this even if im not new to coding lol
Oui
yea the data edit action i see
so gravel path (O)407 is FloorsAndPaths 5 which has "ConnectType": "Path"
use editdata + entries to change that to "ConnectType": "Default",
but yea no guarentee this works how u want 
it just make it connect more like flooring
man i shoulda slept ln
kinda hard to parse these docs, how exactly do i edit it?
"5": {
"Id": "5",
"ItemId": "407",
"Texture": "TerrainFeatures\\Flooring",
"Corner": {
"X": 64,
"Y": 64
},
"WinterTexture": "TerrainFeatures\\Flooring_winter",
"WinterCorner": {
"X": 64,
"Y": 64
},
"PlacementSound": "dirtyHit",
"RemovalSound": "hammer",
"RemovalDebrisType": 14,
"FootstepSound": "dirtyHit",
"ConnectType": "Path",
"ShadowType": "None",
"CornerSize": 4,
"FarmSpeedBuff": -1.0
},
{
"Format": "2.4.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/FloorsAndPaths"
},
{
"Action": "EditImage",
"Target": "TerrainFeatures/Flooring",
"FromFile": "assets/gravel.png",
"ToArea": { "X": 64, "Y": 64, "Width": 64, "Height": 64 }
},
{
"Action": "EditImage",
"Target": "TerrainFeatures/Flooring_winter",
"FromFile": "assets/gravel_winter.png",
"ToArea": { "X": 64, "Y": 64, "Width": 64, "Height": 64 }
}
]
}
Got it
instead of entries, do
"#id here":
{
"ConnectType": "Default"```
and obv close as necessary
gooootcha, thanks
{
"Format": "2.4.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/FloorsAndPaths",
"Fields": {
"5":
{
"ConnectType": "Default"
}
}
},
{
"Action": "EditImage",
"Target": "TerrainFeatures/Flooring",
"FromFile": "assets/gravel.png",
"ToArea": { "X": 64, "Y": 64, "Width": 64, "Height": 64 }
},
{
"Action": "EditImage",
"Target": "TerrainFeatures/Flooring_winter",
"FromFile": "assets/gravel_winter.png",
"ToArea": { "X": 64, "Y": 64, "Width": 64, "Height": 64 }
}
]
}
it doesn't look different at all LOL, so either it was a bust or i typed that hecka wrong
nope it worked, thanks guys, there's just not much difference lol
I wanted to put meteorites on my farm, but I realize there is not in any of the paths. Is it possible to implement it?
You use use the Farm Type Manager framework mod to spawn them
But there's nothing for spawning them using tile properties
At least not with just CP and Tiled, perhaps someone else has a map extension mod that has added that, I'm not familiar with all that MEEP can do
Is there any gold upgrade tool destructible outside meteorite I could use to block timely a place?
Like steel pickaxe can break boulders, and I can already place them
But I need something that can be destructed only by gold tools
Unless you want to make a C# component for your mod, your best bet is FTM
I'm not understandin how does it work. It kind of allow me to put code to enable meteorites?
FTM is a framework with a lot of options
Also this is something I do after starting the game. Is not something I can put by default in my modded map
You want something you can place while playing? FTM would allow you to spawn it on a new map and technically you could set it up to respawn and probably even to have conditional spawns but I don't think it has any way of letting you spawn it on command from in game
Could check spacecore
Not while playing. I want the metoerite to be there when I start the game
Then you could use FTM for that
That also look something you can do only after being in game
How so? It doesn't look like that. How can the metoerite be there since before I start the game? This way I can make other people play the mod
https://github.com/Esca-MMC/FarmTypeManager#large-object-spawn-settings
FTM might be too much to learn early on, I suggest finding another mod that uses it and looking at how they've set up their content
Only one I know that spawns a meteorite is SVE and that's a really bad mod to use as an example, it's just too big
This looks too much
It's certainly a lot, I think SpaceCore is technically more
I hate the fact that to mod even easy stuff on this game things get this hard
This is still pretty easy
All these frameworks and their documentation and stuff has been set up as a means to let people do things that would normally be impossible without C#
My earnest suggestion is to take your time, learn at your own pace, find some examples and try to understand how they're doing it
If you don't have the patience for that, you can always try commissioning someone if you have the means
If you're okay with it being a level 3 obstruction rather than a level 4, you could just use a boulder
try adjusting CornerSize too
iirc that value makes floors overlap more
So how goes it, everyone?
its not festive yet atra 1 more day
No because I need it to create progression. Boulder unlocks level 3 and meterite would have unlocked level 4. This take away fun from the intended gameplay
Is it possible to change properties of something like bush
Destroyable only by gold?
I'm festive early!
I throwed myself in the bed angry and almost crying as a solution
I think you should make a mod based on what you can do first, instead of trying to make yourself do things based on ideas that you dont know are feasible at first
It's only through experience that you can figure out what is or isnt realistically doable
This is why it feels totally hard to you
Not really. I don't make a mod "Just to make a mod". I have something planned in my mind, and trying to understand if it's doable. Sadly looks like its not
Or try to see the mod-making experience as something worth doing for its own sake so the exploration can be enjoyable rather than frustrating
Oh, Frontier Farm from SVE does this for the Grandpa's Shed
(me everytime i scope creep)
I'm always having ideas for stuff I have no idea how to do but I love learning how to do it so it's good
Much smaller bit of FTM to look at
You start the game and the meteorites are already there?
That said, FTM is still a lot, you just need to have patience and make a concerted effort, no learning is fast
Yes
It's part of the progression locking for the farm
Downloading and checking it right now. Maybe you filled my heart with hope
I cannot even manage to make the map start. The game doesnt read it. But this is not really a problem. I understand it's not something I'm gonna easily copy from there. It's not something at my level
One last idea I had. Is it possible to change the terrain of the map during gameplay, under particular circumstance? (Like first time you upgrade to gold)
Yeah if there's a mail flag for it I think you could. Not in real time on the map the farmer is on, but on another map.
This can work. I Just have to change map and come back and It Will update right? Can you tell me how?
You must live in the North Pole or something... almost everywhere I go, it's been festive since the beginning of the month.
Write a trigger action that makes use of a game state query to check for mail flag.
Nope ignore that. Needs to be a new content patcher patch with a when condition.
No sorry I give up. This looks like hours and hours of work.
Yes it is. Every mod is, at least at the beginning.
(Unless you're Atra but Atra you're an outlier!!!!)
Only for this game. I modded other games that are way way easier
takes time to learn a craft to the point of making big things
What games? I'm curious about that.
Bloodstained, shining force 2, something else I dont remember
(my mods only took a couple hours each but my mods are tiny C# mods, the mod you were describing seemed to want to expand/rebalance the whole game, which will obviously take a
long time)
To make an example. In bloodstained if I want to change price, I go in that file, open, change the number, close. Finish
(sigh) "why can't I just go and make changes directly to the game"
Not too much, and I know what to do, and it's doable.
in… what file? are you editing the game directly? bc that would conflict with every other mod
Well that's not making a mod, that's just editing the game files.
One more thing. I remember I added furniture to the house with the map properties, wouldnt be possible to place the meteorite with a coordinate as well?
yeah I see why you'd think those are easier. the equivalent in SDV would be editing the XNB files, which is severely frowned upon
You can do that in Stardew if you want to edit the xnb files.
No you repack apart in mod format
Er... wrong command. What's the command again?
!xnbzola
XNB mods often break the game and are not recommended. See Modding:Using XNB mods for more info (and a list of Content Patcher alternatives), and you can reset your content files to fix problems caused by XNB mods.
For mod creators, see Modding:Editing XNB mods for help unpacking & editing them (including for use with Content Patcher).
Modding the game
Easy mod. The effect is the same
Even Unreal/Unity modding and so on still requires you to make a pak to replace the content.
Why so? Creates problems?
What I can do, the meteorite thing? How?
.
Yes thats what I said, I repack apart in mod format (Pak)
Got it
The Content Patcher process is way simpler than dealing with paks.
Not recomended though
Creating the code from scratch is not!
Maybe the thing you want to change isn't actually a simple data change, but that's another problem entirely.
Content Patcher mods aren't code, they're a manifest and a content.json file.
regardless, that’s just not how stardew modding works nowadays… it’s okay to decide modding stardew isn’t your thing or to make your scope a bit smaller
Those are codes in eyes of people like me
I'm inbetween giving up or doing it without the meteorite and that's it
stardew doesn’t have a nice program to edit mods with because stardew wasn’t made in an engine like unity, it was written from scratch in C#. That means those same tools just don’t exist, but if you’re willing to do a little bit of learning, the text-based mods that you’re incorrectly calling “codes” can be very intuitive and easy to write
If using content patcher at all is your obstacle, there is not really anything you will be able to do.
Everything else is going to be harder for you than content patcher is.
otherwise, if you aren’t willing to do that learning, then yes you’re out of luck because like aba said all stardew modding tools are at least as “hard” as CP
Well, to the extent that MonoGame is an "engine", it's a bit of a stretch to say "from scratch", though certainly more so than a Unity or Unreal game.
With experience probably yes. But I wasn't aiming at getting alot of experience. I wanted it to be easier. Sadly it's not
Depens if the code is easy to give like the map one
(didn’t want to complicate things by explaining what a library like that is lol)
Anyway, this is pretty pointless. There are tons of people here eager to help novices but if all you've got to say is "it should be easier", well, it ain't.
I imagine you'd need to spend a lot more time if you want to actually create a custom map for Bloodstained.
I understand the concept. Still complicated stuff to compile. It's not like there is a basic and everyone start from there. like "here is the code to change price". You either know it, somebody tell you or nothing. It's hard if you don't know
It's going to be really hard for you to support any mod users if you decide to put a mod on Nexus that you didn't actually write (and don't understand in any way).
I just modded the number based stuff (Damage price and so on)
[[Modding:Index]] a lot of info can be learned from information that's been compiled from others, nobody just knows about modding though, you have to learn it one way or another
This is actually true
there is detailed documentation people pointed you to several times that you could ctrl+f to look through… it’s okay not to want to mod stardew but we keep giving you the tools to do what you want, so either you want to do it or not atp
Don't get it wrong, I really love all the help everybody is trying to give me. Really. It just break my brain to read through all that stuff. It's a limit of mine.
Also outside of the meteorite thing, I managed to know how to do everything else I needed
I will think what to do, but probably give up on the meteorite thing
rome wasn't built in a day n' all that, my own actual first mod wasn't off the ground for 2 months 
I found this save editor. It doesnt let you put anything, but it let you change the code of what is already in there. Would it be possible to change the code of the rock into the code of the meteorite, making it spawn like that?
this is a save editor. it doesnt make mods
you might be able to do that but it wouldn't help anyone else
it would only be for your save
And being that it's a save editor, you risk corrupting your save
That's just the last thing I can do at least for myself. Or put a save file with the mod to use together for others.
people are not going to want to download a save file with their mod
I give a save with the mod. That's the only thing I could do.
Then they will just play it with the rock instead of meteorite
I'll give them the option
its not even an option. it would mean they cant make their character, choose their pet type, their favourite thing, their customization, bundle preferences, multiplayer cabins... nothing
look, you can upload whatever optional files you want, but a save file is not a worthwhile one
Thats true. I usually don't care too much about aesthetics, that's why I dont think about it
Would you be able to help me try this thing of transforming a rock into meteorite? I would just love to see it work
you will find that people care deeply about aesthetics in this game and would not be happy with all that being decided for them in favor of a single meteorite
im not familiar with FTM
Oh I thought they were asking about the save editor
I know even less about fucking with a save editor than FTM lmao
i wouldnt be interested in figuring out a save editor either
Yeah it makes sense
download Grandpa's farm, open up the FTM component, search for Large_Object_Spawn_Settings
for an example of a farm that puts a meteorite somewhere
{
"ObjectTypes": [
"Meteorite"
],
"FindExistingObjectLocations": false,
"PercentExtraSpawnsPerSkillLevel": 0,
"RelatedSkill": "Foraging",
"UniqueAreaID": "Farm Meteorite",
"MapName": "Farm",
"MinimumSpawnsPerDay": 1,
"MaximumSpawnsPerDay": 1,
"IncludeTerrainTypes": [],
"ExcludeTerrainTypes": [],
"IncludeCoordinates": [
"18,26;18,26"
],
"ExcludeCoordinates": [],
"StrictTileChecking": "Medium",
"SpawnTiming": {
"StartTime": 600,
"EndTime": 600,
"MinimumTimeBetweenSpawns": 10,
"MaximumSimultaneousSpawns": null,
"OnlySpawnIfAPlayerIsPresent": false,
"SpawnSound": ""
},
"ExtraConditions": {
"Years": [
"1"
],
"Seasons": [
"Spring"
],
"Days": [
"1"
],
"WeatherYesterday": [],
"WeatherToday": [],
"WeatherTomorrow": [],
"GameStateQueries": [],
"CPConditions": {},
"EPUPreconditions": [],
"LimitedNumberOfSpawns": 1
},
"DaysUntilSpawnsExpire": null
},
!json please do not send long json snippets in here
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 uploader
if something like that is too complicated, then you dont really have any choice but to learn
Kain, several people have tried to provide advice for you. There is no "easy" way to make mods.
Or give up. All the options except hours and hours of time looks unavailable
ignore every field that's empty of null
read the rest
their names should be self explanatory
Just don't hate me for not wanting to spend this amount of time for this thing. I wish it was different. It's a mess instead
there is not really anything anyone can say in response to that when it is said again and again. it would be nice if it was easier or different, but it isnt
There's no hate, but understand that coming into this server and saying "it's too complicated" over and over is not going to change anything.
It is what it is.
Stardew modding is a nice bit simpler than modding for other games 🙂 It takes a little bit of time to learn, but really I think only a few hours would be needed if you stuck to a guide first / went through a guide.
But I don't know what to do with that, even if I copy, where, how, whats missing? It's not just that. Things lead to things that lead to things, and hours and hours pass by, and in the end you don't even know if you are doing it right, or just wasting time. It's exahusting
Then modding may not be for you
you dont have to do it
This game not for sure
nothin wrong with deciding that other things are better worth your time
I can mod easy things, not hard ones
hey loves I have a quick question regarding Tiled app. I'm having as issue where the "Custom Properties" are disappearing when I click away from the Layer and back 
Is there something I'm clicking on that's wrong? or maybe just clicking in the wrong spot to make it show up (video attached)
Oh I made people angry by saying that. I didn't realize that. Sorry that was not my intention at all
what you are actually looking at that's disappearing there are the map properties, not layer properties
Make an object then add custom_properties to that
i think the properties you are seeing "disappearing" is actually just Tiled switching away from the map props
Oh wait Im bad maybe haha
If you click "map" in the top menu and then "map properties" it will get you back to what you were looking at
Thank you!!! "Map Properties" fixed it 
I was taking a peek at the default house for Haley to see how to try to make a warp back
Thank you guys ❣️
honestly you could've made it by now if you put the same effort into making the mod as you've put into saying it's too difficult hahah
it's not half as bad as you're making it out to be
This is fun but not entirely true 🤣
I whine alot I know sorry about that ahah
back in my day, we just edited hexadecimal values willy-nilly with no guidance whatsoever and we LIKED it 
You kids and your "not editing game files" and "JSONS in readable english" are spoiled, spoiled I tell you!
hex editing static memory would be easier than some of the schenanigans we are doing in harmony patches
Oh my yoba, Sinz, you can't just come in here and interrupt my grumpy old man moment with actual programming! 
back in my day if we wanted to override a method, we had to unpack the jar file, make a replacement and repack the jar file, and then delete the META-INF so it doesn't appear corrupted.
Oh you wanted two mods to edit the same class, pick one or the other, not both
I do not remotely miss that stoneage era of minecraft modding
i miss deleting meta inf
yeah, Stardew is leagues ahead of the shit I was doing a couple of decades ago 
back in my day, we hex edited our Dogz and Catz, and god only knows how you figure out why it causes your dogs to pogo rapidly up and down with every step on springy legs
well, at least I sure couldn't figure it out
...that's the same modding I was talking about 
yoooo Petz modding! I was bad at that one, never got the hang of that
Holy crap I did not expect to find someone else that even knew what it is 
It's a big testament to Pathos along with the mad scientists that made HarmonyLib, that we have the best modding scene ever.
That is both simultaniously the most powerful out of any other scene (even more than many with first party support), but also the most accessible and easy to use
dang sproingy dog
it continues to amaze me with how low the barrier to entry of SMAPI modding is, and yet <10% of mods do it because theres and even lower barrier way to do it
That looks very logic. You look for the most efficient way to achieve a result.
we had dogs whose eyes were not attached to their head and meowed for some reason and we LIKED it
to be fair, I was like... 8. But boy I came up with some disasters
one number changed in the wrong place, all it takes
the very first computer virus i ever got was downloading illicit dogz and catz off of geocities websites
oh no LOL
you old timers and your petz and hex codes. It's like you didn't even know the correct way to learn programming is from random phpbb sites, making your own custom tumblr themes and trying to hack the school computers and succeeding but we don't talk about that 
Think I got mine off the banner ads. One of those asshole casino viruses that just afflicted you with casino popups all the time. (You'll take my adblock out of my cold dead hands)
I had so much fun reading my classmates essays in front of them because the school had no security on the user folders
mine had security, but it was just making it impossible for us to get to the command prompt and they didn't think to protect anything beyond that.
...I eventually accidentally found a way into the command prompt (windows shortcuts are much more powerful than they seem, as it turns out)
Mine had restrictions on directly launching command prompt, but not on running batch scripts (which could just execute whatever you type)
My old school's security was just that... which was "bypassed" with a simple ohno.bat containing cmd.
...yes.
What you also said.
and also most was on filename patterns, so if you renamed the exe to something else, it now works
idk if I ever tried running batch scripts directly tbh, but I'm pretty sure they were blocked somehow. Either way, I could run them using a shortcut and then do exactly what you said and write cmd lol
Only schoolwork on the computers was a typing program for us, maybe some games. But one of them had a short in the plug that sent me shooting across the room when I electrocuted myself plugging it in, so that was exciting.
they got lucky by having the teacher accounts on a different drive 
I was turning them on for younger kids, so I'm stunned and I hear this little boy yelling "SHE'S DEAD"
I did the ICT GCSE and the computer science a level so I did have to do some work on the computers, though my CS teacher didn't know the difference between C++ and C# and I ended up doing a full project in C++ despite not knowing a lick of it (though I also don't technically really know any C# and have now written three mods in it, so... 💀)
...probably felt a little bit like it too, huh
Little bit! Don't know why that monitor had a metal plug, but it made an insulation failure a real damn problem
tbh the barrier to entry for smapi makes me feel leagues dumber than i was back as a child, using mysql and hamachi to put up private servers for mmos and all that
and now i can't even c# my way out of a trash can
Maybe if you wear the trash can hat
It will send you good vibes
And you can escape the trash can
why do you want to escape the trash can. Have you considered changing your scope to just be staying in the trash can instead
yeah that's my home idk what you mean #1293116865354141706
i'm only in it for the hat 
tbh 98% is me yapping, the other 2% is other cheetos yapping
wow
you're a cheeto, don't lie
you'd never get me to willingly become one
unless despercheeto is approved
Never a hint of Cheeto dust?
not unless the dust becomes either red or purple
What if you eat too many carrots?
i do miss my red
purple cheetos could be a thing. idk I'm not american but I assume that's something that's done there
yeah they just taste like weird chemical spice to me
good colour tho
MOOD )-:
I miss my purple pfp
They taste like pain, and don’t have any flavor to it
you could ask for your cheeto role to be removed
It’s very weird because normally spicy food has flavor beyond being painful
tbh it's only useful for publishing and getting the private git
But — commands 
there should be multicoloured cheeto roles. the true honour of being a cheeto
Prismatic Cheeto
ive never felt a strong need to be able to make commands
When we first got the power I made a lot
I can't even get the git yet 😭 I've been cheetofied and what do I have to show for it?
ive already got !json, !log, and !ask, what more could i need
I just want despercheeto role so I can have purple back in my pfp 
But now we have the important ones already
i've made like, three, and i forgot what the other two were
I made like 40 from living in farmers channels lmao 
So the commands thing is less important now imo
Sorry to muscle in on the convo here but I've got a couple questions, a mod I've been working on using Sprites in Detail required changing Penny's 10-heart cutscene in order to sidestep a bug with SiD and the swimming state, so:
- What I've currently done is create a new fake Penny NPC that takes her place during the cutscene, and then did an EditData on her cutscene dialogue. Is this the proper way to do things or is there a better way?
- In the case that I do have to do it this way, how do I ensure this still works in other languages of the game?
Real………………………..
Please muscle in, we deserve it
i thought commands were supposed to be a "dont overdo it" privilege
I didn’t overdo it there’s just that many commands needed 
wait sidestepping swimming bug? 
Events are pain, I think you did this right if I understand correctly
Yeah SiD sprites drown
i think Sprites in Detail made her disappear or something
but i was also gonna say that sounds like a good workaround to me
You’ll probably need to specially edit every language iirc? Like iirc the actual game translations just slap those raw translated strings into the middle of events
if someone takes mothman out for a datenightredux well they're gonna be sorely afraid to know--
Idk that sounds in character for mothman at least
I desperately need to know what you're talking about
Oof, so I have to make an EditData for every individual BathhousePool file eh
mothman is written fully with sprites in detail
I mean they should be identical edit datas
M
thman?
Assuming you set up i18n
if the entry key is the same across all of them, you just need one patch with multiple targets
glad I'm not the only one who wasn't aware that a mothman mod existed
actually im not confident in that if targeting specific languages is different with CP
so possibly ignore me. possibly dont though
i'll derail later, but i'm pretty sure you can set targets but i have no idea how to target the other languages
there is a TargetLocale field since CP.... 2.3.0 i wanna say?
Try a patch export if you aren’t sure if you’ve edited everything
oh but if you dont use it, it applies to all localized variants
!patchexport
A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.
- Load up a save (with Content Patcher installed)
- Type
patch export <FILEPATHOFTHING>in the SMAPI console and hit return - Look in your
patch exportfolder in the game folder for the relevant json file or image - If it's a json file, you can share it via smapi.io/json. If it's an image you should just be able to look at it.
(and all unlocalized)
Sounds like maybe you’re fine then?
If it’s already targeting all languages?
But patch export to check
i guess that makes sense its not like people have to do specific edits for like, StringsFromCsFiles
Are you editing the whole event, or just targeting the fields where her dialogues are in?
that reminds me, I was gonna investigate shovel mod but then I realised I'd have to investigate atracore first and then I realised I'd have to investigate what exactly makes smapi say a mod is no longer compatible, since atracore doesn't seem to be in the mod compat list in the smapi repo. And then I think I just left my computer 
Uh Atracore should be on the list
Atra said once you have to disable the code signing stuff to get their mods to compile
tbh i would just detangle atracore from shovel
it's what i planned to do when i eventually got around to GIMA (ginger island mainland adjustments)
...I only just realised there are multiple mathpeople here
But if you investigate, I recommend making sure to look at the branches on their repo to check you’ve got the latest (plus yes disentanglement is probably a good idea)

Ha
there's a 3rd one
We got one!
There were 3 last I checked
Who's our third?
What's that, two victims so far? Lol
i know festive and classical, who's the third im forgetting
I am not Atra, but I do have fairly good knowledge of their mods
I was replacing all of the sprite movements with her phantom, the dialogue didn't need changing, is it possible to not include all of it in my mod so I don't step on the other languages?
uhhhh i think it was MaxRW?
Relativistic I think
oh yeah
yeah, I figured github is doing that annoying thing where they automatically pull up a random old commit or branch
relativistic
Part of it is that I forget what branch structure Atra was using, but there are some branches with some stuff partially updated for 1.6, which might be useful to look at
Do I know relativistic?
you'd have to dig deep into the fields to specifically target the one dialogue line and that will break if anyone else were to touch that event
Assuming the amount of delimiter is the same, you can replace just the movement parts without touching the dialogue part at all.
disentanglement was going to be my next step anyway, but it did make me curious about how smapi checks compatibility
oh was it a movement edit, or a dialogue edit? 
Thank you for letting me know! will do. I fully expect this project to go nowhere but I will let you guys know if I manage anything lol
SMAPI usually just goes by the list to start with right? But I think also looks at references to methods that don’t exist
I did something like this (but just altering the dialogue parts without touching anything else). Let me take an example...
I'm afraid I don't really know where to start for that, what should I be looking at for the proper steps?
it's made a tiny bit tougher by the fact I never used shovel mod pre-breaking so I don't quite know what its capabilities are
ReplaceDelimited should be useful for the event editing
2.1.0, and could have been in 2.0.0 but there was enough modpocalypse for one update
Like there’s “not loading because it’s on the decompat list”
They were working on the spoilage mod
And there’s “not loading because mod too broken”
it definitely checks the list, but at a glance I couldn't see it do anything else that led to the exact line I got from atracore

