#making-mods-general

1 messages · Page 554 of 1

fierce vault
#

and you should make as many as you can, because you only leaf once!

#

I'll see myself out SDVpufferlurk

calm nebula
#

Dh! Long time no see.

proven spindle
gentle rose
#

dh! …hi

uncut viper
#

HoeDirt's get serialized, right?

calm nebula
#

Oui

uncut viper
#

Thank you

fierce vault
uncut viper
#

I saw a virtual method on it and wondered if anyone subclasses HoeDirt for any reason

blissful panther
fierce vault
#

Wish I'd thought of that lol

proven spindle
#

It's ok, you just gotta branch out some more SDVpufferpat

fierce vault
#

you're killing me!

#

I'm going to have to leave before it gets worse!

old edge
#

I created a ui menu during the intro in grandpastory.cs by harmony patching it but I can’t get the dialogue box to close the escape button skips the scenes but my ui box is stuck on the next scene the bus but then it clears after that when the world map loads

proven spindle
#

You wood be missed

#

(ok I'll stop lol)

fierce vault
#

I shouldn't be laughing like this at these SDVpufferwaaah

proven spindle
#

I did a leaf collecting mod a while back, so I've had practice lol

fierce vault
#

Oh, I didn't know that. Neat!

brave fable
#

g i n g k o

near imp
brave fable
#

elizabeth did you see my magnolia..

uncut viper
#

Every time I look at Crop.harvest again the urge to just skip prefix it grows

calm nebula
patent lanceBOT
brave fable
#

oh i never posted the big one. too bad im at the office

#

mongolia

calm nebula
#

Just make a farm totem and pop home for a second

near imp
# lucid iron no

awh. but, to be fair, it would be a heck of a lot of lines if i want to change tile properties for like 30+ tiles anyway, so maybe its better that i cant. best excuse. so, is loading an edited map (tmx) the only way to edit tilesheet properties then?

lucid iron
#

well what do you want to do exactly

calm nebula
#

My favorite funny tree fruit is cashew

uncut viper
#

How many crop mods use SpaceCore's CropExtensionData anyway. Does Cornucopia use this. Would I regret not prioritizing compat there

calm nebula
#

Tilesheet properties are just map properties managled

#

Don't let people know

brave fable
#

bell pepper bats

calm nebula
#

Blueberry plz observe weird fruit

uncut viper
near imp
# lucid iron well what do you want to do exactly

my go-to tillable grass mod has a few spotty bits on the ginger island farm. so i went in and edited the Island_W manually and added Diggable T to a bunch of the tiles that imho needed it. but somehow, i dont know why, my quick and dirty ginger island edit is incompatible with the spiffy new Tilled Soil Decay Options

hard fern
#

Terrible fruit

calm nebula
#

May I submit as possible bluebs tree

near imp
uncut viper
#

I appreciate your cooperation

calm nebula
patent lanceBOT
calm nebula
#

Thanks!

lucid iron
#

Might be issue with the tiled soil mod rather than you

calm nebula
#

Do i get a pat pat on the head as a reward

near imp
# lucid iron Hm how is it incompatible?

I have no idea SDVpufferflat i tested out that new mod and the ginger island part didnt work. was like "hmm wat". removed my GI edit and tested again. works. no clue why. im torn on whether or not i should bother the mod author with this obscure(?) incompatibility or if i should try to work around it instead

brave fable
lucid iron
near imp
#

I guess I should. Especially if there are some other mods that edit ginger island and breaks it in a similar way. then it wouldnt just be me affected, so more worthwhile for the author to fix potentially

brave fable
#

round 2

lucid iron
#

Captainsully is on this server if u wanna ask stuff

hard fern
#

A nut plant

#

Chest nut

near imp
brave fable
#

i may need to redraw the sprite SDVdemetriums no near guesses yet

calm nebula
#

Passionfruit :P

hard fern
#

Unfortunately i am also just woefully unplant

#

Please dont ask me to not eat the poisonous plant. I probably will

brave fable
#

i'll post it with flowers in 8 hours and hopefully that'll be obvious

#

honestly shocked every other tree got a correct guess and not this shrub

calm nebula
#

The fruit is edible but also quite fragile

near imp
#

perhaps the Tilled Soil Decay Options does some magic to the Island_W map behind the scenes that is then later undone by unelegant "Action":"Load" from ContentPatcher 😅

lucid iron
#

looking at this transpiler its perhaps due to usage of OpCodes.Brtrue_S instead of OpCodes.Br_S

#

atm the mod probably makes everywhere except farm get seasonal tiled dirt decay

near imp
#

(im gonna retest the ginger island edit issue with a map with just the tile properties changed, i had experimented with a few map properties as well that cooouuld be the reason for the issue, but i had the same map properties on my custom farm map edit as well, and the Tilled mod worked just fine there, so that makes it less likely to be the core of the incompatibility)

#

if only "ClearEmptyDirtOnNewMonth" map property would actually function on false we wouldnt be in this mess in the first place SDVpufferglare

dawn ore
#

Is there any way to raise the players maximum health and energy using content patcher? I want a reward for a quest to be a modest permeant increase to health, maybe half of the iridium snake milk, and energy, maybe half a stardrop.

calm nebula
#

In effect no

#

Other than a permanent buff I guess applied at day start

dawn ore
#

hmm bummer. i know there is a max energy buff but i couldn't see a max health buff, althoug i guess defense is a proxy for it

#

is there a way to add a permeant +1 defense like done by Jack Be Nimble, Jack Be Thick

calm nebula
#

Make a new buff with duration -2 and use a trigger action to apply it every morning?

dawn ore
#

ok cool, I'm starting to get it.
as per https://stardewvalleywiki.com/Modding:Buffs I could make a custom buff with +1 to Defense and MaxStamina. is there any way to make the icon not appear. i note this line in the C# section You can have invisible buffs by setting buff.visible = false. is there a way to refence this in CP?

brave fable
#

i don't suppose "IconTexture": null would work?

calm nebula
#

Not sure, tbh

#

You could try an empty texture but it would take up a space

#

And also have a tooltip

near imp
#

Oooooohh removing those map properties on the Ginger Island edit appears to have worked. got the edit running now, Action:Load the edited Island_W.tmx file through ContentPatcher, and the soil is tilled on season change SDVpufferparty
(not sure what it says about me that im often the one to creatively break something else SDVpufferthinkblob oh well, best not to dwell on that)

quasi crow
#

whats up

near imp
quasi crow
#

oh?

brittle pasture
quasi crow
#

huh.

#

well then

near imp
# quasi crow oh?

i had a custom edit of Island_W that had some map properties (specifically
ClearEmptyDirtOnNewMonth F
DirtDecayChance 0 )
and they made the ginger island part of your mod non functional SDVpufferblush

#

since it works again now with just the tilesheet property changes i feel bad for summoning SDVpuffercry

#

Suuuuper happy to have a functional tilled soil season mod btw! SDVpufferparty SDVpufferparty thankyou so much!

#

ironically the reason i was mucking around with the map properties in the first place

quasi crow
#

hmm. the property is false so the mod doesn't skip it.

#

makes sense

near imp
#

can that property only be set to true?

quasi crow
#

actually im a little surprised it doens't work anyway..

quasi crow
lucid iron
#

yes, its everywhere else thats the problem

near imp
#

are we talking about the map property or the mod now?

quasi crow
#

isn't it skipping the if block when the instance is a farm?

lucid iron
#

the mod, specifically the transpiler

quasi crow
#
if (dayOfMonth == 1)
{
    if (this is Farm || this.HasMapPropertyWithValue("ClearEmptyDirtOnNewMonth"))
    {
        this.terrainFeatures.RemoveWhere((KeyValuePair<Vector2, TerrainFeature> pair) => pair.Value is HoeDirt { crop: null } && Game1.random.NextDouble() < 0.8);
    }```
#

if i understand right, im jumping past this if "this is farm" is true

#

if its not the farm it should be fine?

half tangle
#

I'm trying to prefix a constructor so that I can change one of the parameters when it gets called by the game. If this was a method I could just pass in __instance and check if it has my custom data, but the __instance is null in the constructor case because it hasn't been constructed yet. Is there another way I can check that?

near imp
#

(well now that i have removed my unlawful map properties from the edited Island_W map, the mod appears to work perfectly on season change both on the farm and the island)

lucid iron
#

oh i see it's checking for existence of ClearEmptyDirtOnNewMonth

#

so ClearEmptyDirtOnNewMonth=F would actually make it enter the block

quasi crow
#

oh cause the whole thing resolves to false

#

instead of true

near imp
#

not sure why it stumbled on the map properties on the island and not the farm (they both had it), but its probably not something id understand anyway

quasi crow
#

wait no its an or

near imp
quasi crow
#

if the first part is true, the second part shouldnt even evaluate at all

lucid iron
#

but hm i still feel like u should prob do unconditional jump here bolbthinking

#

or just remove the 3 ops that check farm at all

#

essentially get

if (this.HasMapPropertyWithValue("ClearEmptyDirtOnNewMonth")) { }
#

and then map prop will be sole source of truth AquaThumbsup

half tangle
uncut viper
lucid iron
uncut viper
#

If it's data that's generated and constructed in the instance you could also transpile the constructor

lucid iron
#

ClearEmptyDirtOnNewMonth doesnt work on Farm in vanilla

near imp
quasi crow
#

hm. i guess removing the farm check does make sense...

half tangle
#

...I was kinda hoping I wasn't gonna have to refresh my memory on how to do a transpiler, but if that's the way, then so be it

#

makes sense, though

#

a transpiler on the method that calls the ctor is probably not bad in this case

uncut viper
#

If the method constructing it is doing something like var myThing = new ThingYouWannaPrefix() you could probably just do an easy replacement to swap out the newobj thing with a method you make that returns a ThingYouWannaPrefix, that way you can make the object and modify it yourself as necessary before the caller gets it

#

(assuming you can modify these things outside the constructor)

half tangle
#

oh, that's a good point

near imp
uncut viper
#

It's probably barely any different from just taking in the newly constructed obj and passing it to a modifier function too but yknow

#

I suppose it'd matter if someone else was trying to do the same thing to the same newobj call

#

Was there a reason you couldn't postfix the constructor

quasi crow
#

so if its the farm, it just goes "Yes"

#

im going to follow chute's suggestion and just take out the "if this is the farm" part

half tangle
#

main reason I can't postfix it easily is that the ctor (ItemGrabMenu) is doing a lot of logic depending on its parameters and that'd be a pain to modify after the fact

quasi crow
#

though, i only really wanted to change the logic if it IS the farm.

uncut viper
#

(To be clear the value you put into the ClearEmptyDirtOnNewMonth property doesn't matter. If the property exists, it will be applied, even if you write "false". Hence, it's not a lie to say its valid in any location, because it's just an opt-in thing, not opt out)

quasi crow
#

does the default farm have that map property? do you know off hand kattia?

near imp
#

I am sorry for wasting your time with a manufactured issue though, my apologies for that. If theres no other whacky cowboys out there playing around with the same map properties in strange places then you could keep the mod just as is, couldnt you? No its not present at all on default farm maps

uncut viper
dawn ore
#

Another -is this possible- question, is it possible to make cooked dishes worth 10% more using content patcher

brave fable
#

i don't think so, it'd be a simple harmony patch though

uncut viper
#

You wouldn't even need Harmony

quasi crow
#

Ok that works then. since the farm doesnt have it, without the "is farm" check it just checks for the property, doesn't find it, and skips, which is what we want.

half tangle
uncut viper
#

Were you trying to make the menu bigger/smaller i.e. more/less slots

dawn ore
half tangle
#

no, getting rid of the side buttons - color was an easy postfix, but the organize and stack buttons are the issue. chest size was easy to patch

uncut viper
#

Harmony is completely fine, it's no different than other C# code once you set up the patches themselves (except for transpilers, which are pretty different to think about)

uncut viper
#

It is technically more fragile yes but it's not a "break glass in case of emergency" tool

ivory plume
#

It's an issue with the base game's renovation code, now fixed in the upcoming Stardew Valley 1.6.16. Thanks for reporting it!

quasi crow
#

well, hope not (m)any modded farms use that property, or this will get annoying down the line.

#

given the way vanilla works though, they shouldnt have any reason to, unless they thought it was necessary by mistake.

#

@near imp want to test this with your original setup and see if it works?

near imp
quasi dew
#

alright, obscure dialogue question.
when standing by the mountain lake, Sebastian says, "Standing at this spot really makes me want a smoke... but I'm determined to quit now." and I can't find that line in his marriage dialogue files

quasi crow
#

new version

#

no worries, either way. sseems to be working for me anyways :P

near imp
# quasi crow new version

id be happy to test things for you if that would help, but i have removed those map properties in new versions of my personal map edits. since the ClearEmptyDirtOnNewMonth cant be used the way i had hoped for, and DirtDecayChance works but not for season change, so a mod is needed for complete dirt decay functionality anyway. strictly speaking it was an issue on my end

tender bloom
tender bloom
brave fable
#

i see ginkgo an awful lot lol. just one of those loanwords

tender roost
hard fern
#

Wha... It's spelled gingko???

#

Why is there a silent g

#

In the middle of it

brave fable
#

surprisingly ginkgo is the more correct spelling/pronunciation

#

or more accepted i suppose, i don't know the accuracy or origin

#

1773, from Japanese ginkyo, from Chinese yin-hing, from yin "silver" + hing "apricot" (Sino-Japanese kyo)

hard fern
#

Those apricots aren't all that silver, really

brave fable
#

i would've expected it to be named from kin (gold) honestly lol

hard fern
#

Same lol

brave fable
#

i suppose the stem is quite silvery..

lucid iron
#

@spice inlet hey do u know what is best aspect ratio to use for PIF preview images

#

sometimes i wish it would auto crop without squashing...

spice inlet
#

just based on the menu sprite it's 106x74 px

#

yeah the squashing can be bad :/

dawn ore
#

realted to my cooking question from earlier, would there be a way to have all cooking be automatically 1 better quality? like normal dishes become silver, gold becomes iridium? ideally using CP but if not that then just in general

brave fable
#

CP also cannot do that 🙂‍↕️

#

you'd probably have to postfix CraftingPage.clickCraftingRecipe like the rest of us

tiny zealot
#

me when another patch goes out for clickCraftingRecipe

fierce vault
#

Just when I was starting to feel more confident at event making, I finally take another look at animating the farmer for something I want to do SDVpufferfear

brittle pasture
#

reminds me of the time I looked into adding compat with every cooking mod

#

thankfully at the end of the day it's just vanilla/Better Crafting/Love of Cooking; the rest either are too niche or has bridge with BC already

prisma cloak
#

Are these set of sprites for Krobus unused? I tried asking before but I don't know if anyone knows vergeofcrying

fierce vault
spice inlet
fierce vault
#

what is marnies house called in the events folder?

#

oh

#

nvm

#

It's the animal shop lol

dawn ore
#

thanks for the help with above, I might put a pin in the cooking +1 idea.

a unrelated content patcher question,
does this mean when GridUnlocked AND Boat Repaired AND its Summer?
"When": {
"HasFlag": "GridUnlocked",
"HasFlag |": "ccBoatRepair",
"Season": "Summer"
}

I can't remember where i came across this formatting, but it was something to do with there only able to be 1 HasFlag. If the above is incorrect, what is correct?

lucid iron
lucid mulch
#
"When": {
  "HasFlag |contains=ccBoatRepair": true,
  "HasFlag |contains=GridUnlocked": true,
  "Season": "Summer"
}

can't remember if : is needed or not

lucid iron
#

this + drawing from the center of texture origin had effect of fitting the texture to the place it gotta be

lucid mulch
#

I'm assuming HasFlag | would get a parse error

lucid iron
#

i think it would look better for most PIF previews but u may go the other way of letterboxing instead (i.e. use Math.Min)

tender bloom
#

I did also draw the fruit

#

taking heavy inspiration from the apricot part of the name 😛

vernal crest
#

Hello! Sorry, as Elizabeth said I was asleep when you pinged

hollow pine
#

Youre ok, funny enough i just hopped back on

#

Sooo, I went on the wiki and tried to completely redo the content.json. Still didnt work. I put both the file and the error log into the validater and parser

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 36 C# mods and 92 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tender bloom
#

StardewModdingAPI.Framework.Exceptions.SContentLoadException: BoxCanyon loaded map 'assets' with invalid tilesheet path '../../../../Content (unpacked)/Maps/paths.png'. Directory climbing (../) is only permitted once at the start of the path.

#

This is your problem

#

it applies to both of your maps

vernal crest
#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

hollow pine
#

ok so go into tiled and edit the tile properties to the pngs in the mod folder?

vernal crest
#

It can't be done in Tiled without moving the tilesheets into the map folder

hollow pine
#

Well whatever I did worked and the warp to the interior map is finally working.

#

I read the wiki @tender bloom sent and did what it said there. It said stuff about going into tiled and adjusting the properties 🤷‍♂️ so i dunno, but it finally worked so thats cool

#

thankyou for the help

spice inlet
#

it does look a bit less smushed, but hard to tell

lucid iron
#

yea definitely less smush i like it

#

(im very sensitive to aspect ratio for some reason)

spice inlet
#

probably best to just make it configurable 😄

#

I think I'll try your suggestion

lucid iron
#

thank bolbwawawa

spice inlet
#

ideally content creators would keep their preview image multiplicative of the 106x74 px preview border anyway

#

only way to make it look good and keep everything

pearl sparrow
#

can anyone help?
im trying to dowload birbcore (v1.1.0) for android smapi
it says its compatible with latest smapi version but when i launch the game it says its not compatible

devout otter
#

SMAPI for Android is not exactly the latest SMAPI version.

ocean sailBOT
#
Android SMAPI

We are not able to provide support if you run into trouble or compatibility issues with Android SMAPI; please use the discord linked on the Android SMAPI github.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. Please see the wiki instructions for more information regarding installing the unofficial Android port of SMAPI for Stardew Valley 1.6.

Do not harass mod authors to make Android specific compatibility patches.

pearl sparrow
devout otter
#

Please follow what the Governor said above.

hard fern
#

What's an easy way to replace all the display names for about half the items in the game?

devout otter
#

(Basically, people in that Discord channel would be likelier to know the answer to your question than here.)

lucid iron
lucid iron
#

but u can also just use Fields to edit Data/Objects if you gotta deal with modded names too

hard fern
#

Well i got that part, but i guess there's no streamlining it, huh...

uncut viper
#

if you wanna change the names you gotta change the names

#

even in C# there's no shortcut unless you wanted them all to have the same name

hard fern
#

To the mines i go

#

This shouldn't take long.

slow basin
#

i feel like i did my npc stuff backwards because now it feels liek spaghetti but i dont wanna start over 😩

hard fern
#

Spaghetti

slow basin
#

maybe ill remake the jsons one at a time and see if i can fix it

brave fable
#

simplest foreach of our forefathers

uncut viper
#

thats approximately like, 2% less total work

#

you still need to write the i18n entries

soft granite
#

Do the places that only appear in cutscenes like Haley’s dark room or Emily’s dreamscape actually have, like level geometry

lucid iron
#

It depends on if they are actually a map

wet robin
#

hi guys! i need help in making my npc follow its schedule since it wont move. i followed the modding wiki template and made sure the paths are all fine, but it doesnt seem to be working.😞

urban patrol
#

have you loaded a blank.json to the schedule?

vernal crest
wet robin
#

wdym by loading a blank json? i only started yesterday soSDVpuffercry

vernal crest
#

The blank json is the first thing that is needed

#

Because right now, you're trying to edit an asset that doesn't exist

#

Are you following a tutorial?

wet robin
#

this one

vernal crest
#

The blank load is because your NPC's dialogue and schedule assets don't exist until you create them. You use the Load patch to create them and then your EditData patch (the one you already have) to put the actual data into the asset.

The reason we do that instead of just using the Load patch to add the data in the first place is that it's not possible to use CP tokens (the things in {{ }} such as {{ModId}} or {{season}} in a file that is being Loaded. And since we want to use things like i18n to make translations easier, we want to be able to use CP tokens.

wet robin
#

ohhh i see

#

i was confused because the dialogue and gifting seemed to be working

vernal crest
#

Then perhaps you do have a blank load and haven't realised

wet robin
#

i just read my content json and no i dont have one

#

but i do have a blank json in my files, i just wasnt using it

fierce vault
#

I've been working a lot on my event, and it feels pretty neat to see that the script has improved a lot as I've been coding it in. I'm actually feeling confident in the writing I've done so far, especially after all the tweaking and changing that I didn't know would happen! 😄

The original script also feels kind of wooden/awkward now that I've all this actual work on the event.

#

Also, I'm going to save this answer you gave on blank jsons. It's a good one!

vernal crest
wet robin
#

they have separate like json files though

vernal crest
#

We should only need the content.json at first

vernal crest
#

Blank load

wet robin
#

do i remove that?

vernal crest
#

It's just incorrect haha

#

No, that is the thing that we have been telling you that you need

wet robin
#

ohh i see huhu

vernal crest
#

But you need to change it so that it is {{ModId}}_Vex rather than {{ModId}}_NPCName lol

wet robin
#

okay okay, ill try that out rn

vernal crest
#

And this one is wrong. It needs to be Action: Include, not Load

#

Without a Target

#

In fact, I think your dialogue file may be wrong

wet robin
#

really?TT

#

the dialogue seems to be working for me

#

ill send a screenshot

vernal crest
#

The inside of your dialogue file should look like your schedule one, only with dialogue in it instead

vernal crest
# wet robin the dialogue seems to be working for me

Yes it is working but that's because you're directly Loading the dialogue asset. Remember how I said before that doing that will mean you can't use CP tokens? If you decide to use i18n in your mod (which you should) you will find that none of it works for your dialogue because you're Loading the dialogue directly.

#

It looks like you have been following the tutorial but only partially, because loading your dialogue like that is not part of the tutorial.

#

And in doing that, you will end up with having your mod work differently from what the tutorial says it will do and you won't understand why

wet robin
#

i see i see

#

i was following two at once😭

vernal crest
#

(Which is allowed but if you then blamed the tutorial I would frown at you /lh)

wet robin
#

so yeah def my fault..

vernal crest
#

Wait, that template also does not tell you to load your dialogue directly lol

#

That's got a blank load and then an EditData patch to add the dialogue itself

#

That's ok, it's hard when you don't yet know what any of the things are actually for

wet robin
#

i was assuming and stuff cuz it worked for the sprite and portraits huhu

vernal crest
#

That is a reasonable assumption but they are totally different types of assets so sadly it does not work the same way

wet robin
#

i see now

vernal crest
#

So to sum up: change your blank loads to the correct Targets and then your schedule should work. Change your dialogue Load patch to an Include patch and then inside the dialogue.json make that an EditData patch to add the dialogue lines.

wet robin
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24354 on macOS Unix 26.3.0, with 7 C# mods and 1 content packs.

vernal crest
wet robin
#

uhhh nothing

vernal crest
#

Haha ok it is not meant to have nothing in it

wet robin
#

wait really

vernal crest
urban patrol
#

(perhaps we should rename it to curlybraces.json or something in the tutorial lol)

vernal crest
#

It's meant to have no data in it. That's the blank part. It has to have the { } in it or it's not a valid json file.

wet robin
#

omg shes walking😭 SDVpufferwaaah SDVpufferwow ty guys so much!

vernal crest
#

You did it!

wet robin
#

yeahh, also, i have a question. since this is supposed to be like, a mod with multiple characters, how do i organize them properly?

#

also vex

vernal crest
wet robin
#

ohhh i see i see

#

tysm!!!

#

ill fix up vex a bit more though before i add another character

#

i dont have her events yet

vernal crest
#

There are no requirements at all regarding how you organise your files as long as they are all inside the same mod folder. If you think others might one day want to make mods for your mod then they will need to look through your files sometimes - in that case you might want to set your files up similarly to how others do so that your files are easy for others to navigate. But you don't have to.

urban patrol
#

why would a custom C# monster not be getting the data i provide in a content pack? it only has like 200ish health and only gives 15xp, despite me setting those way higher in an edit to Data/Monsters 🤔 this is the method that spawns it (thank you chu):

public static bool Spawn(GameLocation location, string name, Point position)
{
    if (Spooder != null)
    {
        ModEntry.Log($"Spider has already spawned, must despawn first.");
        return false;
    }
    if (
        !Game1.content.DoesAssetExist<Texture2D>(string.Concat("Characters\\Monsters\\", name))
        || !DataLoader.Monsters(Game1.content).ContainsKey(name)
    )
    {
        ModEntry.Log($"Invalid monster name '{name}'", LogLevel.Error);
        return false;
    }

    Spooder = new(name, position.ToVector2() * Game1.tileSize);
    Spooder.setTilePosition(position);
    location.characters.Add(Spooder);
    ModEntry.Log($"Spawned '{name}' at {position}");
    return true;
}```
#

if i'm understanding it correctly, the data loader should be (and is) getting stuff i provide in the content pack. i know it is because it wouldn't spawn until i created the patches to load the sprite and create the entry in data/monsters

orchid glade
#

I almost had to ask where to find the egg sprites. I found them after a stupidly long time looking in the obvious places before looking in Maps of all places, and remembering that springobjects exists.

brave fable
#

what type is Spooder?

urban patrol
#

Leaper

brave fable
#

not that i can debug a spider atm, but it's not clear from the snippet

urban patrol
#

i can link the repo

#

this is without my edits to it

cobalt lance
vernal crest
#

I have changed mine several times lol

cobalt lance
#

I've been operating on a "ah yes, it's functional" mentality 😮‍💨

hard fern
#

if my data is ugly i will cry

#

so i organize it weirdly

#

maybe it's a bit unnecessary the way ive done it but it works XD

vernal crest
#

I want mine to be tidy and functional but I keep changing my mind about how to achieve both lol

latent mauve
#

Question: Do we have a way to show larger 'mounts' in events, or do I need to fake a sandseal race event by positioning the farmer and sandseal just so and trying to simultaneously move them to give the illusion of the farmer riding it?

#

Other NPCs riding them are hopefully gonna be fine, because I can probably fake it with a temporary sprite of some kind.

#

Sandseals are not skinny, so 16 wide isn't gonna cut it, LOL

gaunt heath
cedar thorn
#

that's so cute omg

gaunt heath
#

It's groundbreaking stuff

#

It's also 2 am and time to melt into a puddle of ooze 😌

ornate locust
#

merchant compatibility IS CODED

#

and it works, woo

#

in that it shows up fine in the patch export, anyway.

#

And nothing's exploding

tame burrow
slow basin
#

i know my mods will have a lot of errors because they arent done but it still hurts to see 😔

brave fable
slow basin
#

when writing the appearance block data what should i change the target fielkd to when asked for" NPCName" i tried modid_(npcname) and just {{ModID}} but neither worked so ik im misunderstanding what to do lmao

#
    "Action": "EditData",
    "Target": "Data/Characters",
    "TargetField": ["NPCName", "Appearance"],
    "Entries":
    {
        "{{ModID}}_Pixii_Spring":
        {
            "Id": "{{ModId}}_Pixii_Spring",
            "Season": "spring",
            "Portrait": "Portraits/Pixii_Spring",
            "Sprite": "Characters/Pixii",
            "Indoors": true,
            "Outdoors": true,
            "IsIslandAttire": false,
            "Condition": "TRUE",
            "Precedence": 0,
            "Weight": 1
        }
    }
}```
brave fable
#

the NPC's internal ID

#

if your NPC's ID is Pixii, then use Pixii. if it's (more correctly) {{ModId}}_Pixii, then use that

#

likewise you should be using {{ModId}} for any asset keys since these are shared by all mods, meaning you'd use "Sprite": "Characters/{{ModId}}_Pixii"

slow basin
#

it said it doesnt match an existing target

#

oooh ok

brave fable
#

if there's a warning or error you should share the full log

slow basin
#

alrighty

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 6 C# mods and 3 content packs.

slow basin
brave fable
#

you probably should

sleek flint
#

like which plant is it?

brave fable
#

i'm gonna have to redraw the whole thing aren't i

slow basin
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 6 C# mods and 3 content packs.

brave fable
#

ah well there's your problem

slow basin
brave fable
#

actually out of interest, pixii is your character right? why are you TargetFields patching your character data rather than just writing it in the original patch?

slow basin
#

i dont know i just copy and pasted what i saw in the tutorial O-O

#

i rpobably misunderstood how something was done

brave fable
#

is this all of Pixii's data, no other included files?

slow basin
#

the other files are a wip

#

but theyre in there as standins just with another npcs schedule/gift tastes as a stand in

brave fable
slow basin
#

ooooh

#

ty ty

brave fable
#

it's possible your Data/Characters EditData change in another of your WIP files isn't adding the data with the expected (matching) NPC internal ID of {{ModId}}_Pixii

#

if i were you i'd doublecheck that, since unless the patch simply isn't being applied there's no reason for the target not to match

slow basin
#

aah gotcha

#

okie!

#

after i get everything loaded corretly im gonna work on my npcs schedule/dialogue/ and events >:3c

brave fable
#

otherwise you can check what's been loaded by the game yourself by typing patch export data/characters into the SMAPI console while loaded into the game to see the current state of the asset, exported to a json file at the path shown in the console

slow basin
#

ooooh

brave fable
#

it'll of course have resolved your tokens, so if you had written {{ModId}}_NpcName it'd appear in the exported asset as GubbisWeb.Pixii_NpcName

#

but still useful as a sanity check even alongside checking the source files

old edge
#

is it possible to scale the farmer size by 100x bigger?

brave fable
#

*cough* when and why

#

as ever anything is possible, it's just a matter of actually fitting it into the game

#

for example, you can simply call the Game1.player.FarmerRenderer.draw() method overload with the float scale parameter

sweet niche
#

is there a way to work around this logic?
i want to apply my mods dialogue if the other mods dialogue active (they have random chance to active)

what i do is checking like this"HasValue: {{Characters/Dialogue/Abigail:AcceptGift_(O)373}}": "true"
but it doesn't work or i might doing it wrong

void aspen
#

it has a lot of compatibility with ase too!
love the way it keeps updating

#

also sorry for replying to a 3 years old message, really surprised it wasnt mentioned more here

long jungle
#

Figured. I think I found about this before but still took the chance to ask again. Thanks.

#

Yup. This is currently what I'm doing. Works well but I wanted to look for alternatives that might work better. I confirmed today that there is currently no other way except for C#. Thanks though.

long jungle
cedar thorn
#

everything seems to be working great now, but the items i added to the general store/saloon don't seem to be reordering

orchid glade
#

I'm not especially experiences with EditData, does this look like a correct way to change the baby duck texture? Is my use of "TargetField" and "Fields" right here?

        "Action":"Load",
        "Target":"Animals/{{ModId}}_BabyDuck",
        "FromFile":"assets/Animals/BabyDuck.png",
        "When":{"Joja Ducks":true}
    },
    {
        "Action":"EditData",
        "Target":"Data/FarmAnimals",
        "TargetField":["Duck"],
        "Fields":{
            "BabyTexture": "Animals\\{{ModId}}_BabyDuck"
        },
        "When":{"Joja Ducks":true}
    },```
vernal crest
# orchid glade I'm not especially experiences with EditData, does this look like a correct way ...

It looks ok to me though without looking at data/FarmAnimals I can't say whether you have the right fields. But you can easily check that by doing patch export data/FarmAnimals and checking if the baby texture is what you set it to.

However, you should remove that When field from the Load patch. It's not needed but it can cause problems if something ever causes the farm animals asset to try to call the asset without it having been Loaded - not likely at all but easier to just avoid it imo

orchid glade
#

Oh yeah I guess it doesn't need the condition on the load.

#

I'm thinking I might have the EditData wrong, that I need to either do TargetField + Entries, or just Fields?

uncut viper
#

You can combine target field with fields

orchid glade
#

Oh cool

azure raven
#

hey how do i get the price of an item, base value and prices adjusted base on professions?

brittle pasture
#

you can use CP's HasProfession token and edit the price in the object data with a When condition

#

though warning that this doesn't edit the price of existing items

#

if that's a problem then the other solution is using C# and patch the sell price function

cedar thorn
cedar thorn
#

weird. but at least it works now!

buoyant moon
#

Seems like there's not currently any external event script validator but there will be one built into the game in 1.6.16/1.7?

lucid mulch
#

the stuff in 1.6.16/1.7 is there but dormant, it is there for their internal unit tests and isn't wired up to run out of the box at runtime for modded events

#

Its on my todo list to use the metadata in my Debugger mod, but that requires me to work on my debugger mod

buoyant moon
#

Ah yeah I did see mention of a debugger mod but hadn't looked into that yet, might be useful either way

raven mirage
#

Hello. Is there a way (with CP) to add a mail after castom quest complited? Google say yes, i've tried a few ways but nothing works or it's just impossible?

torpid sparrow
#

yes

#

you should be able to within the quest patch

#

[[Modding:Quests]]

#

fuck

#

[[Modding:QuestData]]

#

i can never win

#

[[Modding:Quest_data]]

torpid sparrow
#

HAHA

torpid sparrow
slow basin
#

when writing schedules Im following a tutorial that has me do it by
Rain sched
spring - winter schedule

Is it possible to get more specific like days of the week per season?

slow basin
#

oo ok cool

torpid sparrow
slow basin
#

this delights me

torpid sparrow
#

its just season_DayofWeek

#

spring_Mon

#

summer_Mon

#

etc

slow basin
#

❤️ tysm!!

raven mirage
#

yes, and mayby i am stupid but i dont get how to add a mail after it completed

valid folio
#

Hello, how are you?

By any chance, do you know where the terrain bushes from the base game are located? I mean the sprite path. I need to see what they look like to try a little experiment haha.

torpid sparrow
torpid sparrow
#

Or maybe button knows

valid folio
uncut viper
#

There's also a couple on spring_outdoorsTilesheet for painting onto maps

#

For nonfunctional ones

brave fable
torpid sparrow
#

I can’t remember if you can send a mail within the quest or you have to do it in a separate patch

raven mirage
#

i'm also tried to trigger a mail with when, conditions and trigger actions and i do any of this complitely wrong or i just can't do it with CP

torpid sparrow
#

No you can

uncut viper
#

To send mail after a quest is completed you can put the trigger action in the reaction dialogue IF there is reaction dialogue

#

Otherwise you can watch for the questComplete_<questId> conversation topic and use that to send a mail flag

cedar thorn
torpid sparrow
#

Oh yeah the reaction dialogue

brave fable
#

omg yes

uncut viper
#

In 1.6.16 there will also be a GSQ for checking whether a quest was completed or not

cedar thorn
#

do i win

brave fable
#

you did! everyone else was wrong and shameful

void aspen
#

Do I need C to add more minecart location options to already existing minecarts

brave fable
#

nope! you can just edit Data/Minecarts with CP

void aspen
#

Or it's possible to do via data edit

void aspen
#

Tyy

#

So in game it will just add more buttons to the cart menu right

cedar thorn
brave fable
#

pretty much SDVpufferthumbsup

void aspen
#

Yay

raven mirage
#

Well, thanks a lot, i'll try to figure out this)

void aspen
#

I love CA for making so much stuff possible without additional coding

torpid sparrow
#

Wouldn’t that be CP

brave fable
#

thank you Concerned Primate

cedar thorn
#

cheers

round dock
#

Crying Potatoes

void aspen
#

Maybe

cedar thorn
#

what's the item id code for the pizza recipe?

void aspen
#

Both CP and CA

#

I kinda take CP for granted too, gotta appreciate it more

buoyant moon
#

I'm torn between just writing events in the standard format and just getting something functional out vs. working on my tooling to make it easier to write them in general because even if I understand the event script format it's annoying to work with as a single massive string

tiny zealot
#

single big string is annoying, but at least you can use line breaks nowadays

buoyant moon
#

technically it won't throw an error in the game but my IDE doesn't like it, same for comments

vernal crest
#

Comment complaints are easy to fix by setting an association between json and jsonc or using the CP schema

#

Multi line complaints are harder unless you're willing to forgo error checking in which case it's also easy

buoyant moon
#

Is there a CP schema somewhere I can download?

lucid iron
#

!vscjsonc

ocean sailBOT
#
How to make VSCode not scream at json comments

In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add

"$schema": "https://smapi.io/schemas/content-patcher.json"

at the start of your content.json file.

lucid iron
#

You can just put that

buoyant moon
#

oh nice, thanks

brave fable
#

how to identify if your project has become too big```cs
// lawful activity
foreach (var type in Assembly.GetCallingAssembly().GetTypes())
{
if (type.IsAssignableTo(typeof(IItemDataDefinition)))
ItemRegistry.AddTypeDefinition(Activator.CreateInstance(type) as IItemDataDefinition);
else if (type.GetCustomAttribute<XmlTypeAttribute>() is XmlTypeAttribute attribute && attribute.TypeName.StartsWith(ModConsts.SpaceCoreXmlPrefix))
Interfaces.Interfaces.SpaceCoreAPI?.RegisterSerializerType(type);
}

#

an abundance of these wretched types needing registry

slow basin
#

it feels like ive been doing schedules forever but I only have 3 days of the week of spring done 😩

#

plus rain

#

its mostly running around finding the right tiles

#

i must position them specifically

brave fable
#

remember that there's not enough time in the day for your npcs to visit many places, particularly if they're far apart

#

best keep schedules simple but memorable

#

e.g. standing in front of a microwave for 6 hours

calm nebula
calm nebula
brave fable
#

dastardly deeds

calm nebula
#

What makes that difference from furniture

brave fable
#

similarities: both are made of wood
differences: tables don't grow

#

and of course the ever-important category text and colour

lucid iron
#

Welcome back custom bush 2k26

#

Takenth from us by the minecraft mines

brave fable
#

hey i made custom bush first. i'll damn well make it again

calm nebula
#

Minecraft?

#

A table comes close enough to growing....

#

Does the sprite index get saved

lucid iron
#

hikawa
Unfortunately you aren't earning any more emojis with this one bluebs

calm nebula
#

Ie, can you "just" increment the sprite index

brave fable
#

it's worth at least🌹🍊🌸✂️

#

no, this uses conditional and seasonal appearances and draw layers

lucid iron
#

No u already have 🪴 ✂️

brave fable
#

debating whether to add better immersive pruning mechanics to roses

uncut viper
#

why is it even a debate

brave fable
#

well the scissors were also Ornamental since they didnt do anything. but now they can immersive prune

lucid iron
#

One of the custom bush 2.0 scope creep is the ability to reduce size of bush by pruning

#

So they grow back to full size later

brave fable
#

well you dont have category text or generated held objects or draw layers or any of the other ridiculous plans bouncing around my head so i am NOT rewriting

uncut viper
#

-# yet

lucid iron
#

where 🌙🐛⛩️🚤🌞🍃🏘️🎍🏝️🏐🪴✂️🌿🌹🍊🌸 mod bluebs

brave fable
#

hmmmm you forgot 💎

lucid iron
#

I'm not aware of 💎 pls elaborate

brave fable
#

no 🙂‍↕️

uncut viper
#

Please link us to your design document, blueberry.

#

You have a design document, right

brave fable
#

it's more of a manifesto

uncut viper
#

Ofc you do everyone has a design doc for their mods

lucid iron
#

Oh i did forget something important

#

where 🌙🐛⛩️🚤🌞🍃🏘️🎍🏝️🏐🐦‍⬛🪴✂️🌿🌹🍊🌸 mod bluebs

tiny zealot
#

what the heck is going on in here

uncut viper
#

blueberry has only released clues about their mod in the form of emojis

lucid iron
#

I'm always ask blueberry about The Mod and where is it

brave fable
#

i'm adding more item data definitions

uncut viper
#

using a completely fine method of doing so en masse

brave fable
#

i may have more item data definitions in this one mod than the rest of nexus

#

it's legal

uncut viper
#

I genuinely support it

brave fable
#

thank you for not writing on mass

lucid iron
#

I think there's avg 0 item data definition in C# mods

#

But releasing your mod may push it to 0.01

brave fable
#

it's lonely at the top

jaunty shuttle
brave fable
#

i'm really trying to stick to having these be purely decorative/non-producing

#

because produce means items and items means complexity and involved gameplay

#

and usually machines and i do hate machines

uncut viper
#

My emulator mod that will never be released used a custom item data definition

jaunty shuttle
brave fable
#

i'd like to believe that the definition.rawData field is just the contents of the ROM

uncut viper
#

Maybe if I ever upload it to github you'll be able to see what I did with the item definition

#

Unlikely though

brave fable
#

ships in the night. forever private repos

torpid sparrow
#

how do i overwrite a vanilla npc's schedule?

blissful panther
# brave fable and usually machines and i do hate machines

I'm sort of liking working with machines with the one thing I started working on for the mod fest... but then abandoned because I realised holy hell, the amount of transpilers I would need to litter all over EVERYTHING to get it to work in the end.

lucid iron
#

You would EditData their schedule asset

#

Is custom output method not enough for ur crime

brave fable
#

i'm sure working with machines is fine but conceptually i just don't like them

lucid iron
#

See the number one thing I use machines for is InteractMethod

#

It's free checkAction postifx SMCPufferjail

brave fable
torpid sparrow
#

ok i was worried it wouldnt overwrite and just add another entry

#

and the game would pick the original or something

uncut viper
#

I have never worked with a machine. I've rarely even looked at its data model. I've managed to get this far only because any time machines have been brought up, Selph has materialized shortly thereafter to handle it.

lucid iron
#

What are you hoping to edit

blissful panther
torpid sparrow
uncut viper
#

You're making a mod about spoilers? I can't wait!

#

At least custom output methods exist at all

blissful panther
#

For horses, yes. Increases their speed.

#

Slap 'em in the machine, they come out with a spoiler. /j

torpid sparrow
#

oh well

brave fable
#

i glimpsed outputmethod in passing while trying to work out itemqueryresolver and had to spend a week in bed to recover

torpid sparrow
#

not concerning myself with that

uncut viper
#

Oh putting spoilers on horses makes a lot more sense than what I first assumed

#

I thought you were making custom horse flavour enhancer or something to feed to them

tiny zealot
#

horse flavour

blissful panther
#

In reality though, this mod is being completely shelved... because of the previously mentioned tiny transpilers littered everywhere being required for what it actually does. SDVpufferwaaah

tiny zealot
#

i'm very close to shelving my modfest project

uncut viper
#

Well if it's for the modfest... you can always skip prefix everything for release, and fix it all after

brave fable
#

authors note: do not release a rushed and broken mod to meet a contest deadline. you will win the contest but at what cost

uncut viper
#

My modfest project is also running into some troubles in that I feel like it doesn't have Enough but I don't know what else to add to it.

blissful panther
#

I still intend to get the farm map out for the mod fest! This was going to be a quick little side release... until I realised what crimes I had to do.

lucid iron
tiny zealot
uncut viper
#

You might win another category at least

brave fable
#

oh right it's scored by numbers

uncut viper
#

There are also two grand winners, one for downloads and one for endorsements

tiny zealot
#

and early release gives you more time to get numbers (bad rules design)

slow basin
#

Almost done with spring shcedule 🙌

uncut viper
#

(I agree with that)

#

I consider it a miracle they even added that extra 30 days after the announcement

torpid sparrow
#

there are two prizes

lucid iron
#

Would u just win 2 times if u had highest in both yggy

torpid sparrow
#

no

uncut viper
#

No

blissful panther
brave fable
#

yeah that rather does disincentivise putting in time and effort

torpid sparrow
#

you can only win one prize

uncut viper
#

If you qualify for multiple prizes, you receive one, and only the one with the highest value

tiny zealot
#

i have been complaining about the rules a lot but i want to make clear i had no delusions of winning and i'm not bitter even though i probably sound it

lucid iron
#

Does the other grand prize go to runner up i mean

buoyant moon
#

I wonder how many first time authors there will be in the end

lucid iron
#

I feel there's quite a few

torpid sparrow
uncut viper
lucid iron
#

Just based on new people who came here this month

woeful lintel
brave fable
#

hopefully plenty SDVpufferthumbsup i'm not planning an entry of course. already far too much to do even if i'm drawing funny shrubs instead of doing them

torpid sparrow
#

ridiculous

uncut viper
torpid sparrow
#

(not the shrubs, the design of the contest)

uncut viper
#

Though, I guess that leaves it variable if someone has a billion downloads but only barely ekes out in endorsements, they might win on endorsements and then someone else gets the downloads prize

brave fable
#

aaagggg the intoxicating scent of night jasmine comes thru the window while i struggle to resist drawing more shrubs

lucid iron
#

Oh hey i checked numbers the uiis2 fork is winning now monS

#

That also seems a lil sus

torpid sparrow
#

is it going to win win though

uncut viper
#

They also stipulated that entries must be your own work

torpid sparrow
#

i dont think it qualifies but ive not asked modsetti

lucid iron
#

Yeah I should dm modsetti

uncut viper
#

So, I don't think UIIS2 Alternative qualifies

#

But that's a personal "I don't think", no idea how they'll rule it

uncut viper
calm nebula
#

I saw spoilers

uncut viper
#

(Though really it's more just the fact that I like to think I could've made something that could have a shot, but the motivation factor goes way down with each passing day as I think about how every day unreleased is a days lost potential)

slow basin
#

thinking on it having a contest where people can post day one and then someone post an amazing mod last day but lose due to people not having time to download or endorse feels disheartening

if i understand what is being said

uncut viper
#

That's how it was originally, then they said you'll still have 30 days after the contest ends to rack up downloads before they do the judging

#

That does still mean a day 1 mod gets twice as many days as you though ofc

lucid iron
uncut viper
#

I think it also heavily favours people who had mods unreleased or close to finishing but just hadn't released yet, even if they'd been working on em for a long while now, since already-in-progress mods are eligible

#

Not that I have any idea how you'd moderate that anyway, so I get it

blissful panther
#

You know what should have really happened, in my opinion?

  1. People submit their mods by the 27th of March tagged appropriately.
  2. All mods tagged appropriately are automatically hidden.
  3. All mods tagged appropriately are automatically released on the 28th.
torpid sparrow
#

Oo i had not considered that

uncut viper
#

But I'll admit the sting is a little bit worse when I think about how if I had waited one more month to upload God Rays, it would've had a really good chance

buoyant moon
#

that or actually have a ballot to vote on things some time afterward but that would be more work for everyone (and has its own issues)

torpid sparrow
#

i do think it would be rather hectic when it comes to everyone promoting their mods though

lucid iron
#

Yeah I would explode if I had to say chu spoiler mod for another week i think

#

For me I am a little wow if only i procrastinated on my kids mod for another month kyuuchan_run

#

But I am also glad I been forced to not do yet another framework and get something I really wanted for my next play

uncut viper
#

I want a contest just for frameworks—

#

I love making frameworks

blissful panther
#

I've been too busy to touch my farm mod since the first couple days of the fest, soooo... might be crunch time? For a mod? That feels ridiculous. SDVkrobusgiggle

#

Framework fest!

#

It even works as a name.

uncut viper
#

You're a Junimo DH you can set up a server framework fest

lucid iron
#

Can i win framework laptop

uncut viper
#

All 300,000 people here will love it

#

That'd be pretty apt

blissful panther
uncut viper
#

Retiring from being a Junimo but only for the duration of the fest

buoyant moon
#

I hadn't opened the game in two years and never even made an empty directory for making a mod before the fest started, so if I get even a little slice of my idea published before the end of the contest window I'll be happy

#

I have so many ideas for how to do things right outside of the content itself but I guess I should first aim for something functional

blissful panther
#

I believe!

vernal crest
#

The thing motivating me to try to get a mod done in time is the amount of hype bog's server is giving for all of the team Bog mods. If I manage to release in time I'll get hype for a mod!

hard fern
#

i fell asleep modding yesterday, oops

buoyant moon
#

last night was a lot of things like "oh, this is what I need to add in the base content.json, guess it's time to hit the upload button on Nexus to get an id for the update field"

hard fern
#

well "modding"

#

because i just laid there staring at my ceiling

slow basin
#

i love bog themed mods girl_cuddle_hug_cute_love_teddy

vernal crest
buoyant moon
#

yeah, got a nice round number for my mod ID

hard fern
#

you dont acgtually need to upload to get the number

#

just start making the page

buoyant moon
#

oh yeah I haven't uploaded an artifact yet, that's just what it's labeled at the top of Nexus

jaunty shuttle
#

My brains been trying to scope creep me to make my furniture bog compatible because I think a lot of people would like that and since it’s modfest… but at the same time the later I delay it… SDVpufferflat

#

Plus I don’t use any of bogs stuff so it’d really just be for public appeal which feels weird

#

but it’d be so cool

slow basin
#

ive been having dreams where i've made an entire carnival space to visit and idk how i drew it in my dream

#

my scope creeping is wants to make an entire circus travel carnival cast

hard fern
#

oh right now i remember what i was doing... i was writing a 6...? 8 heart event? i have no clue where I'm gonna put it

torpid sparrow
#

i went back and forth on 12 vs 14 hearts for a while

#

im gonna do 12

#

but thats bc i scope creeped myself to another event for 14 heart

woeful lintel
#

btw @jaunty shuttle, did you see my answer regarding your silks?

fallow musk
#

how to spawn a trinket? debug item [(TR)FairyBox] doesnt seem to work

royal stump
fallow musk
#

thanks

lucid iron
#

If u need to do it in C# use ItemRegistry.Create

royal stump
#

come to think of it, idr if I ever added those to ftm SDVpufferdizzy

#

okay, I did but it's not in the readme, easier fix

lucid iron
#

Esca ftm 2 trigger reloaded edition when

royal stump
#

i've been rotating the monster spawner .cs in my head for like a month, but family medical stuff's dealt with now, so hopefully soon™

#

gotta write that down, add a couple basic triggers, and do some documentation -> beta test

lucid iron
#

One thing that I'd like to have for ftm is despawn on player leaving=true

#

For that behavior to be default I mean

calm nebula
#

I actually was considering doing a new spawning framework TM

#

That would do stuff like "only spawn when player enters map and remove behind them"

#

And then was like yeah uptake on this thing will be Just Me and I'm not doing jack

royal stump
#

i could probably hook up the pseudo-serializer to deal with that, though I'm not sure how it'd affect performance vs just leaving them

#

ig the pseudo-serializer info is more compact memory-wise, but spawning and despawning might affect more clients than a big pile of inactive monsters in memory

#

(issues w/ that were mostly on mobile in my reports, but it was really hard to repro)

tiny zealot
#

my feature request for farm type manager is to not be called farm type manager /j-unless?

royal stump
#

I still might rename it to FTM Spawn Framework (a.k.a Farm Type Manager) or an equivalent silly nexus-seo title

#

though the ID's stuck unless pathos/sinz/co do ID aliasing somehow SDViconghost

uncut viper
#

harmony patch the registry

calm nebula
#

Fuck you too SDVpufferheart

royal stump
#

now that I reread that, an option to auto-despawn when the map is empty would be less complicated SDVkrobusgiggle
I was thinking of the similar issue "unload all monsters and reload them next time a player is here", but just deleting them is fine
(and something content packs have actions for either way)

quasi dew
#

anyone know where the baby sleep animation/schedule info is stored? I poked around in the usual spots and couldn't find it

lucid iron
quasi dew
#

thanks!

royal stump
#

(I'm not sure I even knew Child was an NPC subclass SDVpufferdizzy though ig that makes sense for relationships)

royal stump
#

or SAF for Spawn Anything Framework, but alas, my brand

normal ocean
royal stump
#

the NPC spawning would depend on what's in Disposition.json

normal ocean
royal stump
#

SDV 1.6 removed dispositions in favor of that

raven mirage
#

Ok, guys, i'm really sorry. I still have problem with my earlier question. How do i add a mail after castom quest complited with CP? I tried to do action triggers and with conversation topic and everything. I'm sure i miss some little thing like { but my brain is stuck, at this point i changed all the edits of mail, quest, dialogue so much it's a mess. I would really appreciate if someone can help me.

gaunt orbit
#

Quest or special order?

raven mirage
#

quest, simple item delivery to NPC

gaunt orbit
#

did you try using $action in the reaction dialogue?

raven mirage
#

you mean trigger action? yes, but again i'm already not sure in what i do, it should be in data - quest?

gaunt orbit
raven mirage
#

Well, i delete and start from begining so quest -
"Action": "EditData",
"Target": "Data/Quests",
"Entries": {
"AlyaHPGreyQuest": "ItemDelivery/{{i18n:AlyaHPGreyQuest_name}}/{{i18n:AlyaHPGreyQuest_text}}/{{i18n:AlyaHPGreyQuest_objective}}/AlyaHPName 80 5/-1/0/-1/false/{{i18n:AlyaHPGreyQuest_complite}}"

gaunt orbit
raven mirage
#

Sorry, it took time to try it out and OMG it working now! I sincerely appreciate your help. i am pretty sure i tried it before, mess up some symbol and thought it just don't work) I spent hours with that. Thanks again)

torpid sparrow
#

is there another way to add animations to an existing npc without replacing their spritesheet

calm nebula
#

Yes but

torpid sparrow
#

oh god Big Stardew got to atra

#

Anyone else know SMCKekLmaoDog

lucid iron
#

C# Sleepden

#

There's not really another way that wouldn't be compat hell

torpid sparrow
#

nuts

#

i guess sebastian can just float

barren tapir
#

FML... I just spent more time than I care to admit trying to fix an error that was caused by me misspelling "Amount" ☠️

torpid sparrow
#

you know what

#

i might be a genius

#

physically hurts me that he's sitting on a book but its fine

daring skiff
#

The shadow is kind of funny.

#

(this is fine)

torpid sparrow
#

ok update should be done

#

if i get 20 bug reports i might combust

barren tapir
#

Are there any mods that lets you view the tile coordinates of a map? Turns out it's impossible to talk to Marlon outside of events 😭

calm nebula
#

And call that appearance with a Betas trigger

#

Or smth

patent lanceBOT
barren tapir
#

Wait, I think I found a mod that does this. BRB

royal stump
#

there might be a debug command by now that does tile coords? but anyway FTM has whereami for where you're standing, and there's Debug Mode and such
(as in pathos's mod)

tiny zealot
#

debug ppp will print your location/coordinates

onyx panther
#

(barely anyone even uses xty terminology anymore!)

royal stump
#

that may be where the backronym originally came from SDVkrobusgiggle

tiny zealot
#

oh yes, we've talked about FTM and MTF (monsters the framework) on here before

onyx panther
#

(it's transfem and transmasc now)

royal stump
#

yeah, not an ideal term and it doesn't describe me personally anyway, but it's memorable as a set of letters

onyx panther
#

(less implying trans ppl used to be their assigned gender more inclusive of nb identities)

tiny zealot
#

there's also machine terrain framework if you need more MTFs

onyx panther
#

I always needs more MTFs in my life

#

I mean

#

mods

#

trans Abby mod

#

that's the one I'm working on

#

I added a 5 heart event at the tide pools

#

it's cute and has nothing to do with her being trans anyway lol

ornate locust
#

@lucid iron so I have something odd with adding a tourist to Merchant. Apparently she showed up every single time. Could it be because of the context tags I used for her or something?

lucid iron
#

what kinda tourist did u add

ornate locust
#

Like I got a report of "she showed up way more than anyone else"

lucid iron
#

The default wave one or what

ornate locust
#

Default

uncut viper
#

Maybe she's just a really big fan of their wares?

lucid iron
#

Then she'll show up as long as the store's sells warez

#

You can either reduce her Chance or make her taste highly specific

ornate locust
#

Aha, so it's tied to that. I'll tweak it

lucid iron
#

For reference ||bear only buys maple bar and maple syrup nothing else||

ornate locust
#

Thanks!

valid folio
#

Hi! If I make a short, tiny fruit tree, do the fruit sprites appear above all parts? Or where is the tree’s canopy?

I’m asking because I want to know if the fruits would end up floating above the little tree haha.

lucid iron
#

You can also have her appear on specific days via tourism wave

#

Take a look at dolphin's add on for example (old mariner)

ornate locust
#

I wanted her to basically show up like a normal customer, but it's Alicia and she only just because of you obtained the ability to walk, so she's not a real NPC

#

but apparently she showed up Too Normal

onyx panther
#

I also have planned events at the railroad and one of her going exploring on ginger island :3

lucid iron
#

Yeah i would just put a low Chance

uncut viper
#

So, they will float.

valid folio
long jungle
#

Sorry, noob question here.

Is there a way to reference a variable as a value in content patcher? Assuming the variable's value was set using GMCM.

For example:

"Speed": "{{variable value}}"

In the config, if the variable's value was set to "3", then "Speed"'s value would be "3".

If yes, do you know any mods that I can check the content.json so I can see actual examples?

uncut viper
#

If your config was created inside your content.json, CP creates tokens for you for every config setting

#

Is the config for the same mod you want to check the values in?

long jungle
uncut viper
#

Is this the GMCM configuration for your mod, or for a different mod?

fallow musk
#

trinket fairy is just recolored crop fairy right? or is there a separate asset

long jungle
#

I have no particular mod in mind. I was just thinking if it was possible, for potential future applications.

So yes, probably for my mod, but in the future.

uncut viper
#

When you make a content patcher mod, you can define a config schema within your content.json, and CP will create a GMCM page for you. Any config option you create within your content.json will be able to be used as a token like any other token. So if you create a config setting called "Speed" then you can use the token {{Speed}} in your mod.

#

The value of {{Speed}} would be whatever the config was configured to.

long jungle
uncut viper
#

No, it's a CP thing

long jungle
#

Okay. I see. Thank you! I will read that.

uncut viper
#

That means that information is only applicable to CP mods, not like, Alternative Textures mods

lucid iron
#

The actual feature is "content patcher config schema"

#

You do not need gmcm to use configs since you can actually just hand edit the json

#

Content patcher has integration with gmcm though

long jungle
lucid iron
#

Sometimes i get extremely lazy about all this too

#

And dont put gmcm support in me mod

long jungle
#

Well, it can be a chore. Especially if your mod is very customizable to the player

calm nebula
lucid iron
#

Atra u have a shared class for gmcm integration automagic

#

I simply release without gmcm go edit the config.json pls

calm nebula
#

It's awesome

#

All I need to do is call that one function

#

Esca please don't look under the surface of that one function

onyx panther
#

hey, quick question, is there like a mod that allows you to set up arbitrary counters for stuff?

#

like, just increment a number when an action is done?

uncut viper
#

The vanilla game has that with stats

#

There's an IncrementStat trigger action action

onyx panther
#

so could you make a custom stat then?

uncut viper
#

Yes

onyx panther
#

ok, good to know

royal stump
#

IncrementStat action -> PLAYER_STAT gsq, yeah
the IDs can be whatever you like, so modid_statName etc

lucid iron
#

It's gotta be positive whole numbers

#

And when it hit 0 the stat goes away

merry river
#

hello hello, I want to add one particular object to omni geodes' drops and looked at the unpacked data, am i on the right track making an editdata patch with "749", "GeodeDrops" as target fields and then proceeding with the item spawn fields?

calm nebula
#

Oui

royal stump
#

I do kinda want to write some auto-binders/attribute junk along those lines but I need to do actual Content first

torpid sparrow
#

i cant rmb, is there a way to fix this clipping issue

onyx panther
#

does content patcher have a token for stats?

royal stump
#

no, though I added one to EMP if you're okay with a req and really need one

royal stump
#

stats are unreliable in for other players in* multiplayer, so it's local player only, fwiw

wispy bramble
onyx panther
#

(making a mod that allows you to click on Abby's pillow and it'll tell you how many amethyst you've gifted her XD)

torpid sparrow
#

but ill switch it back to a stool evelyn's core might be made of steel

ornate locust
#

or something lower

#

or you need to be able to place them in a way that avoids the "front" part of the chair

torpid sparrow
#

yeah i figured

#

i was just hoping there was some other fix

ornate locust
#

it'd be nice!

uncut viper
onyx panther
#

to display the number of amethysts gifted

lucid iron
uncut viper
#

[FarmerStat <stat key>]

merry river
#

okay another small question: I want this item to drop only when a specific quest is active, but since there is no GSQ for that, what would be a good workaround? I was thinking of something like PLAYER_HAS_SEEN_EVENTor PLAYER_HAS_CONVERSATION_TOPICin combination with !PLAYER_HAS_CONVERSATION_TOPIC Any quest_complete_<ID>, but I'm not sure if I would achieve what I want to achieve with that

torpid sparrow
#

and that bothers me more

ornate locust
#

If not for the top of the seat, you could just shift her forward, but nope, that's a pain

#

it's the snow on top of the arm of the bench cutting through Bill in winter all over again

torpid sparrow
#

ugh my file is taking so long to be processed

#

omfg

#

i cant stand nexus

torpid sparrow
merry river
#

nexus hasnt been letting me submit bug reports for three days lol

hard fern
#

fell asleep again, had a dream about vampires and werewolves that contributed absolutely nothing to my mod XD

uncut viper
hard fern
#

so far i have taken 2 naps and made 0 progresss L/

uncut viper
#

Use the mail flag to determine if the item drops

ornate locust
#

It is funny to see that those chairs are COMPLETELY UNSITTABLE by NPCs

lucid iron
#

Wait is tilly 2.0.0 incompatible with previous versions

patent lanceBOT
merry river
torpid sparrow
#

Shouldn’t be

ornate locust
#

I think you could shift those chairs down three pixels and have the legs of the chair actually be on a "back" layer and it would roughly look right.

torpid sparrow
#

What happened

#

I just left for class so

#

Scary

#

Chu come back SDVpufferwaaah

uncut viper
uncut viper
# torpid sparrow Wuh

In semantic versioning, changing the first number implies that there was a breaking change i.e. things compatible with previous versions could expect to be broken in this new version

ornate locust
#

programmer jokes that cause non-programmer panic attacks

merry river
#

Oh woops, yeah, I meant AddMail SDVpuffereyes thank you!

uncut viper
#

Fwiw I think chu was genuinely asking

torpid sparrow
#

oh

#

no yeah that's just Wem TM

#

im gonna edit the file description

#

i did change the location names (should be fine) so

ornate locust
#

Programmer jokes questions that cause non-programmer panic attacks

torpid sparrow
#

if something does blow up!

merry river
lucid iron
#

Because that do be what semver means

torpid sparrow
#

theres a small chance something breaks

ornate locust
uncut viper
lucid iron
#

I am also very loose with the minor version vs patch version

#

But I only incremented major version one time ever in modding

torpid sparrow
#

i need to add a disclaimer or something

#

file version is vibes only

#

programming faux pas

ornate locust
#

I think most modders version that way

#

the hobbyists who are not programmers

lucid iron
#

Sometimes major version should apply for content mod

lucid iron
#

For example ESR definitely deserved to bump it

torpid sparrow
#

tbh if i didn't waste so many versions doing bugfixes, i probably wouldn't have done 2.0.0

uncut viper
#

My so far only vibes based major version change was BETAS 2.0.0 to 3.0.0 for Android support to make it clear which versions supported it

lucid iron
#

It's ok even linus bumped linux to 7 bc the minor version was getting too big

torpid sparrow
#

but the idea that i, behind the scenes, did 200 versions does crack me up

lucid iron
#

Oh no it's not a decimal system

ornate locust
#

I go on vibes, you get what you get

uncut viper
#

1.23.5390 is a valid version number

torpid sparrow
#

everybody stop lying to me asap

lucid iron
#

Like 1.99999.42 is still earlier than 2.0.0

torpid sparrow
#

(/lh)

lucid iron
#

Sdv itself has this 5 digit build number

#

You can see it in smapi

#

It goes up every nightly alpha

urban patrol
#

i’m gonna bump DBD to 2.0 with the next major release because i’m both adding a C# component and also migrating internal IDs

#

say goodbye to EdwinPayne and CharlesRowland

lucid iron
#

Yep that's valid (although u should probably use formercharactername too)

urban patrol
#

oh yeah i will for sure

#

same for my baby’s first trigger actions that have wack non matching IDs and keys

torpid sparrow
#

my chinese translator is absolutely done with me /lh

#

with the rate i keep uploading new versions LOL

#

but this one does actually have new strings

urban patrol
#

i’ve heard one thing you can do to make it easier on translators is leave comments on new lines so they can ctrl f

uncut viper
#

When I was still adding stuff to my books mod I started putting all the stuff needing translation in its own i18n json, after support for i18n folders was added

#

Like I had books.json, powers.json, quest.json, and then PLEASE_TRANSLATE.json essentially

torpid sparrow
#

so hopefully they read that but if not someone will alert them

#

im just not sure theyre aware bc they just posted a comment about not updating versions if there are no dialogue changes

urban patrol
uncut viper
#

At the time I included the translations in the mod download itself when they were offered to me, so I just kept all the untranslated stuff still in that same file across versions if I hadn't received any updates

urban patrol
#

oh i see

uncut viper
#

Nowadays I wouldn't bundle the translations myself so I would just move that stuff out across minor version bumps

merry river
#

I did the comment thing for my next npc update as well, just added "New in 1.1.0" next to the line that needs translation

#

are skull cave and mines forage spawns hardcoded?

urban patrol
#

aren’t all spawns hardcoded?

merry river
#

Oh I meant in location data

#

you can add new forage spawns to the other maps but the forage field in data/locations for skull cavern is empty

lucid iron
#

There's no forage in there tho

#

Unless u mean the quartz?

merry river
#

Yeah, I don't know if it's considered forage in the classical sense, but I do mean the items that randomly spawn which you can just pick up, like quartz

#

I wanted to make my quest item obtainable by either finding it in a geode or in the skull cavern, but upon checking the location data, I saw that all the item related fields are empty

lucid iron
#

I think u can ftm spawn stuff right

merry river
#

probably, but I'd have to add it as a dependency and this mod already has a bunch
maybe space core could do the job but that would be a bunch of work for a singular item SDVpufferdizzy

barren tapir
#

Yall, I did it! I created a test Special Order from Marlon that adds a DropBox to the Adventures Guild (its location is even SVE compatible)! It even waits to appear until the player has built a Slime Hutch!

Now all I need to do before making the actual quest is to figure out how to send crafting recipes via a letter as a reward after the quest!

This means that I've almost reached my initial beta goals of my "Expanded Slime Ranching" mod! I plan on trying some of the other additions I've marked as simple as well!

lucid iron
#

Psh another dependency never hurt anyone

#

I do think spacecore could probably do it though

urban patrol
#

yeah for spacecore it’s three patches

merry river
uncut viper
#

I think mod users can get over it 😌

lucid iron
#

Fwiw, ftm is sve dependency

urban patrol
#

make a spawning definition, make a spawn group of definitions, trigger action spawn thing

lucid iron
#

It's ubiquitous

barren tapir
barren tapir
uncut viper
#

Correct

#

Well

#

Button's Extra Books

merry river