#making-mods-general

1 messages · Page 145 of 1

royal stump
#

the game generally creates a new instance of the buff at application time, e.g. Game1.player.applyBuff(new Buff(...
reusing the same buff instance multiple times might have side effects

high maple
vernal crest
#

@silver sand Here's a quick summary of it

oblique meadow
#

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

velvet narwhal
#

Looks like your water is on a layer below the wood, what does your layer setup look like

vernal crest
#

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)

rotund elm
#

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

velvet narwhal
#

SDVpufferthink I can't remember any frameworks off the top of my head for rings

oblique meadow
#

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

velvet narwhal
#

Trinket tinker exists but obviously only for trinkets

rotund elm
#

Yea im struggling out here XD, wish I could with CP alone idk why it doesn't have that functionality SDVpufferwaaah

brittle pasture
#

Item Extension has a ring equipped trigger action

vernal crest
#

SpaceCore has that feature doesn't it?

#

Oh is it IE? My bad

brittle pasture
#

but I'm not sure if that carries over to a new day

velvet narwhal
#

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

vernal crest
oblique meadow
#

I need both back layers so I just have to tinker around it. But thank you all very much!

calm nebula
#

Spacecore should have custom rings

velvet narwhal
#

Just also realize that Buildings2 doesn't mean it'll give the layer blocked paths, only Buildings does that

calm nebula
#

Not that I know how it works lol

oblique meadow
rotund elm
#

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

rotund elm
#

but can I just use them directly in my CP mod

brittle pasture
#

yes, it's just a new trigger that you can use in Data/TriggerActions

latent mauve
rotund elm
#

ok awesome and to use them I just need to add IE as a dependency right

brittle pasture
#

yes
so you'll do something like:

  • on ring equip, add buff and add mail flag increment a custom stat by 1
  • on day start, if has mail flag stat then add buff
  • on ring unequip, remove buff and remove mail flag decrement 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)
calm nebula
#

That sounds like a real faff lol

#

And doesn't account for two rings

#

(Hides the AtraCore rings implementation behind my back)

oblique meadow
rotund elm
brittle pasture
#

if IE/some other mod has a "has ring" GSQ then it could be better, but I dont see it

velvet narwhal
#

If it works, ship it™️ if people get curious and look at the inner workings and you're embarrassed? Congrats you've grown

brittle pasture
#

...maybe increment stat instead of mail flag?

latent mauve
brittle pasture
#

then that can handle 2 rings

calm nebula
#

I personally would use Buildings2

vernal crest
oblique meadow
#

I'll take a look. As always appreciate the feedback all

rotund elm
#

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!

tiny zealot
brittle pasture
#

then use the PLAYER_STAT GSQ to check it for the daily moisturizer buff reapply

rotund elm
#

😂 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 SDVpufferwaaah

brittle pasture
#

you check the custom "number of ring equipped" stat that you define. stats are just arbitrary pairs of stat names to numbers

rotund elm
#

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?

tiny zealot
#

no, don't check the fishing level

rotund elm
#

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

tiny zealot
#

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

rancid musk
#

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

uncut viper
#

does it bother you as much as it would bother me that there has to be two different 1.6.15 folders

rancid musk
#

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 🤔

calm nebula
#

Nah, it's a perfectly understandable hotfix tbh

rancid musk
#

That is, there's no difference that matters for the decomp I should say

uncut viper
#

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 SDVpuffersquee aka, not an important perspective

rancid musk
#

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.

uncut viper
#

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

uncut viper
#

i cant even see the repo but i also appreciate the effort into it

rancid musk
#

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.

uncut viper
#

oh, it wasnt working for most functions for me, local or otherwise lol. i didnt realize you were still on 7.x tho

rancid musk
#

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 😈

rotund elm
#

can anyone tell me which wiki page lets me know how to define a stat i can use with the player stat GSQ

uncut viper
#

like removing training weights

uncut viper
#

just doing IncrementStat YourStatNameHere will create it if it doesnt already exist

rancid musk
#

I am so tempted to use file-scoped namespaces

rotund elm
#

I see

uncut viper
#

this is the page for the action though

rancid musk
#

file-scoped namespaces would cause every single line of code everywhere to be changed though

uncut viper
#

"wow this mustve been stardew's biggest update yet, look at all these changes"

rotund elm
#

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

uncut viper
#

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

rancid musk
#

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.

rotund elm
#

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.

uncut viper
#

if there's a mod with triggers for equipping and unequipping a ring then that sounds doable to me

rotund elm
#

Item extensions

uncut viper
#

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

rotund elm
#

Yea, this has been really complicated which is why I keep giving up and coming back to it

uncut viper
#

actually it might not be that difficult, though you're right it's a bit complicated to think about lol

rotund elm
#

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

uncut viper
#

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?)

rotund elm
#

Yes

uncut viper
#

in that trigger, remove any of your custom buffs first, and then increment the stat

rotund elm
#

ok so remove the buff being added completely or add the removebuff action instead

uncut viper
#

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

rotund elm
#

Oh my god i did something RIGHT

#

XDDD

uncut viper
#

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

rancid musk
#

Hmm. Do I care if 1.6.8 compiles or not when using the new ILSpy

uncut viper
#

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

rancid musk
#

Because there are 248 errors and that's a lot to manually fix

uncut viper
#

without that I'm not sure how you would get this trigger to only happen with your ring

#

and not any ring

rotund elm
#

is that not why my specified buff is only applied when wearing my ring or is that some other functionality at play

uncut viper
#

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

tiny zealot
uncut viper
#

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

rotund elm
#

May Pathos bless us with ring functionality for CP in 2025 SDVpufferwaaah

uncut viper
#

One of my triggers in BETAS even sends rings as Target and Input items even

rotund elm
#

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

uncut viper
#

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

calm nebula
#

(Doesn't spacecore just support rings?)

#

I thought it did

uncut viper
#

¯_(ツ)_/¯

#

i don't know most of the little things spacecore does

calm nebula
#

Casey and I discussed this at some point; I don't know how it works but I know it's in there

rotund elm
#

I believe they have some way but its to complex for me and I believe it requires C# use

uncut viper
#

if I weren't on mobile right now I'd check

calm nebula
#

I would divorce the atracore equipment model and just release that if it wasn't deeply intertwined with....well

#

The fucking dependencies problem

uncut viper
#

(that said I probably will still make my own equipped trigger anyway for more than just rings)

calm nebula
#

Either that or I would have to hand roll the emit code lol

vernal crest
#

Someone has done ring buffs

calm nebula
#

I thought so!

vernal crest
#

They got help in here and got it working, I thought

#

And I thought it was with SpaceCore

calm nebula
#

May be worth asking Nova about it

uncut viper
#

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?

tiny zealot
calm nebula
#

Eli-and-Dylan nova

calm nebula
uncut viper
calm nebula
#

Like, the reason why it was AtraCore in the first place is because of the damn dependency management issue

vernal crest
#

No idea on that one Button

rotund elm
#

I'm looking into spacecore rn

tiny zealot
#

anyway i extremely don't have time for that, so maybe someone else will instead

vernal crest
#

But I'll see if I can find the past stuff

uncut viper
#

ive definitely seen people do general ring buffs before it's really the multiple levels thing that goat wanted that was catching me

calm nebula
#

AtraCore has very few actual affects on the game itself, it's more of a rant about corelib really

rotund elm
uncut viper
#

then spacecore can proooobably do it then I imagine

calm nebula
#

I think spacecore should be able to do it

uncut viper
#

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

rotund elm
#

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 wellSDVpufferwaaah

vernal crest
#

Fellowclown was who I was thinking of I think

rancid musk
#

ILSpy 9 + C#12 really showing off for this method.

calm nebula
#

Also check Eli and Dylan

rotund elm
#

Everytime I search mod authors on nexus it never works is there another way I can find their work?

uncut viper
#

ILSPY 9 handling interpreted strings or whatever they're called is very tempting

#

i don't think Nexus has a search for users?

rotund elm
#

it techincally does

vernal crest
#

I don't know if Eli and Dylan are on Nexus yet

uncut viper
#

I would just Google them plus "nexusmods"

rotund elm
#

ok ill try that

vernal crest
calm nebula
#

Cutie pair

vernal crest
drowsy pewter
#

nova is in this server

calm nebula
#

Damnnn that is a low Nexus number

vernal crest
#

Nova's definitely a good one to use for examples, he tends to know what he's doing.

calm nebula
#

Especially with events tbh

vernal crest
#

Yep definitely

rotund elm
#

Ok so I see they used "BuffIdToApply"

vernal crest
#

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

brittle pasture
#

(welp, that looks infinitely easier than my original idea. I had assumed SC doesnt have it)

rotund elm
#

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????

calm nebula
#

Yeah

rotund elm
#

I appreciate your help regardless!

#

OH MY GOD IS THAT ACTUALLY IT

#

im gonna go bang my head on the wall right quick XD

uncut viper
#

no support for multiple levels with multiple rings though, which is unfortunate

rotund elm
#

ILL TAKE IT

#

i have been at this for months 😭

vernal crest
#

Better test it before you get too excited

uncut viper
#

definitely do still take it, users are not likely to care if they dont know what the original plan was anyway SDVpuffersquee

rotund elm
#

remind me to send spacechase0 some flowers or a flippin coffee XDDDD

#

imma test it right now

oblique meadow
#

Quick question all. in 1.6 is it possible to have both freshwater and ocean fish on a farm map?

tender bloom
#

Yes, pretty sure

rotund elm
#

Yep!

brittle pasture
#

yea, you can define multiple fishing zones

tender bloom
#

Look at fish areas

brittle pasture
#

check out Data/Locations' FishAreas

tender bloom
#

Can’t remember if beach farm does it but Forest and Island west both do

velvet narwhal
#

Beach has uh, a query?

brittle pasture
#

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"

rotund elm
#

moment of truth yall....

#

im so scared

teal bridge
#

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.

rotund elm
#

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

uncut viper
#

cant offer much help without seeing your json

rotund elm
#

Ill upload my .json rq

uncut viper
#

you need BuffIdToApply not BuffToApply

rotund elm
#

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

rancid musk
#

Whew. The result of re-decompiling 1.6.8 with the updated ILSpy is... a lot, lol

rotund elm
#

maybe I need a context tag?

uncut viper
#

i unfortunately am not familiar enough with buffs and not not-on-mobile enough to be much help here i think

rotund elm
#

That's alright Button you've been a major help already ❤️

#

I wouldn't have made it this far without everyone here!

vernal crest
#

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

rotund elm
#

So I need to put (O) infront? I'm not sure what the difference between the 2 is

vernal crest
#

Yup, that's right. So instead of this:

"{{ModId}}_PrismarineRing": {
          "BuffIdToApply": "{{ModId}}_FishermansBounty"
        },

make it this

"(O){{ModId}}_PrismarineRing": {
          "BuffIdToApply": "{{ModId}}_FishermansBounty"
        },
rotund elm
#

Ok I am on it!

vernal crest
#

And I am really hoping that is all because I am too tired to scrutinise it more closely and nothing else is jumping out

rotund elm
#

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

vernal crest
#

Make sure you test with new instances of the rings

#

Best to test with a totally new save, really

#

Just in case

rotund elm
#

Ok I will do that

#

Abagaianye... absolutely a genius XD its working splendidly

#

Thank you so much for pointing that out

vernal crest
#

Awesome :) Even the removing of the second ring is fine?

rotund elm
#

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!

vernal crest
#

I'm glad we got to a point you're happy with :)

rotund elm
#

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

vernal crest
#

Nice

rotund elm
#

Is it possible to add 2 When conditions so if cooking is enabled fish are also required to be enabled?

fossil osprey
#

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 ^^'

rotund elm
#

Im about to test it so I'll let you know if it works how I intend it to

uncut viper
#

you can put as many conditions as you want in a single When block so long as the key is not identical between them

rotund elm
#

Awesome then it should work as I intend, thank you!

sullen sun
#

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.

brittle pasture
#

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)

sullen sun
#

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.

brittle pasture
#

the entry itself is fine

#

I'm looking at the recipe to see what's missing

#

your unlock condition isnt valid

#

(the last entry)

sullen sun
#

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.

brittle pasture
#

hmm though if it is set to an unknown value it should default to "unlocked via some other method"
what's the error?

sullen sun
#

Let me grab it.

brittle pasture
#

(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)

sullen sun
#

Honestly I'm not sure about that. MFM has worked pretty well and there's already 3 languages of localization stuck in there

brittle pasture
sullen sun
#

(Moving it over from JA has already been a real pain)

brittle pasture
#

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)

sullen sun
#

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.

brittle pasture
#

yep, that's a zero

uncut viper
#

it should never be a 0

brittle pasture
#

and yeah, syntax error as well, missing a closing bracket

uncut viper
#

that error in the parser is bc you're missing a closing }

sullen sun
#

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

uncut viper
#

(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)

brittle pasture
#

yeah JA does have a very nice data format

#

especially for gift tastes

#

but as said, still deprecated

sullen sun
#

gooood yeah gift taste moving is going to be a fat nightmare

brittle pasture
#

Mr Ape/Pathos didnt have enough time to move every game asset to the nice JSON object format

#

maybe for 1.7 😌

sullen sun
#

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-

uncut viper
#

im not familiar enough with how MFM works to know if thatd happen or not

sullen sun
#

Honestly I'm just hoping it doesn't, but code is fickle, and I cant guarantee

calm nebula
#

Anyways

sullen sun
#

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

deep cypress
#

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?

brittle pasture
#

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

tender bloom
#

Like, MFM is completely fine and working

sullen sun
#

That's awesome to hear!

tender bloom
#

Digus is still around and occasionally stops by

deep cypress
#

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?

tender bloom
#

Down and right is usually fine

#

Especially if this is a personal edit, it’s totally fine

deep cypress
#

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?

latent mauve
#

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)

deep cypress
#

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?

tender bloom
#

Yep!

#

Helps reduce confusion

deep cypress
#

Thx!

brittle ledge
#

(The same one they mentioned above, actually SDVkrobusgiggle )

sullen sun
#

Will do-

sullen sun
#

I'll make good use of this

rotund elm
#

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"?

sullen sun
#

I'm pretty sure you need to use Carrot's internal ID.

#

A simple interger rather than the name

brittle ledge
#

Does Carrot have one since it's a 1.6 item?

#

Settle the heck down, discord, I don't need an echo

sullen sun
#

Good question (haven't got used to that lol)

sullen sun
#

You can check the id using SMAPI's list_items command

#

Oh dang

brittle pasture
vernal crest
#

Or just opening objects.json

sullen sun
#

That's amazing lmao

brittle pasture
#

int ids stopped being a thing in 1.6

sullen sun
#

For all previous objects too or just new ones? SDVpufferwow (Totally not checking in game now)

brittle ledge
#

All the old items are still under integers.

sullen sun
brittle pasture
#

(albeit strings)

#

so "521", not 521

#

only matters in C# code though

rancid musk
#

Those are fun numbers to have on a PR.

deep cypress
#

.15? Is that out?

sullen sun
#

Do you need to set up Content Patcher buffs separately now? Not in each object's data entry?

deep cypress
#

(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)

rancid musk
#

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.

deep cypress
#

Thanks! Imma have to go check this out what is the changes in the files! Thanks!

brittle pasture
#

the standalone buffs in Data/Buffs are used in other stuff (trigger actions, C#, etc.)

sullen sun
#

Ahhh gotchya

regal flame
#

i imagine if i actually pinged id get beaten with a stick

#

insane

gentle rose
rancid musk
#

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.

sullen sun
#

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.

brittle pasture
#

Use curly brackets for CustomAttributes

gentle rose
#

also you have an extra closing bracket

sullen sun
#

Fixed the extra as of now

#

And swapped out the brackets for curlies so lets see

dreamy cedar
#

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?

brittle pasture
#

Instanced locations use the diplay name of their parent location

#

in this case you want the parent building's name

gentle rose
#

(nvm, read it wrong)

brittle pasture
#

which I think you need to get from the data

#

if there's no field in Building for it

grand gale
#

Umm every time I try to send a screenshot I got muted

brittle pasture
#

even in this channel?

iron ridge
#

are you trying to hide the link using the markdown linking thing

grand gale
#

yes especially in this channel

uncut viper
#

you cant use markdown

#

not for links

iron ridge
brittle pasture
#

this server forbids that lol

grand gale
#

oh okay

brittle pasture
#

you will get bonked

uncut viper
#

its used too much for spam/scams

sullen sun
ocean sailBOT
#

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.

sullen sun
#

(The two other warnings are just because I have some empty fields in an in-progress json)

dreamy cedar
grand gale
#

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?

brittle pasture
#

if not in the class then I think GetData().DisplayName or something like that

#

going off memory lol

brittle pasture
#

(try putting square brackets around the Buffs entry's curly brackets, should work)

dreamy cedar
sullen sun
#

enjoy me finally having what I need to dip out for the day and stop botherin' y'all

#

I seriously appreciate all the help SDVpufferheart

versed wyvern
#

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?

oblique meadow
#

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.

oblique meadow
#
                [
                    {
                        "MinDailyWeeds": 2,
                        "MaxDailyWeeds": 5,
                        "FirstDayWeedMultiplier": 15,
                        "MinDailyForageSpawn": 1,
                        "MaxDailyForageSpawn": 4,
                        "MaxSpawnedForageAtOnce": 6,
                        "ChanceForClay": 0.03
                    },
                ],
                        ```

This is all I added before the error started
uncut viper
#

!json

ocean sailBOT
#

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.

uncut viper
#

send the whole json

gentle rose
#

or an item query

oblique meadow
#

So it was generating forage after i added:

        "SpawnBeachFarmForage": "T"```

My goal was to increase the output it was generating
gentle rose
#

also all the stuff you have inside the forage block right now shouldn't be inside it, it should be after it

gentle rose
oblique meadow
#

Ok. I think I figured it out. Thank you!

#

good ol' user error

sharp scroll
#

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?

wanton pebble
#

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

sharp scroll
#

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.

brave fable
#

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

wanton pebble
#

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!)

brave fable
#
  • 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 Format field 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 Format field doesn't take game versions as a value, so 1.6.0 would be way out of date. as you said at the start, the latest version is ideal (2.4.4 currently)
  • 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
sharp scroll
#

Thank you! I'd bet that's the key factor.

wanton pebble
#

oh yeah, first day additions

#

I still don't know why everyone's just super tired day 1

brave fable
#

god i wish we could force schedules to load on their first day somehow

wanton pebble
#

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"

brave fable
#

drives me nuts having to iterate a day on my Perfect Testing Save(tm)

wanton pebble
#

Before I bug Pathos

#

Why DOES everyone sleep on day 1?

#

I thought in 1.5.6 they didn't

tiny zealot
#

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

knotty phoenix
brave fable
#

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

wanton pebble
#

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?

tiny zealot
#

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)

calm nebula
wanton pebble
#

Unique Winter Star - RSV takes prio right now and that doesn't use any NPC movement setup stuff

sharp scroll
#

This fix worked. Now behaving normally. Thank you!

devout otter
#

(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..)

brave fable
tiny zealot
uncut viper
#

to decide where to spawn them, maybe

brave fable
#

ah but we have Home values for that now

uncut viper
#

arent 0 schedules used to directly spawn them somewhere else at the start of their day though

brave fable
#

well yes, but i'd imagine Home is more suited to being a default spawn location value

uncut viper
#

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

wanton pebble
#

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.

velvet narwhal
#

SDVpufferthink i assume you have the correlated winter gift list, right?

wanton pebble
#

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

velvet narwhal
#

considering you're the trigger master, that's literally the only thing i could think of- KEK

wanton pebble
#

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

brittle ledge
#

SDVpufferthinkblob that's weird, why would it be bothering NPCs not using it?

wanton pebble
#

I don't know!

tiny zealot
#

it might be doing some kind of blanket reset

wanton pebble
#

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

desert crane
#

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)

wanton pebble
#

sell price is almost always in shops

#

Do you guys know if Esca's okay with pings?

wanton pebble
desert crane
velvet narwhal
#

suspicious probably

uncut viper
#

i almost @ 'd esca to ask to be funny but i dont actually know if they are

desert crane
uncut viper
brave fable
#

mentions:esca has like 3000 results, you're good

uncut viper
#

you need to use content patcher to use EditData and modify things in Data/Objects

brave fable
#

what's one more for the road

desert crane
brittle ledge
#

I also dropped it where Atra's like to see it, Lyoko, just in case the C# component is doing something

desert crane
wanton pebble
#

I found the problem tia

#

we still have a CustomNPCExclusions.json

uncut viper
#

look at the link Jamore sent

brittle ledge
#

ohhh

#

so it's an us problem SBVLmaoDog

wanton pebble
#

yep

brittle ledge
#

gonna throw that in dev rq

velvet narwhal
#

specifically, you'll need to SDVpufferconstruction dig into the price part of an object's fields

uncut viper
#

theres no digging needed, just use Fields instead of Entries

velvet narwhal
#

oh true

desert crane
velvet narwhal
#

how did you get your map to work?

uncut viper
#

you should read up on Content Patcher's documentation

velvet narwhal
#

i assume you've created a content.json/manifest.json for all of that

uncut viper
#

!startmodding i think the links in this command also have examples maybe?

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

desert crane
#

I'm not a programmer

uncut viper
#

you dont need to be a programmer for content patcher, ignore the C# links and just look at the content patcher links

velvet narwhal
desert crane
#

But it's like a super complicated thing

#

It's not like "I change the price"

brave fable
#

Usually it’s easier to start with making content packs, since you don't need to learn programming.

desert crane
#

I need to code

velvet narwhal
#

that is actually how it works

uncut viper
#

its really not complicated at all and requires no code

velvet narwhal
#

"Price": "YourPriceHere"

desert crane
brave fable
#

yeah you just need to do that for like. every item in the game hahah

desert crane
velvet narwhal
#

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

wanton pebble
#

Hmmm

desert crane
velvet narwhal
#

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

ocean sailBOT
velvet narwhal
#

you can use notepad (at the very worst) or visual studio code (at the very best)

uncut viper
#
{
  "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)

wanton pebble
#

It appears even after killing that json though it's not fixing it. Gimme a few to search for things

brave fable
# desert crane Its true or a joke?

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

desert crane
brave fable
#

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

uncut viper
#

have you taken a look at all at the content patcher documentation?

velvet narwhal
#

pathos is very good at documentation, the author guide answers and walks you through the first couple of steps

desert crane
brittle ledge
#

alternately, Kain, go find a mod that does something similar to what you want and take a look at it.

brave fable
#

honestly i'm surprised if there's not a mod that sets a modifier on the sale price of items

desert crane
velvet narwhal
#

from a user perspective? sounds easy enough to slap on a config for a %modifier

uncut viper
#

i imagine most people are generally happy with the profit margin save options, not much demand i spose

brittle ledge
lucid iron
#

u got 8 days i believe in u

brave fable
#

knowing mod authors it'd have some unsearchable name like Shopping Spree or I'M RICH

uncut viper
#

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

lucid iron
#

i think i missed the goal though

#

thought this was smth about maps

uncut viper
#

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

lucid iron
#

what is this price talk

brave fable
#

did anyone actually mention maps

uncut viper
#

yes, they did

#

they made a map mod with the help of someone else, and now wanted help figuring out how to edit prices

desert crane
velvet narwhal
#

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 KEK

lucid iron
#

oh i see yggy

velvet narwhal
#

we didn't come out of the womb knowing how to write json

lucid iron
#

did u want to make everything cheaper or just a couple shop items

desert crane
uncut viper
#

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!

desert crane
velvet narwhal
#

again, it's not programming, it is quite literally like writing an essay with some funny accent marks

drowsy pewter
#

Are you here to ask someone to make a mod for you? I'm confused

uncut viper
#

well, none of us are medics. this isnt anyoens job here

desert crane
desert crane
#

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?

uncut viper
#

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)

desert crane
uncut viper
#

then i would recommend keeping it separately from the map folder yes SDVpufferthumbsup

#

map mod*

desert crane
brittle ledge
#

ooh I have a tutorial for that!

uncut viper
#

its the same format, youy just need to change the name and description and uniqueid

brittle ledge
scarlet quarry
#

Kall tutorials on the way SDVpufferchef

desert crane
# uncut viper its the same format, youy just need to change the name and description and uniqu...

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.

desert crane
uncut viper
#

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 SDVpuffersquee

#

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 SDVpufferthumbsup

velvet narwhal
#

i have yet to make the sandwich command, huh, ig it's because we haven't had any fresh meat lately

desert crane
uncut viper
#

as long as you're prepared for the possibility!

desert crane
wanton pebble
#

found the other part. This should work now

desert crane
uncut viper
#

i will guide you to the fountain but i will not drink it for you

desert crane
velvet narwhal
uncut viper
#

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

neon kayak
#

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

uncut viper
#

Visual Studio Code will automatically tell you if your json is formatted correctly

uncut viper
calm nebula
#

And there is not a way to make a texture look good for both cross and square

#

Hi Lyoko!

lucid iron
#

u can change the type

wanton pebble
#

Yep, there are two files - CustomNPCExclusions.json and ExclusionChanges.json - in RSV which are still applying stuff that breaks the Winter Star gifter patches

uncut viper
#

this is something that would be beyond Content Patcher's purview

lucid iron
#

to make it connect like a floor

wanton pebble
#

FINALLY now have Daia as both

lucid iron
#

dunno how it'll look though PecoSmile

neon kayak
uncut viper
#

you could try chu's suggestion

neon kayak
#

change the type?

lucid iron
#

yea do data edit on floorsandpaths

#

Data/FloorsAndPaths

uncut viper
#

(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 SDVpufferthumbsup)

neon kayak
#

SONICcool understood!
and i assume CP can also patch data? very new to all this even if im not new to coding lol

calm nebula
#

Oui

neon kayak
#

yea the data edit action i see

lucid iron
#

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 blobcatgooglyblep

#

it just make it connect more like flooring

neon kayak
#

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 }
        }
   ]
}
velvet narwhal
neon kayak
#

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

desert crane
#

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?

rancid temple
#

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

desert crane
#

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

rancid temple
#

Unless you want to make a C# component for your mod, your best bet is FTM

desert crane
#

I'm not understandin how does it work. It kind of allow me to put code to enable meteorites?

rancid temple
#

FTM is a framework with a lot of options

desert crane
#

Also this is something I do after starting the game. Is not something I can put by default in my modded map

rancid temple
#

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

calm nebula
#

Could check spacecore

desert crane
#

Not while playing. I want the metoerite to be there when I start the game

rancid temple
#

Then you could use FTM for that

desert crane
desert crane
rancid temple
#

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

desert crane
#

This looks too much

rancid temple
#

It's certainly a lot, I think SpaceCore is technically more

desert crane
#

I hate the fact that to mod even easy stuff on this game things get this hard

rancid temple
#

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#

desert crane
#

It could have been even worse

#

Not sure what I'm gonna do

rancid temple
#

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

latent mauve
#

If you're okay with it being a level 3 obstruction rather than a level 4, you could just use a boulder

lucid iron
#

iirc that value makes floors overlap more

calm nebula
#

So how goes it, everyone?

lucid iron
#

its not festive yet atra 1 more day

desert crane
#

Is it possible to change properties of something like bush

#

Destroyable only by gold?

calm nebula
#

I'm festive early!

desert crane
drowsy pewter
#

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

desert crane
vernal crest
#

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

rancid temple
#

Oh, Frontier Farm from SVE does this for the Grandpa's Shed

scarlet quarry
vernal crest
#

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

rancid temple
#

Much smaller bit of FTM to look at

desert crane
rancid temple
#

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

desert crane
#

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)

vernal crest
#

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.

desert crane
teal bridge
vernal crest
desert crane
#

No sorry I give up. This looks like hours and hours of work.

vernal crest
#

Yes it is. Every mod is, at least at the beginning.

#

(Unless you're Atra but Atra you're an outlier!!!!)

desert crane
gentle rose
#

takes time to learn a craft to the point of making big things

vernal crest
desert crane
gentle rose
#

(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)

desert crane
teal bridge
#

(sigh) "why can't I just go and make changes directly to the game"

desert crane
gentle rose
#

in… what file? are you editing the game directly? bc that would conflict with every other mod

vernal crest
#

Well that's not making a mod, that's just editing the game files.

desert crane
#

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?

brittle pasture
#

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

vernal crest
#

You can do that in Stardew if you want to edit the xnb files.

teal bridge
#

Yes, but... don't.

#

!xnbmodding

desert crane
teal bridge
#

Er... wrong command. What's the command again?

vernal crest
#

!xnbzola

ocean sailBOT
#

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).

desert crane
#

Easy mod. The effect is the same

teal bridge
#

Even Unreal/Unity modding and so on still requires you to make a pak to replace the content.

desert crane
brittle pasture
desert crane
desert crane
teal bridge
#

The Content Patcher process is way simpler than dealing with paks.

desert crane
desert crane
teal bridge
#

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.

gentle rose
#

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

desert crane
desert crane
gentle rose
#

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

vernal crest
#

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.

gentle rose
#

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

teal bridge
desert crane
desert crane
gentle rose
teal bridge
#

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.

devout otter
desert crane
vernal crest
#

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).

desert crane
rancid temple
#

[[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

gentle rose
desert crane
#

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

velvet narwhal
#

rome wasn't built in a day n' all that, my own actual first mod wasn't off the ground for 2 months meow_distrust

desert crane
#

I wasn't planning anything super big

#

By the way thanks everybody for the help!

desert crane
#

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?

uncut viper
#

this is a save editor. it doesnt make mods

knotty phoenix
#

you might be able to do that but it wouldn't help anyone else

#

it would only be for your save

rancid temple
#

And being that it's a save editor, you risk corrupting your save

desert crane
#

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.

uncut viper
#

people are not going to want to download a save file with their mod

desert crane
desert crane
#

I'll give them the option

uncut viper
#

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

desert crane
#

Thats true. I usually don't care too much about aesthetics, that's why I dont think about it

desert crane
knotty phoenix
#

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

uncut viper
#

im not familiar with FTM

rancid temple
#

Oh I thought they were asking about the save editor

#

I know even less about fucking with a save editor than FTM lmao

uncut viper
#

i wouldnt be interested in figuring out a save editor either

desert crane
#

Yeah it makes sense

brittle pasture
#

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

desert crane
#

{
"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
},

uncut viper
#

!json please do not send long json snippets in here

ocean sailBOT
#

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.

uncut viper
#

use the uploader

desert crane
#

This looks something like what I'm looking for, but too complicated

#

Oh sorry

uncut viper
#

if something like that is too complicated, then you dont really have any choice but to learn

haughty charm
#

Kain, several people have tried to provide advice for you. There is no "easy" way to make mods.

desert crane
#

Or give up. All the options except hours and hours of time looks unavailable

brittle pasture
#

ignore every field that's empty of null

#

read the rest

#

their names should be self explanatory

desert crane
uncut viper
#

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

haughty charm
#

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.

acoustic summit
#

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.

desert crane
# brittle pasture their names should be self explanatory

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

haughty charm
#

Then modding may not be for you

uncut viper
#

you dont have to do it

desert crane
uncut viper
#

nothin wrong with deciding that other things are better worth your time

desert crane
#

I can mod easy things, not hard ones

haughty charm
#

Ok, then, let's move on please.

#

This conversation is going nowhere.

tame orbit
#

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 SDVpuffercry
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)

acoustic summit
#

You want to apply custom properties to objects 🙂

#

So on one of the purple layers

desert crane
faint ingot
acoustic summit
#

Make an object then add custom_properties to that

uncut viper
#

i think the properties you are seeing "disappearing" is actually just Tiled switching away from the map props

acoustic summit
#

Oh wait Im bad maybe haha

faint ingot
#

If you click "map" in the top menu and then "map properties" it will get you back to what you were looking at

tame orbit
#

Thank you!!! "Map Properties" fixed it SDVemoteheart

#

I was taking a peek at the default house for Haley to see how to try to make a warp back
Thank you guys ❣️

brave fable
#

it's not half as bad as you're making it out to be

desert crane
desert crane
brittle ledge
#

You kids and your "not editing game files" and "JSONS in readable english" are spoiled, spoiled I tell you!

lucid mulch
#

hex editing static memory would be easier than some of the schenanigans we are doing in harmony patches

brittle ledge
#

Oh my yoba, Sinz, you can't just come in here and interrupt my grumpy old man moment with actual programming! SBVLmaoDog

lucid mulch
#

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

uncut viper
#

i miss deleting meta inf

brittle ledge
#

yeah, Stardew is leagues ahead of the shit I was doing a couple of decades ago SDVkrobusgiggle

ornate locust
#

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

brittle ledge
ornate locust
#

yoooo Petz modding! I was bad at that one, never got the hang of that

brittle ledge
#

Holy crap I did not expect to find someone else that even knew what it is SBVLmaoDog

lucid mulch
#

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

ornate locust
#

dang sproingy dog

lucid mulch
#

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

desert crane
knotty phoenix
ornate locust
#

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

knotty phoenix
#

the very first computer virus i ever got was downloading illicit dogz and catz off of geocities websites

ornate locust
#

oh no LOL

gentle rose
#

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 z_goosebonk

ornate locust
#

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)

lucid mulch
#

I had so much fun reading my classmates essays in front of them because the school had no security on the user folders

gentle rose
lucid mulch
#

Mine had restrictions on directly launching command prompt, but not on running batch scripts (which could just execute whatever you type)

blissful panther
#

...yes.

#

What you also said.

lucid mulch
#

and also most was on filename patterns, so if you renamed the exe to something else, it now works

gentle rose
ornate locust
#

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.

gentle rose
#

they got lucky by having the teacher accounts on a different drive snort

ornate locust
#

I was turning them on for younger kids, so I'm stunned and I hear this little boy yelling "SHE'S DEAD"

gentle rose
#

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... 💀)

gentle rose
ornate locust
#

Little bit! Don't know why that monitor had a metal plug, but it made an insulation failure a real damn problem

velvet narwhal
#

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 suspicious and now i can't even c# my way out of a trash can

tender bloom
#

Maybe if you wear the trash can hat

#

It will send you good vibes

#

And you can escape the trash can

gentle rose
#

why do you want to escape the trash can. Have you considered changing your scope to just be staying in the trash can instead

velvet narwhal
tender bloom
#

I hear there’s free catalogues in there

#

All the furniture you could want

velvet narwhal
#

i'm only in it for the hat SBVPensiveButt

gentle rose
#

I'm too scared to venture into you guys' threads

velvet narwhal
#

tbh 98% is me yapping, the other 2% is other cheetos yapping

uncut viper
#

wow

velvet narwhal
#

you're a cheeto, don't lie

uncut viper
#

you'd never get me to willingly become one

velvet narwhal
#

unless despercheeto is approved

tender bloom
#

Never a hint of Cheeto dust?

uncut viper
#

not unless the dust becomes either red or purple

tender bloom
#

What if you eat too many carrots?

uncut viper
#

i do miss my red

gentle rose
#

purple cheetos could be a thing. idk I'm not american but I assume that's something that's done there

tender bloom
#

I’ve never seen one, but flaming hot Cheetos are red

#

Also they’re gross

uncut viper
#

yeah they just taste like weird chemical spice to me
good colour tho

fathom hound
#

I miss my purple pfp

tender bloom
#

They taste like pain, and don’t have any flavor to it

uncut viper
#

you could ask for your cheeto role to be removed

tender bloom
#

It’s very weird because normally spicy food has flavor beyond being painful

velvet narwhal
#

tbh it's only useful for publishing and getting the private git

fathom hound
#

But — commands SDVpufferwaaah

gentle rose
#

there should be multicoloured cheeto roles. the true honour of being a cheeto

fathom hound
#

Oh yeah the private git too

tender bloom
#

Prismatic Cheeto

uncut viper
#

ive never felt a strong need to be able to make commands

tender bloom
#

When we first got the power I made a lot

gentle rose
#

I can't even get the git yet 😭 I've been cheetofied and what do I have to show for it?

uncut viper
#

ive already got !json, !log, and !ask, what more could i need

fathom hound
#

I just want despercheeto role so I can have purple back in my pfp SDVpufferchickmayor

tender bloom
#

But now we have the important ones already

velvet narwhal
#

i've made like, three, and i forgot what the other two were

fathom hound
tender bloom
#

So the commands thing is less important now imo

versed wyvern
#

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:

  1. 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?
  2. 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?
fathom hound
tender bloom
#

Please muscle in, we deserve it

uncut viper
#

i thought commands were supposed to be a "dont overdo it" privilege

fathom hound
#

I didn’t overdo it there’s just that many commands needed SDVsobastian

velvet narwhal
#

wait sidestepping swimming bug? think_eyes

tender bloom
versed wyvern
#

Yeah SiD sprites drown

uncut viper
#

i think Sprites in Detail made her disappear or something

#

but i was also gonna say that sounds like a good workaround to me

tender bloom
#

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

velvet narwhal
#

if someone takes mothman out for a datenightredux well they're gonna be sorely afraid to know--

tender bloom
#

Idk that sounds in character for mothman at least

gentle rose
versed wyvern
#

Oof, so I have to make an EditData for every individual BathhousePool file eh

velvet narwhal
#

mothman is written fully with sprites in detail

tender bloom
#

I mean they should be identical edit datas

fathom hound
#

MOMEGALULthman?

tender bloom
#

Assuming you set up i18n

uncut viper
#

if the entry key is the same across all of them, you just need one patch with multiple targets

gentle rose
#

glad I'm not the only one who wasn't aware that a mothman mod existed

uncut viper
#

actually im not confident in that if targeting specific languages is different with CP

#

so possibly ignore me. possibly dont though

tender bloom
#

I always forget

#

It’s either a when condition

#

Or naming the specific asset

velvet narwhal
#

i'll derail later, but i'm pretty sure you can set targets but i have no idea how to target the other languages

uncut viper
#

there is a TargetLocale field since CP.... 2.3.0 i wanna say?

tender bloom
#

Try a patch export if you aren’t sure if you’ve edited everything

uncut viper
#

oh but if you dont use it, it applies to all localized variants

tender bloom
#

!patchexport

ocean sailBOT
#

A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.

  1. Load up a save (with Content Patcher installed)
  2. Type patch export <FILEPATHOFTHING> in the SMAPI console and hit return
  3. Look in your patch export folder in the game folder for the relevant json file or image
  4. 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.
uncut viper
#

(and all unlocalized)

tender bloom
#

Sounds like maybe you’re fine then?

#

If it’s already targeting all languages?

#

But patch export to check

uncut viper
#

i guess that makes sense its not like people have to do specific edits for like, StringsFromCsFiles

devout otter
gentle rose
#

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 DogeSmile

tender bloom
#

Uh Atracore should be on the list

#

Atra said once you have to disable the code signing stuff to get their mods to compile

velvet narwhal
#

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)

gentle rose
#

...I only just realised there are multiple mathpeople here

tender bloom
#

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)

gentle rose
tender bloom
#

Ha

velvet narwhal
#

there's a 3rd one

tender bloom
#

We got one!

rancid temple
#

There were 3 last I checked

vernal crest
#

Who's our third?

rancid temple
#

What's that, two victims so far? Lol

uncut viper
#

i know festive and classical, who's the third im forgetting

tender bloom
#

I am not Atra, but I do have fairly good knowledge of their mods

versed wyvern
velvet narwhal
#

uhhhh i think it was MaxRW?

rancid temple
#

Relativistic I think

uncut viper
#

oh yeah

gentle rose
uncut viper
#

relativistic

tender bloom
#

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

vernal crest
#

Do I know relativistic?

velvet narwhal
devout otter
gentle rose
#

disentanglement was going to be my next step anyway, but it did make me curious about how smapi checks compatibility

velvet narwhal
#

oh was it a movement edit, or a dialogue edit? think_eyes

gentle rose
tender bloom
#

SMAPI usually just goes by the list to start with right? But I think also looks at references to methods that don’t exist

devout otter
#

I did something like this (but just altering the dialogue parts without touching anything else). Let me take an example...

versed wyvern
gentle rose
#

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

uncut viper
#

ReplaceDelimited should be useful for the event editing

lucid mulch
tender bloom
#

Like there’s “not loading because it’s on the decompat list”

rancid temple
tender bloom
#

And there’s “not loading because mod too broken”

gentle rose