#making-mods-general

1 messages · Page 78 of 1

rancid temple
#

Lol, based on this screenshot I don't even know if this is validation

vernal crest
#

It doesn't actually mention validation in the plugin either but someone on StackExchange says it gives an error if the json is wrong

rancid temple
#

Ah yeah, the github says it does validation

#

Feels really roundabout lol

faint ingot
#

Making a mod and most of my custom NPC's dialogue is fine. However this morning they just say "..." and I get this error, I'm not sure where to look

cobalt cradle
#

Is anyone on that can help me with this issue

proven spindle
amber radish
#

can anyone guide me on what i would need to create my own internal farmhouse map layout ?

faint ingot
cobalt cradle
proven spindle
proven spindle
faint ingot
cobalt cradle
#

It happens pretty much all the time while I'm trying to get him to work.. I'm going by the wiki that tells you how to create them and it just tells me the numbers that tells you the direction they're supposed to be facing and they're not working so I thought something might have changed I'll figure it out thanks anyway..

proven spindle
vernal crest
proven spindle
vernal crest
faint ingot
#

It's a bit weird that they were trying to use the funleave key instead of the key I set up for that specific day, but oh well

vernal crest
#

Did your schedule have them leave the farm?

faint ingot
#

yes

vernal crest
#

Then that is why.

#

It is hardcoded to switch to using that key when they are leaving the farm. I don't know the specifics about exactly when they do it, but it's very annoying lol

#

If you want to have different lines for different days of them leaving the farm, you'll have to use dynamic tokens or other token wizardry, I think.

faint ingot
#

yeah I think I could figure that out but its probably not worth the effort. Thank you though.

vernal crest
#

I am not looking forward to doing marriage stuff for Hiria

faint ingot
#

Well now I'm really confused because it turns out I DO have the key it says I don't have... I'm pretty sure!?

#
            "funLeave_Shannon": "{{i18n:Shannon_Marriage_funLeave_Shannon}}",
            "funReturn_Shannon": "{{i18n:Shannon_Marriage_funReturn_Shannon}}",```
vernal crest
#

Yup that does look like the right key

faint ingot
#

I guess I'll just play around with it some more maybe I'm missing a different key and the mod from SinZ didn't catch the right one idk

vernal crest
#

It's definitely in your MarriageDialogueShannon file? Not in regular dialogue by mistake or something?

faint ingot
#

yes but thank you for checking that

vernal crest
#

Just grasping at straws lol

faint ingot
#

yeah no worries I appreciate it but it's time for me to turn in anyway so I'll sleep on it and poke it more another time.

vernal crest
#

Good luck, I hope you can find it when you get back to it

junior scaffold
#

Can anyone help me understand why I can't seems to replace the white and black cat icon, I can replace the other cat but the black and white does not get replace 🥺😭

hallow prism
#

!json so we can see how you try to do it

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.

mellow verge
uncut viper
#

(i just want it to be known that logo deserves a million appreciations for reporting a bug with my contest entry mod asap instead of letting it go to the judges like that ok that is all goodnight thank u logo)

edgy sluice
#

Helo! While I was playing in multiplayer with my friend, he came up with an idea of mod: when both players have their spouses, NPC will react to that in conversations, for example - I'm living with Shane and he's living with Harvey, and when I speak to Shane, he will say: Harvey is helping me with rehab or something, or they will do some things together on farm.
Does the mod like that already exist? Someone have heard?
If not, would anyone be willing to join me doing it?

final arch
hallow prism
rain basalt
#

Hmm 🤔 I know you can use {spouse} to key in loads as a check not sure if there’s a spouse2 for farmhands I’m sure there’s a reference tag somewhere

#

I checked CP and only saw for current players spouse and roommate tokens didn’t see anything for farmhands tokens

calm nebula
#

Ie, you have to write every spouse with every other spouse, it gets to be a lot

hallow prism
#

i was hoping that you could check something like "this npc relationship is married and this npc relationship is not married with player"

#

i believe it's possible with GSQ?

#

what kind of mod are you making?

novel nacelle
#

sry wrong chat

hallow prism
calm nebula
#

oh, and dialogue itself supports gsq these days

hallow prism
#

but i assume you can get stuff like "leah is married to someone else than player", trigger a flag, and then edit spouses dialogues based on "leah is married to someone else than playr"

#

but it's quite advanced for a first mod

#

i would try something simpler (unless someone provides a template)

calm nebula
#

ah, I see

#
        {
            "Action": "EditData",
            "Target": "Characters/Dialogue/Haley",
            "Entries": {
                "atravita.SpamMail.Clothing": "{{i18n: haley-clothing-married-other}}$h"
            },
            "When": {
                "Spouse:anyPlayer": "Haley"
            }
        },
        {
            "Action": "EditData",
            "Target": "Characters/Dialogue/Haley",
            "Entries": {
                "atravita.SpamMail.Clothing": "{{i18n: haley-clothing-married-player}}$l"
            },
            "When": {
                "Relationship:Haley": "Married"
            }
        }
#

(note the same dialogue token being used)

#

the first line is for "Haley, married at all", and I override it with "PC currently married to Haley"

#

(note that this is fragile/doesn't quite work right in splitscreen, but that's not a Me problem, that's a game/framework problem)

hallow prism
#

oh yeah that's cool and would work nicely for their concept

calm nebula
#

(but yeah, if you want x spouse to comment on y other spouse, that gets to be combinatorix bad amounts of work. I think DialogueOverhaul does do that....a tiny bit...for Emily and Haley. That's it.)

#

(also note that "spouse" turns true as soon as they're engaged, but that's acceptable to me)

placid kite
#

Hi all you cool ppl 🙂

I'm trying to move some warp points added to the BusStop map over by 10, however although the new warps have been added, the old ones still exist.

Is there a way to remove warps as this is what I have tried (Load Order doesn't have any impact, as thats what I thought the issue was first):

{
  "Format": "1.26.0",
  "Changes": [
    {
      "Action": "EditMap",
      "Target": "Maps/BusStop",
      "When": {
        "HasMod |contains=TheLimeyDragon.Ayeisha": false,
        "HasMod |contains=MineralTownArchitects.MineralTown": true
      },
      "RemoveWarps": [
        "33 6",
        "33 7",
        "33 8",
        "33 9",
        "33 10"
      ],
      "AddWarps": [
        "43 6 Custom_HM_UndergroundTunnel 0 8",
        "43 7 Custom_HM_UndergroundTunnel 0 8",
        "43 8 Custom_HM_UndergroundTunnel 0 8",
        "43 9 Custom_HM_UndergroundTunnel 0 8",
        "43 10 Custom_HM_UndergroundTunnel 0 8"
      ]
    }
  ]
}
calm nebula
#

Is Remove Warps even a thing?

hard fern
#

Idk

#

Ive never seen someone remove warps before

hallow prism
#

yeah i don't find it on CP doc

vernal crest
#

No, there is no RemoveWarps field. You'd have to use MapProperties to replace the Warp map property, I think.

placid kite
#

Welp, time for more trial and error xD

naive depot
#

Hey guys, I'm assuming that the position of a entity drawn by draw() is relative to the camera, anyone know if that's correct?

vernal crest
placid kite
rancid temple
#

Or is this to accommodate another mod changing the bus stop size?

#

(changing vanilla map sizes is a problem)

vernal crest
#

Oh that is also a very old format, I just noticed

naive depot
#

Hey, is there any way to draw at an absolute location? Like not have the drawing follow the camera?

sweet sphinx
#

good mornin, I decided to put the different animal skin into their own subfolders, which lines do I have to now change?
{{ModId}}_RedChicken
and/or
Mods/{{ModId}}/RedChicken
and/or
assets/{{TargetWithoutPath}}.png

vernal crest
#

The third one

sweet sphinx
#

just the third one?

vernal crest
#

Yep

#

The first one is the ID for your chicken, the second one is the asset name you create to put your texture into, and the third one is the actual file path for the file containing your texture to put into the second one.

sweet sphinx
#

ahh

vernal crest
#

Both the first and second are completely arbitrary - they are named according to convention, not need. The third is named according to need - you must specify the correct location of your file.

rain basalt
#

AlwaysActive option is disabled anyone know if this is a map property or do i need to hunt down something else

vernal crest
#

AlwaysActive is a Data/Locations field

sweet sphinx
#

so I'm guessing I need both
assets/Chicken/{{TargetWithoutPath}}.png, assets/Rabbit/{{TargetWithoutPath}}.png

vernal crest
#

Okay sorry hang on a second

#

I misinterpreted your first question as being about multiple skins for the same animal (like a red skin in a "red" folder, purple in "purple" folder etc)

#

If you're doing this for different animals, then you do need to change all three, sorry

sweet sphinx
#

I have multiple, I just offered the chicken's one for ease of info

vernal crest
#

You can't have multiple files inside your FromFile field

rancid temple
#

Sorry, using notepad to do json while having the VSC website open in the background is taking me out

vernal crest
#

Yeah I know I laughed

sweet sphinx
#

I just woke up, I haven't gotten to it yet

#

XD

vernal crest
#

You will either need to split up your Load code blocks so you have one per folder or do some token magic to rewrite your FromFile line

#

I am bad at FromFile tokens so I won't be much help

rancid temple
#

The easiest way is just to split up the Load

sweet sphinx
#

this better?

vernal crest
#

I always think about how DSV has a million tokens in the FromFile, think "I can do that" and forget theirs are all config

#

Yeah that looks right to me

sweet sphinx
#

woo!

vernal crest
#

Okay roku I hope you're ready. I'm about to start another C# mod and I have already forgotten everything xD

vague acorn
#

Hi!
I am an avid modder of other games (mostly Minecraft, 5M downloads there), and I wanted to get into modding SDV.
Are there some good tutorials or resources for amtauer modders? preferrably stuff about setting up the environment and other basic stuff before i delve deeper

vernal crest
#

Can I just copy and paste my first one rather than going through the whole project creation thing again?

rancid temple
#

!startmodding

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.

vernal crest
#

I should just try rather than asking easily verifiable questions

rancid temple
#

You probably should set up a new project, technically you can just copy paste but renaming everything is a huge pain

sweet sphinx
vague acorn
#

also hello!

#

may our journeys be fruitful;

sweet sphinx
#

I've already got some animal skins working in just a day, :D

rancid temple
#

If you're just trying to make some simple content mods, Content Patcher is gonna be a good choice, it can handle quite a lot

#

Otherwise, for anything requiring something that is either hardcoded still or not handled by the game, you'll need C#

#

There are also several frameworks that work either on their own or in combination with CP to allow you to handle some of the hardcoded stuff still

vague acorn
#

oh prefect, i used to write a lot in c#

vernal crest
#

Darn it I have to move my repos again

vague acorn
#

another interesting question, is there a concept of "mixin" in SDV C# modding?

#

as in, if there's an existing in game function i want to modify and add my own code to

rancid temple
#

Harmony

#

Sec

vernal crest
#

You're right roku that is a lot of renaming

rancid temple
vague acorn
#

Oh perfect, I’ll give it all a read! Thanks a bunch for all of your help!!

rancid temple
#

That page has basic info on setting it up with SMAPI

#

Pardeike's site has more detailed info about usage

#

For more specifics, you can usually ask here and see if someone has some code they'll link as an example, I have a few transpilers and postfixes I can usually share

#

There's a fairly wide variety of availability for people though, so if nobody answers you'll just have to try a little bit later

vernal crest
#

I find that about 5am-10am my time has the most C# people around

#

I always have to read back when I wake up

#

(It's 12am now, for reference)

rancid temple
#

My sleep times are unreliable, I'll be here basically whenever lmao

#

Looking at AmbientLocationSounds, it's fairly straightforward what it's doing, but it's also so incredibly hardcoded and not going to be much use for making some kind of spacial audio system lol

sweet sphinx
#

either I'm hella unlucky, or my skins aren't working

rancid temple
#

!log if you have any errors that's a good place to start, otherwise a patch summary or patch export is another good thing to check

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

whole raptor
#

I'm guessing now people often use {{ModId}} in names/IDs of their custom NPCs? SDVpufferthinkblob

rancid temple
#

I think ModId should be used everywhere it can be

#

Any internal name/key, make it all unique AF

sweet sphinx
#

no errors(except an old chicken which I got rid of in the code, so obviously) for the skins

soft ruin
#

Good day Wonderful People,
I am not sure if this is the correct place to write this or not (Please let me know if not)
I am trying to add Custom Bush compatibility to Informant Mod.
But I cannot for the love of god manage to calculate the days left to harvest.
I am not even sure what is wrong, I tried many approaches but with no success unfortunately :/

sweet sphinx
#

hmm, wait, looking closer at the error...

vernal crest
rancid temple
#

Feel free to share the link to the log site

sweet sphinx
#

no, i think it was a doubled bracket, gonna relog

rancid temple
#

Honestly, if you start messing with other people's NPC's, you should have to pay some difficulty tax :P

vernal crest
#

Yeah but if you're having to refer to several different NPCs repeatedly I can see that getting annoying.

#

I want people to be able to include Hiria in things!

#

I do tell people to use {{ModID}} though

rancid temple
#

Do as I say, not as I do

vernal crest
#

Lol yes

#

Humm what did Button say the bubbles were

#

addCauldronBubbles

knotty phoenix
#

Something I'm struggling to find in documentation- can CP do volcano forge recipes, like the one that turns the galaxy sword into the infinity sword, in 1.6?

rancid temple
#

I think the forge is still hardcoded

whole raptor
woeful lintel
#

I was on drug (lack of sleep) yesterday when I said I was done with the config. I completely missed the fact that reading the config can fully disable/enable included packs, so I have to read the config and the content at the same type to avoid caching Furniture that would be disabled

rancid temple
#

Sleep deprivation is indeed a hell of a drug

teal bridge
#

Time spent on:

  • Configuration: 30%
  • Documentation: 400%
  • Actually making the framework: 0.2%
woeful lintel
vernal crest
knotty phoenix
woeful lintel
woeful lintel
rancid temple
vernal crest
#

I can see the function, I am just not sure how to point that at my cauldron

rancid temple
#

Wasn't it a temporary animated sprite?

vernal crest
#

Yes it is

#

Oh I can just look for other people's mods that do stuff with TAS maybe

woeful lintel
#

that TAS got me confused for a second

rancid temple
#

What else does TAS stand for?

vernal crest
#

I had to ask what it meant before lol

#

To me it means Tasmania

rancid temple
#

Reminds me of airport acronyms

sweet sphinx
#

well... now there's a new error...

woeful lintel
#

Tool Assisted Speedrun

vernal crest
#

My cauldron is on a map, but so is the vanilla cauldron so I was assuming I could copy what vanilla does

sweet sphinx
#

it says there's something wrong with the first ModId Black Rabbit line

woeful lintel
#

it's like THE TAS

woeful lintel
sweet sphinx
#

ohhh

woeful lintel
#

for the love of efficiency, please use a proper IDE that does real time json validation

rancid temple
woeful lintel
vernal crest
#

Maybe we should all coordinate so that if people have errors that would be picked up by VSC, we just tell them "get VSC" instead of pointing out the error

vernal crest
woeful lintel
#

I wouldn't recommend VSC to people who are only doing json tho, I think there are some lighter alternatives, especially for very occasional json editing

vernal crest
#

But if they want json validation that's kind of their option though. The N++ validation looks weird

rancid temple
#

I still don't understand what people are talking about when they say VSC isn't light lmao

vernal crest
#

Also VSC is not that much

#

Yes, roku, exactly!

rancid temple
#

Like how many extensions do you have to make it not light?

woeful lintel
vernal crest
#

Like it's minutely slower to open than N++

rancid temple
#

addCauldronBubbles isn't that hardcoded anyways

#

It's just adding temporary sprites to a location's temporarySprites list

woeful lintel
#

I've also seen people complain that it's hard to learn (I disagree but I thought that it was a valid opinion)

rancid temple
#

Like most of it can straight up be copy pasted, just need to replace a few things

#

Such as the tile location and the game location

woeful lintel
#

oh, nice for them then

vernal crest
#

I'm glad roku is confident about this

#

I looked at this and went SDVpuffersweats

switch (base.QualifiedItemId)
{
case "(F)Cauldron":
    base.IsOn = !base.IsOn;
    base.SpecialVariable = (base.IsOn ? 388859 : 0);
    if (base.IsOn)
    {
        location.playSound("fireball");
        location.playSound("bubbles");
        for (int i = 0; i < 13; i++)
        {
            this.addCauldronBubbles(-0.5f - (float)i * 0.2f);
        }
    }
    break;
rancid temple
#

I mean, that's kind of where the confidence ends, if I had to fabricate a temporary animated sprite I would perish

woeful lintel
#

Idk, honestly I'd be happy to never have to touch TemporarySprites ever again

rancid temple
#

The documentation for TAS is so bad

sweet sphinx
vernal crest
woeful lintel
# sweet sphinx hmmm

the good way to do this is to open the folder with VSCode, this way you'll see all your json files in the file explorer inside VSCode

rancid temple
rancid temple
sweet sphinx
vernal crest
woeful lintel
#

damn I got jumpscared by the spooky discord notification sound, I think that's the first time I've actually heard it

woeful lintel
calm nebula
#

so the special variable is what is important here

#

because updateWhenCurrentLocation checks for the specialvariable and updates ...lastNoteBlockSoundTime

woeful lintel
#

well, each person here will recommend the one they use, it depends what you want to do. Also Visual Studio is different from Visual Studio Code

calm nebula
#

so, if you want your furniture to have the little bubbles, it just needs to be On and have the specialvar set to 388859

rancid temple
#

I tried WebStorm for a little bit, since it's free now, but I didn't like it eating a fourth of my RAM

calm nebula
#

be a mensh. Edit your jsons in vim

woeful lintel
calm nebula
#

(the joke is that on one of my work projects, we have...vim.)

vernal crest
#

Did I just imagine itayfeder asking about VS vs Rider?

blissful panther
#

I thought I saw that too...

hard fern
#

:D i just accept using notepad ++ for everything (i used to use regular notepad before so ive moved up in the world)

calm nebula
#

Anyways, DH, I should show you my new sweater

#

I may or may not have jumped on the hexicardi bandwagon lol

sweet sphinx
#

what's the key to auto send to trash?

blissful panther
#

Ooh, definitely DM it!

rancid temple
#

I still mess up too often to not rely on real time validation lmao

sweet sphinx
#

like, in the game

rancid temple
#

Didn't know that was a thing/is it?

sweet sphinx
#

I thought it was??

woeful lintel
woeful lintel
rancid temple
#

I mean, I wouldn't make it a thing, not with the way the trash can works, since it has no verification and just permanently deletes stuff

vernal crest
#

Focustense made a mod where you can flag stuff to be auto trashed

sweet sphinx
#

i mean like, hold a button and then click the item/stack to send to trash, I thought that was an in-game thing

vernal crest
rancid temple
#

That's definitely a thing in Terraria lmao, not sure about SDV

sweet sphinx
#

😔 damn

woeful lintel
#

meh, VSC is pretty viable for C#, I didn't have much to setup

rancid temple
#

Maybe a mod? I don't recall any modifier keys for inventory interactions in SDV

vernal crest
#

Okay so my "furniture" needs to be "on". Now I just need to learn what that means

#

ANd presumably find a way to make my cauldron a furniture

woeful lintel
vernal crest
#

Oh Button did say that clicking on the cauldron makes it bubble up more

woeful lintel
#

I think it'll be less trouble to just add to your code what's inside of the addCauldronBubble function

woeful lintel
vernal crest
#

I am confused by this new context of furniture. It's furniture that is not furniture? I can't pick up and move the wizard's cauldron or anything.

woeful lintel
#

I recreated it for FF, so I know quite a bit about it

calm nebula
#

oh, the wizard is different

#

that's just a map effect

vernal crest
#

I want the wizard's thingy!

#

I am literally trying to plonk that exact same thing into my own map

#

Not a furniture, just a map with a cauldron that bubbles interestingly

calm nebula
#

WizardHouse.UpdateWhenCurrentLocation is what you want

woeful lintel
#

check StardewValley.Locations.WizardHouse

rancid temple
#

It's literally what's inside addCauldronBubble lmao

vernal crest
#

Wait so I could just write my own version of that for when inside my location instead?

rancid temple
#

Yeah, that's what I was saying before atra came in and told you something else :P

woeful lintel
#

yeah, I think that's what was advised a while ago

calm nebula
#

yup

#

I'm so sorry

woeful lintel
#

gaslighting

calm nebula
#

I saw the code and was like "oh clearly aboo is making a furniture cauldron"

rancid temple
#

I thought you were onto something lmao

calm nebula
#

sooo this is what happens when I don't backread

vernal crest
#

Sorry roku I was trying to understand what you were saying and then when atra popped in I thought they were just continuing what you said

calm nebula
#

or I read one line

rancid temple
#

I am all for following an atra idea, they're usually very good :P

calm nebula
#

sowwy

#

I'll go back to crochet with Sabrina Carpenter

sweet sphinx
vernal crest
#

I forgive you atra SDVpufferheart

calm nebula
#

Meanwhile, I'm asking the question the harmony discord dislikes

#

heyyyy can I inject a static method on a type not my own?

#

(I know the answer is no. I know why the answer is no.)

sweet sphinx
#

I'm mildly surprised there's so many white rabbits, i didn't touch the weight, so ig it's just chance

hard fern
#

Bunny

#

Whats the default chance?

sweet sphinx
#

1.0

#

like the other two, vanilla and black

woeful lintel
#

Ok, I'm taking a break from work (chatting here) to watch re:zero, bye

sweet sphinx
hard fern
#

Well 1/3 is pretty easy to roll (?)

sweet sphinx
#

I also just realized there's 4 red chicks too... I hope the skin weights aren't effected by order...

#

so... I've got the basics for skins down(I think)

I wanna make skins for the ducks, but I need Vanilla Ducks to use their own baby sprite file instead of using White Chicken's baby sprite, so that my skins can also have unique baby skins too

naive depot
#

hey guys, how would I check when the player sends a message in chat, if anyone knows?

hard fern
#

Baby chickens, baby ducks... 👍 Sure look similar irl lol

sweet sphinx
#

yes, but there are a myriad of variations in baby ducks and chicks, and I'd love to add them

hard fern
#

Hmm.....

#

You'd have to find some way to get ducks to do that, if it's possible?

sweet sphinx
#

yeah

#

i'm thinking I need the BabyTexture thing and the Action Edit Image thing, but i'm not sure how to put them together

teal bridge
finite ginkgo
#

It's more generic, but all the frameworks have a Is CP extension column specified, so there's a way to differentiate ones that provide a data asset to edit vs ones with their own content packs

sweet sphinx
#

so, in the game files, Duck is using
"BabyTexture": "Animals\\BabyWhite Chicken",
I'm guessing I need Edit Data?

latent mauve
#

Yep, I was about to point out BabyTexture

sweet sphinx
#

I think I got it?

rain basalt
#

missing a comma

sweet sphinx
#

fixed the misspelling of Data

sweet sphinx
rain basalt
#

see the red squiggle on the blue { need a comma above it

sweet sphinx
#

ah

rain basalt
#

you can also set json with comments to get rid of the red lines on comments

#

@sweet sphinx

sweet sphinx
#

I'm trying to figure out how to do that

rain basalt
#

see the far right bottom red circle

sweet sphinx
#

yes

rain basalt
#

click that spot

#

ip probably says json for you

sweet sphinx
#

i got it!

rain basalt
#

then scroll down to json with comments

finite ginkgo
sweet sphinx
rancid temple
#

You can also set the association for json to always be jsonc

rain basalt
#

now when you get an error you will see a red bar on the right side where you scroll

rancid temple
#

File>Preferences>Settings, search for associations and Add Item *.json with a value of jsonc

vernal crest
#

I always just link people to your last message saying that roku

#

Now I have a new one haha

rancid temple
#

Lmao

#

There's also json5 but I dunno how to make it do that one

#

I figured it out for WebStorm but not for VSC so far

vernal crest
#

VSC doesn't support json5 natively and there aren't any plugins that do validation for it

rain basalt
#

Open VSCode. Go to the Extensions view by clicking on the Extensions icon in the Sidebar. Search for "JSON5 VSCode Plugin" by savh and click Install. Usage Open any.json5 file, and the plugin will automatically activate. Use the Command Palette (Ctrl+Shift+P) to access commands like json5 to json, Format Document or use the button Watch JSON5

vernal crest
#

Hmmm why did I disable that

#

I obviously disliked it for some reason but I don't remember

rain basalt
#

i hate how updates sometimes nuke settings in programs

granite bluff
#

{
"LogName": "Bath House",
"Action": "Load",
"Target1": "Maps/BathHouse_Entry",
"FromFile1": "assets/Maps/BathHouse_Entry.tmx",
"Target2": "Maps/BathHouse_MensLocker",
"FromFile2": "assets/Maps/MensLocker.tmx",
"Target3": "Maps/BathHouse_Pool",
"FromFile3": "assets/Maps/Pool.tmx",
"When": {"Bath House": "true"}
},

#

hey, can i just give my targets numbers like 1,2,3 if i have several targets or do they have to stand alone? how do i do this correctly?

woeful lintel
#

multiple patches

granite bluff
#

okay but i would like to have 1 log name for all 3 -> "Bath House" is that possible?

woeful lintel
#

or {{TargetWithoutPath}}

#
{
    "LogName": "Bath House",
    "Action": "Load",
    "Target": "Maps/BathHouse_Entry, Maps/BathHouse_MensLocker, Maps/BathHouse_Pool", 
    "FromFile": "assets/Maps/{{TargetWithoutPath}}.tmx",
    "When": {"Bath House": "true"}
},

this should work iIrc

#

haven't done CP for a while

granite bluff
#

aaaah :0

#

great thanks alot!

#

i'll try

woeful lintel
#

no problem

vernal crest
#

As long as you ensure your file names match the targets (after the "Maps/" part) then yes Leroy's suggestion works

woeful lintel
#

Oh wait, I miss-typed

#

Ok, now it's good

granite bluff
#

typos are everything xD

rain basalt
#

typos cause 2 things red screen of doom or one line of failed to load mod due to invalid json

woeful lintel
#

Basically, {{TargetWithoutPath}} will be replaced by the name of every file you specified in "Target" (without the path leading to it)

naive depot
#

augh, my brain hurts

woeful lintel
#

I recommend going through the CP documentation to learn about tricks like this

granite bluff
#

where can i find it?

rain basalt
#

i use CP alot and skim alot of things lol

granite bluff
#

nice tip 🙂

naive depot
#

is it even possible to tell if someone has sent a chat message?

naive depot
woeful lintel
hard fern
#

Perhaps one day ill make a smapi mod...

worn coral
#

Happy Saturday - audio related question: is there a way to swap out the "ship" sound when it's triggered by dropping items into the shipping box specifically, but without substituting it through editing Data/AudioChanges? Preferably through Content Patcher or any other mod framework I could unpick at short notice (c# would take me too long SDVpuffercry). Since the sound is used by other vanilla/modded machines I'd like to avoid affecting those if I could.

rancid temple
#

Data/AudioChanges is through CP. Gonna guess the audio cue used by the shipping bin is hardcoded though

hard fern
#

"kathunk!" Probably hardcoded

#

So i don't think it can be done with cp (?)

worn coral
#

Yeah, I can do the Data/AudioChanges no problem, but then that'll change all the machine drop sounds too - that would be a... bit of a funny side effect though SDVkrobusgiggle

finite ginkgo
#

Yeah there's no way to change a sound only in a specific context through CP

worn coral
#

Figured it would probably be hardcoded... but I've run out of ideas on how to search for anything else on Discord so wanted to double check before I gave up

#

(I did look at Spacecore as it can play sound with trigger actions, but that would just overlap the existing sound so probably would end up a bit too messy)

#

Thanks for the confirmation though!

rain basalt
#

<..< have you ever accidently packaged your stuff for upload and forgot to delete the config file from testing

naive depot
hard fern
#

I get paranoid i accidentally packaged some bizzare file on my pc and uploaded it too

woeful lintel
#

@worn coral maybe you can CP patch the sound effect but only when the player is on the map in question. It can still cause "issues" for other mods using it but it might prevent vanilla "issues". Idk tho, I don't know where it's used

rancid temple
#

It's the same sound chests use isn't it?

#

And like all machine loading sounds

rain basalt
granite bluff
#

free love and platonic relationships are no longer 1.6 compatible? i see a disaster coming for me soon 😂

rain basalt
#

lol

hallow prism
#

there is a fork of free love and someone is making a proper polyamory mod to be released in the future

rain basalt
#

you could make a cp mod to edit charecter data based on what your gender is and change all cheracters status to romancable

#

then you would need dialogue

whole raptor
#

!freelove

ocean sailBOT
#
hallow prism
#

ah thanks nomori

#

the command is indeed pretty handy 😄

whole raptor
#

When in doubt, try random command SDVkrobusgiggle

hallow prism
#

!randomcommand

#

pfff

#

i am betrayed

rain basalt
#

lol

whole raptor
#

Damn... there should be one SDVpuffersquee

vernal crest
#

I think EnderTedi's polyam mod works currently even though it's still a beta. It's available on the East Scarp server.

whole raptor
#

We're getting a new poly mod? SDVpuffereyes

lucid iron
#

!stone

ocean sailBOT
#

🪨 The item ID for Stone is 390.

#

New command added! You can use it like !randomcommand.

jolly bane
#

hiya im making a custom event rn, does anyone know how to move two characters at the same time?

calm nebula
vernal crest
#

You can just put two characters into the same move command but also advancedMove works as well

calm nebula
#

you can either use move <NPC> x y facing <NPC2> x y facing or advancedMove

hallow prism
calm nebula
#

depending on what you want

whole raptor
vernal crest
#

With EnderTedi's mod you can specify if an NPC is polyam or monogamous and if polyam, which other NPCs they are okay to be in a polycule with

#

It's so cool

whole raptor
#

So they can decline if player is married to someone they don't like? SDVpufferthinkblob

finite ginkgo
#

Correct

whole raptor
#

Interesting, potentially annoying for harem collectors, but interesting SDVpuffersquee

finite ginkgo
#

I mean it's infact intentionally anti Harem collector SDVkrobusgiggle

vernal crest
#

It makes it the only polyam mod that has interested me so far

whole raptor
#

Fair SDVpuffersquee I definitely see the use of it when it comes to family members hah

#

Speaking of polycule... is it gonna somehow support interactions between spouses? Pure curiosity

finite ginkgo
finite ginkgo
sweet sphinx
#

question, can you marry abigail and the wizard with that mod?

whole raptor
#

It'd definitely be something interesting, I remember a mod that did something similar (Multiple spouse dialogues..? Or something along the lines), but it was a bit janky and worked only on text bubbles, not dialogues. Loved the concept tho

finite ginkgo
#

Yeah multiple spouse dialogues, I remember that

safe mortar
#

What would be the best way to have sprites/portraits change just for an event? Is there a way to effectively un-load them? XD

whole raptor
#

As for other suggestions... would be fun if spouses had like more interactions with the farmhouse/each other besides dialogues. Buuut I'm guessing it'd be much more complicated to implement 😅

finite ginkgo
sweet sphinx
#

the baby ducks and chickens work!

#

now you can tell which baby is a chicken or a duck

whole raptor
#

One time I had a random situation where both Razzy and Welwick stood and "chatted" around a crystal ball I randomly put in the farmhouse. It was so randomly perfect SDVpuffersquee

sweet sphinx
#

why do ducks take 2 days longer than chickens?
the adults!

hard fern
#

Ooh new poly mod sounds interesting

#

I love the idea of your current partner being able to decide who they like and don't like lol

granite bluff
#

i forgot how to warp to a custom location 😵‍💫
Action: "Warp 1 2 Custom_BathHouse_Locker" does not work ..
the file is named BathHouse_Locker

lucid iron
#

you should use Data/Locations now

rain basalt
sweet sphinx
#

cool

rain basalt
#

you can see all the info under data/farmanimals.json

#

and you could target that field and change it to a 1 if you wanted eggs every day

sweet sphinx
#

I don't have a desire to change them, but thanks

granite bluff
rain basalt
#

well then thats the reason why cause someone made it that way but also in RL chickens produce daily ducks every other day if healthy

sweet sphinx
#

cool

vernal crest
granite bluff
#

thanks alot 🙏 couldn't the "addWarps" be done through the tiled app instead by adding it to map properties? Is it necessary to write it in the content.json?

woeful lintel
#

I just made this @rancid temple

#

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

lucid iron
#

can u include a note about "$schema": "https://smapi.io/schemas/content-patcher.json", too

whole raptor
#

This would have saved my sanity when I first switched to modding in VSC SDVkrobusgiggle

vernal crest
woeful lintel
teal bridge
#

You just add it as the first line inside the opening brace.

#

Makes VSC load that schema when you open the JSON, so it validates not just the JSON itself but the actual content inside the JSON.

woeful lintel
#

I meant, I don't know how to edit the command

teal bridge
#

Same way you added it?

woeful lintel
#

oh ok

rain basalt
#

can you set a warning on nexus for downloading a new version

granite bluff
#

oh my goooooood i forgot to add the custom map. holy, i'm rusty with this XD thanks anyways

ocean sailBOT
#

New command added! You can use it like !vscjsonc.

woeful lintel
#

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

woeful lintel
#

Pathoschild is typing... I hope I'm not about to get scolded

granite bluff
#

it worked 😭

lucid iron
blissful saddle
#

how do one import SpaceCore library to use on a mod in VS?

rain basalt
#

definatly getting scolded lol

blissful saddle
brittle pasture
lucid iron
#

hm its jumping in triangle

blissful saddle
hard fern
#

Spider

ivory plume
#

Hi! The format is:

TouchAction ConditionalDoor <game state query>

The player can only walk past that tile if the game state query matches. If the query fails, then the player is stopped and a message is displayed. This is meant to be used alongside Action ConditionalDoor, so that you can't walk through a door into a locked area even if the door is open.

The message can be customized by setting a LockedDoorMessage property on the Buildings layer. That part is clearly broken (since a Buildings tile will block the player regardless of the touch action), and the game doesn't actually use this currently; I'll move that to the Back layer, which is probably what was intended.

rancid temple
#

Ohh, so it's like a conditional barrier, that's neat

#

Thanks SDVpufferheart I'll add it to the wiki when I get a chance

blissful saddle
#

I am just trying to correct this CS0246 here:

brittle pasture
#

hmm looks like you need to add a DLL reference to SpaceCore

lucid iron
#

are you sure u need it

brittle pasture
#

doesnt seem SpaceEvents is exposed through the API

blissful saddle
#

nope, but I want to follow how LoC do somethings

lucid iron
#

you dont have to?

blissful saddle
#

not yet. I am yet considering making a mod that may use it

lucid iron
#

loc is a spacecore skill so it has to ref spacecore by default

blissful saddle
#

I just want to know

lucid iron
#

are you making a mod like that

blissful saddle
brittle pasture
blissful saddle
#

sounds like 'adding a library' to me

naive depot
#

Hey, how would you send a message in chat using SMAPI?

#

nvm, think I found it

#

nvm

#

did not find it!

blissful saddle
#

confused

naive depot
hard fern
lucid iron
#

you can use ChatBox.textBoxEnter(string str)

#

its not a smapi thing

naive depot
#

thank you very much (:

ivory plume
sweet sphinx
#

how the game makes 3 of the chickens buyable through 1(one) randomised icon is mildly infuriating, is there a way I can separate them out?

lucid iron
#

you have to make them separate animals

#

but there's mods that split up the skins iirc

sweet sphinx
#

I don't mind the skins being all in one animal, I'd like White Chicken, Brown Chicken, and Blue Chicken to be separated tho, so I can better check skins, and so when I impliment my own animals, it doesn't look as out of place

brittle pasture
lucid iron
#

yea that one, unofficial in the comments

brittle pasture
#

you can achieve that kinda effect with just content patcher. remove brown and blue chickens from white chickens' AlternatePurchaseTypes, and make brown and blue chickens purchasable on their own by setting their PurchasePrice

silver pelican
#

I made a map and set Outdoors: T in its map properties along with a Music value. My issue is that, when it rains, it doesnt make that raining sound. Idk if it's because of the Music value?

oh nvm. i think it's being overwritten by setting a Music property. :/ idk if theres a workaround.

teal bridge
#

@ivory plume Since you appear to have a few moments anyway, is there a way to get a normal .pdb output when using the mod builder? It seems to suppress the normal build options and always embed the pdb, which is nice for releases but prevents me from using any offline tools in between the dev and release steps.

#

I'm hoping it's just some option I'm missing, but no one else was able to give a working answer.

brittle pasture
#

(and also don't forget to gate blue chickens' UnlockCondition behind Shane's event)

sweet sphinx
#

yee

brittle pasture
#

yeah Pintail. I don't know if that's actually what it does (I don't use it lol), just vaguely heard that's what it allows you to do

sweet sphinx
teal bridge
#

Pintail isn't a reflection library, it's the library that supports the parts of the API you do see.

rancid temple
#

I don't understand how to use Pintail at all :D

teal bridge
#

The answer is: you don't. You never use it directly.

lucid iron
#

it adds ducks to your game

lucid iron
#

(duck-typing)

brittle pasture
#

(don't forget the ending commas)

teal bridge
#

It's just there, it's part of how SMAPI does its API integrations.

blissful saddle
blissful panther
teal bridge
#

No, never.

blissful saddle
#

mine dll is directly in Mods\SpaceCore

blissful panther
#

I've... always gotten a separate one.

#

Be it on Windows or Linux. Weird!

teal bridge
#

Are you sure? Using current versions of tools?

bright panther
#

Will stardew valley switch from using Brute for console and mobile to using Native AOT once monogame fully supports it? It might make it so the team can make updates for pc and mobile and console all at the same time or much faster, right?

teal bridge
#

You get a PDB for your mod?

blissful panther
#

Across the years I've been using ModBuildConfig, yeah.

lucid iron
#

im on linux and i never seen a pdb

rancid temple
teal bridge
#

I have never once seen a pdb emitted from the modbuildconfig.

lucid iron
#

do u have funny csproj or some older modbuildconfig?

woeful lintel
#

what's a pdb?

brittle pasture
rancid temple
#

Should be just removing the [CORE] part

blissful panther
#

Weird.

lucid iron
#

its symbol files for dll

teal bridge
bright panther
#

minecraft bedrock removing pdb recently AngeryTime

ivory plume
woeful lintel
#

yeah, no, I don't have it either

teal bridge
#

I tried again, just to be sure, and... no, no pdb.

blissful panther
#

I'm not even using the DebugType property...

teal bridge
#

I have tried the pdbonly, portable and full settings and none of them produce a pdb.

#

Maybe it conflicts with some other setting?

ivory plume
#

Just to make sure, did you put that <PropertyGroup> after the package import in the project file?

teal bridge
#

No - really, that can matter?

ivory plume
#

Yes, MSBuild is order-sensitive.

sweet sphinx
#

so where do I put the condition for the blue chicken?
"Condition": "RANDOM 0.25, PLAYER_HAS_SEEN_EVENT Current 3900074",

teal bridge
#

Hm... still not seeing a pdb, sadly.

brittle pasture
#

since that's used for making white chickens turn into blues 25% of the time, which we don't want if we're making them standalone

sweet sphinx
#

mk

calm nebula
#

doesn't seem to work for me either

teal bridge
#
<ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
    <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.1.1" />
    <PackageReference Include="Pathoschild.Stardew.ModTranslationClassBuilder" Version="2.0.1">
        <PrivateAssets>all</PrivateAssets>
    </PackageReference>
</ItemGroup>

<PropertyGroup>
  <DebugType>full</DebugType>
</PropertyGroup>

No PDB.

blissful panther
#

Why am I the only person here who's consistently gotten PDBs?! SDVpufferwaaah

rancid temple
#

Hax

calm nebula
#

Dr. Frankentense, do any of your tools work with the xml docstrings?

#

because apparently I have that

teal bridge
#

Yes.

#

The only thing you can't get from xml docs or reflection is the file names and line numbers.

#

So if I want to generate source links, I need the pdb.

blissful panther
#

Oh, very interesting.

ivory plume
calm nebula
#

<GenerateDocumentationFile>True</GenerateDocumentationFile> btw

blissful panther
#
<!--embed symbols for error stack trace line numbers on Linux/macOS: https://github.com/dotnet/runtime/issues/39987-->
<DebugType>embedded</DebugType>

ModBuildConfig should be overriding this on Linux.

shrewd path
#

Running into some code issues, The Game can't seem to pull my textures up in game not sure why here is an example of code would anyone be able to help me id the issue?

lucid iron
teal bridge
calm nebula
#

(that was to DH)

#

who seems to have them when he shouldn't

lucid iron
#

it works fine on linux blobcatgooglyblep

calm nebula
#

they should be embedded (because otherwise it breaks on mac/linux)

teal bridge
#

I'm fine to temporarily change the type to non-embedded, I just want it to work locally.

rancid temple
shrewd path
#

Content Patcher

rancid temple
#

Right but what does that block look like

blissful panther
#

Aha! There's the "problem" if we can call it that. The zipping is catching a stray old PDB from the obj directory that isn't present in the actual deployed mod directory.

teal bridge
#

Hahaha, that's funny.

shrewd path
#

Taking a Guess but you mean a Block like this?

teal bridge
#

Always clean your build!

blissful panther
#

That's the thing... I do!

teal bridge
#

So you've actually been bundling a wrong PDB with your mods.

velvet narwhal
#

no, your content patcher load block

rancid temple
teal bridge
#

I wonder how many other mods out there are like that today.

calm nebula
#

(a lot)

lucid iron
#

say what if you decompile your mod with ilspy

#

to get the embeded pdb out

teal bridge
#

Can it export a pdb?

#

Oh, there's a "Generate Portable PDB" menu item, hmm... wonder if Cecil can read that.

ivory plume
lucid iron
#

yea there's --generate-pdb arg in ilspycmd

#

if u wanna automate it

shrewd path
#

Oh I have the From File Looking for SweetGemGrow.png

teal bridge
rancid temple
acoustic summit
#

Hi all! Trying to avoid a harmony solution if possible, do any of you know a good method for preventing the use of staircases in a minelevel? 🙂

teal bridge
#

Harmony.

lucid iron
#

delete all their staircases on warp

#

and all their stone

teal bridge
#

Or you can maybe try to block the button press, but... harmony is better.

ivory plume
rancid temple
#

CP remove staircases from the game

velvet narwhal
#

make the stairs transparent

acoustic summit
#

harmony it will be SDVpuffercry

teal bridge
#

If you really really need to avoid Harmony for some reason then I think it might work if you hook the button press/change event, check if the player is next to a staircase, and suppress the button if so. Have to do this for all action buttons.

rancid temple
#

They spawn a ladder though, then you'd just have a transparent item in your inventory

shrewd path
teal bridge
#

But even then, eh... you'll have to worry about whether the player is really trying to activate that staircase or e.g. trying to use an item. Harder than Harmony.

rancid temple
shrewd path
blissful panther
blissful saddle
#

is LoC the only popular mod that adds a custom stats bar like the Stamina/Health ones?

calm nebula
#

no

#

the hunger/thirst mods tend to

#

so does mana, but I may forget which corner it is in

blissful saddle
#

oh

calm nebula
#

hi Casey!

next plaza
#

S&S adds a mana bar (though we call it aether) once you progress far enough

blissful saddle
#

we have working hunger/thirst mods?

rancid temple
#

Casey was summoned by mana

next plaza
#

Though it isn't in the same spot as the other bars

#

I assume the updated Magic mod still adds a mana bar as well

calm nebula
#

clearly you need to add a Status Bar Organizer to Spacecore

next plaza
#

I thought about it

calm nebula
#

someone made a hunger/thirst mod, I know at least one exists

next plaza
#

I made a hunger mod at one point

teal bridge
#

Unrelated, but is there an existing set of instructions for how to add a shared assembly reference (e.g. for those using SpaceCore's types directly?)

ivory plume
next plaza
blissful panther
#

And Casey beat me to it.

blissful saddle
#

I found Survivalist rebooted

knotty phoenix
blissful saddle
#

my question was raised because LoC checks for health and stamina bars to position its own, but doesn't have API reference to a later check to check for LoC bar to add a forth one correctly

#

so I was wondering how multiple bars are usually implemented

lucid iron
next plaza
#

Oh, I think Walk of Life adds a bar too

rancid temple
next plaza
#

Something combat related, probably the limit break stuff

rancid temple
#

But whether or not it's something you can fix is up to you

blissful saddle
#

interesting

blissful panther
brittle pasture
#

and presumably all these extra bars are stepping on each other's toes?

lucid iron
#

Yeah pathos was answering my q about enabling that bit which sets up debugging in modmanifestbuilder

blissful panther
shrewd path
#

Alright Thats work! Time to fix my code Thanks again @rancid temple !

teal bridge
# next plaza Using the manifest builder, S&S just does this: ``` <ItemGroup> <SMA...

Yeah, I know of the manifest builder and I'm adding that as the simple/recommended way, but wanted to know if there was any existing guide for the "old-fashioned" way.
(I am not asking these questions for my own sake; I am asking them because I'm writing documentation for how other people should go about doing this if they need to, and it's better to link to existing docs if they exist instead of creating another version that may go out of date)

next plaza
#

Fun fact, I have to do that for windows sometimes or it gets built/launched in the wrong directory

#
  <!-- This sometimes fixes running the game from the right folder when I use an environment variable to override my game path. No idea why -->
  <!-- Other times it breaks it when it was working (which is only sometimes)! Joy -->
<!--
  <PropertyGroup Condition="'$(OS)' == 'Windows_NT'">
    <StartProgram>$(GamePath)\StardewModdingAPI.exe</StartProgram>
    <StartWorkingDirectory>$(GamePath)</StartWorkingDirectory>
  </PropertyGroup>
  -->
teal bridge
#

Is $(GameModsPath) a ModManifestBuilder specific thing, not available in vanilla MBC?

sweet sphinx
#

so I got it working... how do I centre their pics?

next plaza
brittle pasture
next plaza
#

(Even before the the manifest builder, I just used <ProjectReference>... which obviously won't work for most people)

uncut viper
blissful panther
#

From an old mod before I used the manifest builder:

<ItemGroup>
  <Reference Include="SpaceCore">
    <HintPath>..\..\Versions\1.5.6\Mods\_Core Mods\SpaceCore\SpaceCore.dll</HintPath>
      <Private>false</Private>
  </Reference>
</ItemGroup>
brittle pasture
lucid iron
#

its a bit annoying that u have to put the correct mods dir

brittle pasture
#

otherwise IIRC they default to the animal icons which isn't centered nicely

sweet sphinx
#

ohhh

teal bridge
#

Actually I just looked at the targets file and SMAPI defines GameModsPath, don't know why I thought it wasn't there.

knotty phoenix
sweet sphinx
#

where do I find the vanilla ones? so I have a template to work off of

brittle pasture
#

somewhere in LooseSprites/Cursors

velvet narwhal
sweet sphinx
#

thanks

brittle pasture
#

but it's not too much effort to just paste an animal sprite into a centered 32x16 PNG, load it and use it yourself

sweet sphinx
#

ahh, 32x16

#

idk why this isn't skinning my brown chicken

shrewd path
#

Is there a flag that can be set for Shipped Crops?

#

Mail Flag I mean

rancid temple
uncut viper
sweet sphinx
#
  1. Didn't know I could do that
  2. how?
haughty charm
#

Skins are a field within the entry to add the animals

shrewd path
#

In my case I'm looking to set up a flag for Sweet Gem Berry Shipped

uncut viper
#

unfortunately that is not tracked in some way last i checked

#

not in an accessible-to-CP way

brittle pasture
shrewd path
sweet sphinx
#

it's a modded brown chicken, not a vanilla one

rancid temple
#

You're still adding it to Data/FarmAnimals

#

So the Target is still wrong

calm nebula
uncut viper
uncut viper
#

turns out im misremembering

sweet sphinx
uncut viper
#

okay Unit, ignore everything i just said, use a game state query

#

PLAYER_SHIPPED_BASIC_ITEM Current <whatever the gem berry item ID is> [min] [max]

shrewd path
haughty charm
rancid temple
sweet sphinx
#

so, like this?

uncut viper
#

Skins is a list, so you need to put that within brackets

#

dont remove the braces tho, they contain one object, its a list of skin data objects

haughty charm
tepid escarp
#

Hey, I feel like I’m going crazy. In my event, I change to a new location and want to fade in but the globalFadeToClear doesn’t work and for some reason even though both characters are on the same Y axis, they are offset. I use offset commands before the location change but even when taking it out, they are still offset. Can anyone please help? :’)

sweet sphinx
#

better? (idk why it's marking the : )

uncut viper
#
"Skins": [
  {
    "ID": {{ModId}}_RedChicken",
    "Weight": 1.0,
    "Texture": "Mods/{{ModId}}/RedChicken",
    "BabyTexture": "Mods/{{ModId}}/BabyRedChicken"
  }
],
"ShadowWhenBabySwims": null,
sweet sphinx
#

thanks

brittle pasture
#

(also recommend use TargetField to target Skins directly for mod compat, so you dont wipe skins added by other mods)

uncut viper
#

i thought this was a custom chicken

sweet sphinx
#

it is

#

technically

brittle pasture
#

Oh I thought this was a skin for a brown chicken

sweet sphinx
#

it's a skin for a custom brown chicken

brittle pasture
#

one that you buy alongside the vanilla brown chickens?

sweet sphinx
#

I wanted to separate the vanilla chickens into their own buy slots

sweet sphinx
uncut viper
#

i think this is fine, then

brittle pasture
#

Then I think TargetField is still relevant

uncut viper
#

if this is a new custom chicken with their mod id in it that just happens to give a brown chicken by default, its no different than a new modded farm animal

brittle pasture
#

no, Brown Chickens are already their separate animal types

#

you just can't buy them directly

uncut viper
#

thats what theyre changing, though, adding a shop entry to them to be bought directly, from my understanding of what they said

sweet sphinx
#

yee

uncut viper
#

so adding a new animal that has the same properties as a brown chicken

brittle pasture
#

No they aren't? They're just modifying the vanilla brown chicken fields to enable direct purchase?

sweet sphinx
#

no

#

it's a whole new chicken

uncut viper
#

ive been awake for like 20min im only goin off what they said and the snippets ive seen in those minutes ¯_(ツ)_/¯

brittle pasture
#

Aaaa okay
But in that case the vanillla brown chickens still exists in the files and completely inaccessible

sweet sphinx
#

yup

brittle pasture
#

which might have undesired side effects

#

I had assumed you were just unlocking the vanilla Brown Chickens

haughty charm
#

I would honestly call it something other than "Brown Chicken"

uncut viper
#

its a different sort of mod incompatibility for sure

sweet sphinx
brittle pasture
#

I dont recall, IIRC everyone suggested just unlocking vanilla Brown Chickens

#

instead of cloning it into a new near-identical entry

uncut viper
#

(i assume the old chickens wont be accessible due to the egg item ID thing, but how come they wont still show up in the shop after they add this modded one?)

brittle pasture
#

because their price is not set

sweet sphinx
#

oh... ok

brittle pasture
#

Brown Chickens, Brown Cows and Blue Chickens are separate animals that isn't purchaseable directly in Marnie's, but have a chance to replace White Chickens/White Cows due to the latter's AlternatePurchaseIds field

reef cosmos
#

I'm still pretty new to using tiled, can someone tell me why these tiles keep flipping? I've had to rotate them because I don't see any facing the direction I need, but each time I open the map they're reset to default position

uncut viper
#

but wont the white chicken still exist in the shop anyway, making them accessible just from buying the normal white chicken?

sweet sphinx
#

so, smth like this?

brittle pasture
velvet narwhal
brittle pasture
#

(Because I assumed they're not making a clone Brown Chicken)

uncut viper
#

oh, i see. thats on me for workin on incomplete information then

sweet sphinx
reef cosmos
brittle pasture
sweet sphinx
#

:D

shrewd path
#

Hey sorry to be a pain again, but is there a Wiki page on Sending Letters to players? I can find the one on Mail Data but it doesn't seem to say how to create the letter you want to flag

brittle pasture
#

(is it case sensitive)

uncut viper
#

(serves me right for not going with my trusted address bar autocomplete)

rancid temple
#

It probably doesn't like the space

uncut viper
#

genuinely ive seen people mess it up more than ive seen it work so i dont know how it works

vague acorn
#

question: is it possible to add a new skill type? i have looked and the skills are all hard-coded into an enum, is there a way to go over that?

uncut viper
#

spacecore has custom skill support stuff

sweet sphinx
#

well... I have the white chicken, but not the blue or brown ones

velvet narwhal
#

into gov mansion i go

rancid temple
#

Case sensitive and it doesn't like spaces (for farming computer commands)

uncut viper
#

if you want to use the API directly without SMAPI in between you need to add it as a project reference, but you can probably just use SMAPI's API helper to grab spacecore's API without needing to touch spacecore's DLL

brittle pasture
# sweet sphinx

Your price fields are in the wrong location, should be outside of the ShopSourceRect box

sweet sphinx
#

mk

brittle pasture
#

remind me in 4 hours to maybe add DLL reference to that page

patent lanceBOT
#

Got it, selphers (#6325478) (4h | <t:1729983694>)

uncut viper
brittle pasture
#

(being polite today, robot?)

uncut viper
#

maybe maru's robot deserves a treat

brittle pasture
#

Hmm sending treats to the robot doesnt work

velvet narwhal
#

i'm out of treats i think

uncut viper
#

im giving mine out very selectively until they let us buy more

brittle pasture
#

I havent given any because I have terminal "but what if I need this healing item for the endboss" syndrome

uncut viper
#

the worst part about that syndrome here is that if we extend the analogy its not even gonna heal you. you're keeping from using a potion to heal someone else in case someoen else needs it later. brutal /lh

#

people in here have started using blueberrys emotes too much i keep thinking theyre lurking when theyre not now. first demetriums and now relieved

velvet narwhal
#

will we even be able to buy more? SDVpufferthinkblob

uncut viper
#

eventually

velvet narwhal
#

oh time to switch to demetriverse

uncut viper
#

"A bit later on you will be able to buy more trick or treats in the event shop for 10 points."

sweet sphinx
#

I forgot the rquirement, but YES!

brittle pasture
#

Looks like I need to push my SDVpufferrad agenda more

vague acorn
#

question: how do i load up SpaceCore into my IDE?

uncut viper
#

we answered this

brittle pasture
#

(to be fair we didnt ping so it probably got lost above)

vague acorn
#

yeah if you did i missed it probably

#

sorry

#

could you perhaps ping me the answer?

brittle pasture
vague acorn
#

i want to be able to use using SpaceCore

uncut viper
#

that is also answered by those messages (project reference). but why do you need to?

vague acorn
#

hmmm i see

#

interesting, ill look into all that, thanks!!

brittle pasture
uncut viper
whole raptor
#

I think I'm going slightly insane trying to figure out css "bug" on the web converter SDVpufferpain

mellow verge
uncut viper
#

if you're replacing the standard farm then adding a new location of "Farm_Farm" isn't going to correspond to it, so i dont think any of what you've written there is actually doing anything at all

#

try changing it to "Farm_Standard"

#

that said, if you do that you'll want to use Fields and not Entries too because you donb't want to overwrite everything else with null

#

Fields lets you only change the stuff you want to while leaving everything else (like DisplayName) untouched, whereas setting it all to null would be very not good if you dont like broken text and such

#

(that only works for the top level field though, so if you use Fields but then change FishAreas you do still need to make sure you fill out all the fields inside your FishAreas, like Lake1, appropriately)

#

(if theyre SUPPOSED to be null thats fine just make sure you know which ones are okay to be null)

shrewd path
#

Alright back again with yet more issues I think I set up the Trigger and the Mail correctly but I cannot for the life of me to get it to work in game

uncut viper
#

remove the <> and [] symbols

tardy adder
#

Ok its not unseizing even after removing the stuff changing vanilla weathers...

uncut viper
#

if something is wrapped in < > it just means its required, if wrapped in [ ] it means its optional

tardy adder
#

Description update: I accidentally cursed winter 7

#

😭

shrewd path
uncut viper
# shrewd path On the Conditon line only yes?

you dont hjave them anywhere else in that screenshot SDVpuffersquee so yes. thats just how documentation denotes required vs optional parameters to functions and such. that said i do also notice an extra ] in your mail itself before the title

#

(no other < >s anwyay)

#

also, do you want the mail to be given that same day?

#

AddMail defaults to sending it tomorrow, so if you're using DayStarted, you wont get it until yuo goto sleep again

shrewd path
#

If the Berry is Shipped on Spring 1 I'd like the letter to be sent Spring 2

oak umbra
#

What's the best way to make new items such as furniture, hair and cloths for StarDew?

uncut viper
uncut viper
shrewd path
#

This should look right then now?

uncut viper
#

almost, you're mail key in your AddMail action doesnt match what you're adding to Data/mail

#

you're missing a .Mail

shrewd path
#

Oh wait would the Now go after Current?

#

or before

uncut viper
#

neither. it goes at the end

#

of the entire line

shrewd path
#

Thanks!

oak umbra
shrewd path
#

This should be right now then I hope

oak umbra
#

How about a new farmhouse? Also Content Patcher?

uncut viper
shrewd path
uncut viper
oak umbra
#

Thank you.

shrewd path
#

Right back into the Testing Trench

#

Thanks Boo!

oak umbra
#

I'll make it and see if it breaks

shrewd path
#

So alot of these Heart events happen in the "Void"

#

But what you can look into is PIF which allows you to add rooms to the default house

oak umbra
#

Will do, Thanks

#

Might add a new building to the town instead and make it an apartment.

mellow verge
# uncut viper if you're replacing the standard farm then adding a new location of "Farm_Farm" ...

Thank you very much for your answers. However, I still can't figure it out. I wrote this json file based on another modder's map file on the Nexus. I just don't understand how to write the structure of the json file correctly, so I took someone else's template for simplicity. I need to fill three bodies of water on my farm map: 1) a forest lake (dark forest), 2) a mountain lake and 3) a river. I need typical types of fish, can be found in the forest river, in the forest pond and in the mountain lake. Could you please explain step by step how to do this and / or show a simple template for this? I've been racking my brains over this for several days, and I am very upset that I can't do anything.
As for the name "farm", it is listed in the list of maps, not "standard" as far as I know.

sweet sphinx
#

idk why it's not skinning the brown ones now

safe mortar
#

ok i've just been scratching my head over this still. It says it can't find the files in my event mod (this is the changed part i'm messing with)"continue/64 30/farmer 64 16 2 Jas 63 16 0 Vincent 65 16 0 Penny 64 16 0/skippable/changeSprite Penny SpiritsEve_Sprite/changePortrait Penny Penny_SpiritsEve/changeSprite Jas Jas_SpiritsEve_Sprite/changePortrait Jas Jas_SpiritsEve/changeSprite Vincent Vincent_SpiritsEve_Sprite/changePortrait Vincent Vincent_SpiritsEve/ They're named/structured like this and loaded into the game. (Anyone who can help, feel free please! It's my first mod. I thought I was done but I didn't mean to permanently replace their sprites/portraits - I just wanted them for the event itself.)

#

(content.json)

shrewd path
#

I'm at the end of my rope on this, Found a Stray Curly that might have been breaking the whole dang thing and when I remove it it breaks the whole dang thing again

velvet narwhal
safe mortar
safe mortar
velvet narwhal
#

is event is a conditional field only, you can't throw it anywhere in your loads

shrewd path
sweet sphinx
shrewd path
#

%item object [<id> <count>]+ %%

safe mortar
velvet narwhal
#

if you're doing this on fresh saves, that's fine, but trigger actions will only ever trigger once

brittle pasture
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.

sweet sphinx
shrewd path
velvet narwhal
#

patch summary <uniqueid>

#

since you have an i18n key though, do you have the i18n folder and default.json setup?

brittle pasture
sweet sphinx
#

yeah, one sec

sweet sphinx
velvet narwhal
#

yeah patch summary will show that your edits have gone through in the form of it showing Data/TriggerActions -> [x] on applied

brittle pasture
shrewd path
velvet narwhal
#

smapi console

brittle pasture
sweet sphinx
#

no? b4 I added the white skins, it was working fine, I has a red/rhode skin on one of the brown one's I owned, but when I got on and looked, the red one was brown

shrewd path
#

Okay so Patch Summary doesn't seem to show the trigger

#

Which means it's not likely been added, so I wonder do I need to take that content to the content.json rather than the mail.json?

brittle pasture
#

Pls try buying new chickens regardless. Maybe you changed the ID inbetween testing

sweet sphinx
#

mk

#

it works!

lucid iron
#

now make them all attac chickens

sweet sphinx
#

idk how to do that :3

rain basalt
#

lol
Concept: "Is wolf"
Food: "White Chicken, Brown Chicken, Red Chicken"

#

.> by the way thats a joke so dont spend time trying to get it to work

sweet sphinx
#

lol

shrewd path
#

okay so I think I am a little further along in trying to get this mail to work

#

But I can't get it to trigger

velvet narwhal
#

that mail is an include, right?

#

if so, it can't have the format in it, only "Changes"

brittle pasture
shrewd path
#

Yeah it's the include the code from mail.json file since the game won't load it without it being called by content.json?

rancid temple
#

What's in your mail.json?

shrewd path
velvet narwhal
#

the only file that needs "Format": 2.3.0 is the content.json

rancid temple
#

Definitely remove that yeah

#

Is Unit.CP.GemBerryExpanded your UniqueID from your manifest?

shrewd path
#

Yes

#

I think I just need to take a break from this for tonight, I tried just moving all the stuff to Content.json

#

And it's applying the Trigger

#

But isn't actually triggering

rancid temple
#

Did you try on a new save?

shrewd path
#

Going to now

rancid temple
#

If you had already triggered that trigger action before, it won't trigger again

#

If you want a trigger action to trigger multiple times you have to set the MarkActionApplied field to false

#

But if you've already gotten that trigger action triggered on a save, you have to do something to unset it

#

I don't remember the ways to fix that at the moment

shrewd path
#

Didn't trigger on a new game

jolly bane
#

Hi! im trying to make friendship hearts decrease after a ten heart event with a quick question but "friendship <npc> -1000" isnt working, any tips? thank you!

hallow prism
#

hard to say with just a bit of the event

rancid temple
shrewd path
jolly bane
hallow prism
#

maybe but it's not my point

#

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

rancid temple
#

Unit.CP.GemBerryExpanded

hallow prism
#

thanks

rancid temple
#

I asked earlier to check too lol

hallow prism
#

😄

lucid iron
#

what does Flicker in temporary animated sprite do

safe mortar
# velvet narwhal is event is a conditional field only, you can't throw it anywhere in your loads

oh so that's why this isn't working {
"LogName": "Load Vincent Trick Or Treat Portraits",
"Action": "Load",
"Target": "Portraits/Vincent",
"FromFile": "assets/images/Vincent_SpiritsEve.png",
"Condition": "IS_EVENT 1031328"
},
{
"LogName": "Load Penny Trick Or Treat Sprites",
"Action": "Load",
"Target": "Characters/Penny",
"FromFile": "assets/images/Penny_SpiritsEve_Sprites.png",
"Condition": "IS_EVENT 1031328"
},

velvet narwhal
#

yeah no, you have to change the target

#

so make it something like "Target": "Portraits/Vincent_Spirit"

hallow prism
#

did you ship the item?

shrewd path
velvet narwhal
#

remove the condition from those loads

hallow prism
#

you may have said it already

#

it's just harder to backread a lot then return then return to backread

#

so

#

hmm

#

let me check something

#

"Action": "AddMail Current Lumisteria.MtVapius_AsterWelcomeMail tomorrow"

#

single action is no []

#

plural actions is []

rancid temple
#

Lmao, sure is

hallow prism
#

ex

#

                //Satchel reward
                "Lumisteria.MtVapius_JunimoSatchelGiftTrigger": {
                    "Id": "Lumisteria.MtVapius_JunimoSatchelGiftTrigger",
                    "Condition": "!{{HamletProgress|contains={{Range: 0, 5}}}}",
                    "Trigger": "DayStarted",
                    "Action": "AddMail Current Lumisteria.MtVapius_JunimoSatchelMail tomorrow"
                },
                
                //Visited place
                "Lumisteria.MtVapius_JunimoClearingVisited": {
                    "Id": "Lumisteria.MtVapius_JunimoClearingVisited",
                    "Condition": "PLAYER_VISITED_LOCATION Current Lumisteria.MtVapius_ForestJunimoClearing",
                    "Trigger": "DayStarted",
                    "Actions": [
                        "AddConversationTopic Lumisteria.MtVapius.JunimoClearingVisited 6",
                        "AddMail Current Lumisteria.MtVapius_JunimoClearingVisitedMail received"
                    ]
                },```
#

so you need either to use the first format or use actions (no idea if it causes issue to have only one listed then, but i don't think it would cause any)

rancid temple
#

Can't believe I missed that SDVpufferpensive

hallow prism
#

it's one letter

rancid temple
#

I was staring at that spot for so long lmao

hallow prism
#

i saw action then the brackets and i was "hmm, wait a sec, the single action format is different i believe"

shrewd path
#

Okay trying that now

safe mortar
rancid temple
#

I wonder how that translates, definitely seems like Action receiving a list or array should cause an error lol

velvet narwhal
#

if you've used the appearances, if you're using an event, you call those portraits like changePortrait Vincent Spirit

#

or you don't even have to use appearances if this is all in event

hallow prism
#

congrats 🙂

#

the good news is that once you have one working the other are easier

shrewd path
#

It's the wrong seed in the mail BUT

#

Thats easy fixed

hallow prism
#

tips : i saw you edited all objects in separate patches

#

you CAN totally group them

#

you don't have to, but you can

shrewd path
#

Group them how?

#

Cause I have one file per object in the asstes folder

rancid temple
#

Entries is a collection of keys

hallow prism
#
    {
      "Action": "EditData",
      "Target": "Data/Objects",
      "Entries": {
        "GemBerryExpanded_WinterGemBerry": {
          "Name": "GemBerryExpanded_WinterGemBerry",
          "Type": "Fruit",
          "Category": -79,
          "DisplayName": "{{i18n:WinterGemBerry}}",
          "Description": "{{i18n:WinterGemBerry_description}}",
          "Texture": "Mods/Unit.CP.GemBerryExpanded/WinterGem",
          "Price": 300,
          "Edibility": 15,
          "ContextTags": [
            "color_blue",
            "season_winter",
            "modid_GemBerryExpanded",
            "Gem_Berry"
          ]
        },
        "GemBerryExpanded_WinterGemSeeds": {
          "Name": "GemBerryExpanded_WinterGemSeeds",
          "Type": "Seed",
          "Category": -74,
          "DisplayName": "{{i18n:WinterGemSeeds_name}}",
          "Description": "{{i18n:WinterGemSeeds_description}}",
          "Texture": "Mods/Unit.CP.GemBerryExpanded/WinterGemSeeds",
          "Price": 100,
          "ContextTags": [
            "GemBerryExpanded_crop_seed",
            "GemBerryExpanded_season_Winter",
            "GemBerryExpanded_shop_none"
          ]
        }
      }
    },```
#

this (check that i copied stuff properly)

#

unless you want at some point enable only parts of your mod with config, regrouping them is making stuff easier to find

rancid temple
#

You can keep your files separated, won't have any effect on the code

shrewd path
#

Ahhh

hallow prism
#

(i suggest maybe wait another day to do it, and keep a backup)