#making-mods-general

1 messages · Page 275 of 1

vernal crest
#

Yes, there's a texture override and drop override

rigid musk
#

Pff... berrieses

hard fern
#

Weedses

gray bear
#

makes perfect sense

craggy cape
#

does schema go above or below the format

hot gale
#

Below

craggy cape
#

ah oke i got it right then

#

i added the hardmode section ++ moved the entire arimarket.json to content.json in the sunberry file i created

hot gale
#

oh you mean json schema? I put it above

craggy cape
#

ah

hard fern
#

(which schema)

craggy cape
#

CP schema? i think

vernal crest
#

ConfigSchema

hard fern
#

Are you trying to make a config or no:

vernal crest
#

I don't know that it'd matter anyway because they're at the same level

#

It might do

hard fern
#

I guess just to be safe

craggy cape
#

well kai added schema to my code to fix it , so.

hard fern
#

Well that.... That probably didn't actually fix anything

hot gale
#

It just alerts to errors and ignores some, like trailing commas

vernal crest
#

"$schema" doesn't actually do anything in game, it just changes what error handling happens in your text editor

hot gale
#

I believe that takes extra setup to work in VSCode

craggy cape
#
{
  "Format": "2.6.0",
  "$schema": "https://smapi.io/schemas/content-patcher.json",
  "Changes":
(...)```

is the start of the sunberry RSSI patch im makin, :P
hard fern
#

Since CP ignores comments and vsc (the one im using) doesn't, it just makes things less annoying

hot gale
#

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

vernal crest
#

You can change your VSC settings so it doesn't complain about trailing commas at all for JSON files regardless of whether you have the CP schema present

#

Which I do because I don't bother with the schema

spring marlin
#

im fine with having a buff icon as long as it stays throughout multiple days and won't be overwritten

craggy cape
#

i did try to make it configurable, but im still not too sure on how to make the menu appear in the gmcm ( unless all i really do need is a config.json file with the corresponding names )

#

not in the same menu as RSSI this tim e

hard fern
#

It will auto geneerate a config.json on load, and that's what will show up in gmcm

craggy cape
#

ah

vernal crest
#

Oh whew, I just wrote my advancedMove command wrong. Please let that be the only problem 🤞

hot gale
#

Nothing I do makes my shop work 😭

#

Going to bed for real this time, gonna bug y'all tomorrow sometime :p

#

Only a few changed files since last time it worked 😭

vernal crest
#

Just a couple

craggy cape
#

stupid question
what does the configschema look like / aka which one should i useSDVpetcatangy

hot gale
#

This is the configSchema for my mod

craggy cape
#

oh thats what the configschema should look like

hard fern
#

Have you ever looked at the config section on whatever wiki page had the instructions for making a mod

craggy cape
#

if im hoenst

#

no

hard fern
#

Problem number 1

#

You might be way less confused by everything if you read it

craggy cape
#

eh

craggy cape
#

some wikis confuse me more than help me understand

vernal crest
#

Please do not refuse to read the docs, Dottie.

#

We aren't your personal guides and we're not here to do work you refuse to do.

hard fern
#

The docs outline everything you need to know

craggy cape
#

okok

#

i also didnt see the config part of the wiki anyway

#

but ye lemme look at that now

modern pebble
#

{
"LogName": "Schedule",
"Action": "Load",
"Target": "Characters/schedules/Bella",
"FromFile": "assets/schedules/Bella.json",
"When": {
"HasSeenEvent": "16554812"
}

},
gray bear
#

royal stump
# spring marlin im fine with having a buff icon as long as it stays throughout multiple days and...

Then the basic idea is to look at trigger actions to use the AddBuff action, game state queries to set up the "Condition" field, and buffs to create a custom one. You can use CP to edit all of the data for that.

The base game only has a few basic trigger timings, though, so you'd probably need SpaceCore's OnItemEaten or some such. I'm not familiar personally, but someone else might be. (Also I don't think max health is a supported stat either, now that I check that wiki page. SDVpufferthinkblob Buffing defense might be the closest option.)

Here's an example content.json file for a CP pack that I happen to have already. At the start of each day, it adds a buff if the current player has the mail flag in "Condition": https://smapi.io/json/content-patcher/de157f091fc949a6b13e7a43395a6c84

You'd probably need to set up a second trigger with SpaceCore's addons to make it set a mail flag after eating, and also apply the buff right away.

#

(also it uses the TileSheets\\retro_furnitureFront texture because it has a lot of blank space, so the icon should be hidden)

vernal crest
#

I've done a buff on item eaten with spacecore

craggy cape
#

welp, time to add the other.. 3? 2? shops

#

i already lost count of sunberries shops lmao

#

i think theres actually 8

spring marlin
latent mauve
#
spacechase0.SpaceCore_OnItemUsed - use item GSQ conditions to check the right item, make sure to set UseForTriggerAction in ObjectExtensionData (see further below) for that item to true
spacechase0.SpaceCore_OnItemEaten - use item GSQ conditions to check the right item```
spring marlin
jagged sun
#

Guys which mod allows you to have 3 kids from github? I will download it

vernal crest
jagged sun
#

@lucid iron its her/his mod

spring marlin
vernal crest
# spring marlin im having a bit of trouble figuring out what exactly to do, can you make a simpl...

I can show you an example of something that uses the trigger you need and the condition to use (though if you want to use item ID rather than context tag, you will have to find the right GSQ for that - I can't open my Firefox right now so I can't search for it). You'll need to search the trigger actions page for the actions you want, since mine won't be quite what you're after because it's an action that adds one random buff from a list of buffs instead of just adding one buff. I think there's a vanilla AddBuff action.

        {
            "LogName": "Add Trigger Actions",
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModID}}_Buff": { // Apply a random buff for the rest of the day once the Mysterious Candy is eaten
                    "Id": "{{ModID}}_Buff",
                    "Trigger": "spacechase0.SpaceCore_OnItemEaten",
                    "MarkActionApplied": false,
                    "Condition": "ITEM_CONTEXT_TAG Input trick_treat",
                    "Actions": [
                        'Spiderbuttons.BETAS_RandomAction "AddBuff statue_of_blessings_0 {{BuffDuration}}" "AddBuff statue_of_blessings_1 {{BuffDuration}}"',
                        "AddMail All {{ModID}}_Graveyard now"
                    ]
                }
            }
        }
#

See how you go using this example, the SpaceCore docs, and the trigger actions & GSQ pages to figure out your own. If you get stuck I can try to help you.

gentle rose
# jagged sun Let me know

It's very frustrating for us to have to answer the same question for you over and over again when you keep coming back and asking it like we didn't. Scroll up to the last time you asked this, the link will be there.

modern pebble
#

oke guys, now im regret using chatgpt... have to write it from zero

#

don't make the same mistake as me

hard fern
#

It will spit out useless code

gentle rose
#

didn't we warn you about that before you even started?

jagged sun
gentle rose
crude plank
#

If you are making a mod and you were already helped, there's a search feature

gentle rose
#

They aren't making a mod, scarlett, they want the download link to a mod we already linked them to like ten times.

hard fern
#

Adding on bc i feel like ive seen a lot of this lately, it's like. Impossible to help when said person doesn't even try to do anything

crude plank
jagged sun
#

Jeez people are so mean here like thank god im not the only one who noticed that

vernal crest
#

@outer glacier

gentle rose
#

we're mean for not answering the same question ten times because you can't be asked to actually read our answer the first nine times? if that's mean I'm okay with being mean

jagged sun
#

You send me link only once and you all kept spamming so I lost it and didnt see

#

And the link for that mod was sent ONCE

ornate trellis
#

it's not mod MAKING related tho so you're in the wrong place to begin with

gentle rose
#

anyway, I'm going to put you on ignore now

jagged sun
#

Ty

jagged sun
crude plank
#

Each channel has a description

ornate trellis
jagged sun
#

Okay thanks

spring marlin
ornate trellis
#

on another note, I think for the ten heart dialogue for my NPCs I gonna use that random thingie for some more variety thonking maybe. tho for now i am ok with just weekly dialogue lol

gentle rose
#

four times I could find at a glance btw goonthen

lusty halo
ornate trellis
#

yoooo

rigid musk
rigid musk
tough crater
#

I swear there's a console command to export game files from when the game is loaded, but I can't find the command for it anywhere (I'm trying to see what's going on with a texture recolor).

I thought it was patch export <filepath>

ornate trellis
#

that should be it afaik

jagged sun
#

Like when yesterday I came here foe the first time some people were sarcastic and made fun

tough crater
ornate trellis
#

do you have console commands

rigid musk
#

I really do hope you can find what you're wanting 😔

ornate trellis
#

or did you miss the folder name in front of the file

#

...no wait that probs has a diff error message, hm

tough crater
#

I put patch export TileSheets/furniture.png

calm nebula
#

Get rid of the file extension

tough crater
#

OH that makes sense

#

Well that fixed it 💀

#

Thanks!

fading walrus
#

Please don't engage

#

Let's not quarrel in here, everyone happyfrog

calm nebula
#

Thank you, quill

fading walrus
#

Hi Atra!

#

I hope I get time to pick up my WIPs again

tough crater
#

What are your WIPs?

fading walrus
#

Maybe this month I come out of retirement after all

calm nebula
fading walrus
# tough crater What are your WIPs?

I have a few! A UI recolour that requires significant work to get it 1.6 ready because I stated working on it during 1.5, a food mod, a soda mod, and a few fun ideas that are currently on the backburner (No assets exist for them yet because I haven't started working on them)

tough crater
#

Those sound awesome! :D

fading walrus
#

I don't really showcase my WIPs here, but I'll appear out of the woodwork with a finished mod at some point - uni's been really kicking my butt, haha

#

Sniping me with a pat, eh Dora kek

unreal spoke
#

Get patted, nerd. SDVpufferchickcool

fading walrus
rigid musk
#

So many WIPs so little time

#

so much time spent trying to fix weird issues

#

Is there a context tag that prevents something from being put in the dehydrator

vernal crest
#

The red mushrooms can't go in, so maybe something they have? Or it might be the other way around and only certain context tags can go in.

rigid musk
#

Also has anyone had any experience doing wild tree spawning with maps?

#

I think red mushrooms dont have the edible_mushroom tag which lets them be dehydrated

#

which wouldn't work with the berries since they're a fruit

#

I suppose 'berrieses' is kinda funny though

brave fable
#

any reason why Pink and Yellow couches sit me on the left side (bad), while the Green couch sits me in the middle (good)? the collision and sprite size data is identical:```json
"{{ID}}_Flower_Couch_P": "{{ID}}_Flower_Couch_P/couch/2 2/2 1/1/1500/-1/{{i18n:furniture.flower_couch.name}}/209/{{PATH_S}}\Sprites\Furniture/true",
"{{ID}}_Flower_Couch_Y": "{{ID}}_Flower_Couch_Y/couch/2 2/2 1/1/1500/-1/{{i18n:furniture.flower_couch.name}}/211/{{PATH_S}}\Sprites\Furniture/true",
"{{ID}}_Flower_Couch_G": "{{ID}}_Flower_Couch_G/couch/2 2/2 1/1/1500/-1/{{i18n:furniture.flower_couch.name}}/213/{{PATH_S}}\Sprites\Furniture/true",

(ignore my idiot wife)
rigid musk
#

my god... those are so cute...

calm nebula
#

Check how cranberry wine works

rigid musk
#

thank you

#

also for context I have both of these done but I get the warning in the console that it doesnt have the 'SpawnTree' property still

#

(for what i was referencing with trees and what not)

brittle pasture
#

check out Strings/Objects for the cranberry stuff

#

though hmm the dried fruit override is not used in vanilla
you want to add something like DriedFruit_Flavored_(O)YourItem_Name to override the dried fruits name for your flavor

ornate trellis
rigid musk
brave fable
#

right. the green couch has rotation 0 and the yellow couch has rotation -2 (?? ??? ? ?)

lucid iron
#

These couches look tasty

ornate trellis
rigid musk
#

very... im also getting like, weird tiles where i cant walk into them even though there is literally nothing on any layer other than the back layer for them so

#

it's very fun /sarc

ornate trellis
#

you sure theres nothing on them? maybe you have selected empty tiles and put them on the building layer. those usually are not noticeable

#

happened to me when i put down my petrified tree

rigid musk
#

delightful :3

rigid musk
#

like they actually become a solid object?

ornate trellis
#

when they are on the buildings layer, yea

rigid musk
#

how would i even be able to tell :L

ornate trellis
#

thats the fun thing

brave fable
#

by carefully checking your map in tiled from time to time, or using Data Layers to check it ingame

ornate trellis
#

you dont until you walk into em

#

right, data layers can tell. which i usually dont remember i have(like rtf)

#

not sure bout your tree tho

#

is everything else on the paths layers working?

#

also, have you tried a different tree ID

brave fable
#

how does a furniture with 1 rotation even get a currentrotation of -2

#

i just can't

rigid musk
#

oh my god so THAT'S how i put the barriers against the wood paths

#

huh... yeah I looked at your furniture data Blueberry and that... should work ? I dont even know where the -2 could be coming from lmao

rigid musk
#

and i havea bunch of other stuff on the paths layer, including mahogany trees which do spawn

ornate trellis
#

huh, mahagony spawns? I was about to wonder if you tried RTF the whole map but if mahagony does spawn...

#

wait did you have the mahagony later or before

rigid musk
#

Added all of it at the same time - though tbf Mahogany is its own tile, it's unrelated to the tile that spawns the other trees

#

Mahogany tile u_u

ornate trellis
#

you did try RTF or a new save tho right

rigid musk
hard fern
#

!rtf

ocean sailBOT
#

Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).

rigid musk
#

OH oh that's what you mean

#

the reset terrain features thing would be something i'd do if it wasnt spamming the error in the console

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 23 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

modern pebble
#

I want to create an event and have learned some basic things, but what I’m wondering about is coordinates in a map. How do modders accurately determine the exact position of a character in the map to create events?

#

nunu need da answer

vernal crest
#

You can open the map file in Tiled to check or you can use a mod like Lookup Anything or Debug Mode to find them in game

vernal crest
#

I just told you?

rigid musk
#

pain oh my god... all of the spawn tree things have a space

modern pebble
#

thank

#

silly me

clear radish
#

Hello! This message was translated from Portuguese.
In this field, if there is nothing to be provided, should I insert an empty string or null?

modern pebble
vernal crest
lucid iron
#

I don't think it's optional despite what wiki says

modern pebble
modern pebble
clear radish
clear radish
lucid iron
#

If you put null in this field you get the error chicken

#

Which is not what you want if you are actually making an animal mod

#

I recommend looking at an animal mod like this

#

To see what fields are needed to obtain a functional animal

clear radish
clear radish
modern pebble
#

if you wanted

vernal crest
modern pebble
#

this?

vernal crest
#

Yup and then the other ones inside the author-guide folder too

modern pebble
#

alright

brave fable
#

MissingMethodException: Method not found: '?'.
??? ? ??

#

every day a new and exciting error

#

unrelated, but i tried changing the couch furniture from earlier to armchair and it still gives some random 0 or -2 value for currentRotation when spawned in. i have no idea

lucid iron
#

Does vanilla armchair do that

tough crater
#

I pumped out a retexture mod for the default bed! Where would I post the link to the nexus page?

lucid iron
brave fable
#

vanilla armchairs have 4 rotations, this one has 1

lucid iron
#

What if u have 3 dummy rotations does it help

brave fable
#

that would unhelp because it'd change the sitting position and collision size in every rotation

past knot
#

I am going absolutely crazy..What is wrong with this json

brave fable
#

looks pretty good. does your object appear in CJB item spawner, and can it be added by typing debug f farmertoy in the SMAPI console? does it appear in the jojamart inventory?

#

can you share your SMAPI log?

#

!log

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.

past knot
#

Yep one sec

#

Whoops sorry

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 6 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tough crater
#

Turns out I JUST met the requirements to request the mod author role :D

#

Do I need to tag someone in particular for it?

calm nebula
#

DM bouncer

brave fable
#

might also want to change your Load Target to "{{ModId}}/objects"

past knot
#

GOSH thank you so much

brave fable
#

consistent indentation saves time, and best of all, it's free ☀️

orchid acorn
#

(This looks so beautiful!! I love your edits!)

ornate trellis
rancid musk
#

Meanwhile in "what does this user comment even mean"...

Can you add a feature that can be made first from a backpack

#

(That's a comment on Better Crafting, for context)

fathom hound
#

Did they mean something like, Casey’s satchel mod? Idk

silver sand
#

What would you do if when you okay so he said yes would go?

tribal ore
#

All you C# modders out there: is there a standard way to get the ModTranslationClassBuilder thing (I18n) to give you a random key, or should I just go ahead and put them all into an enum?

lucid iron
#

Like random from every possible key?

tribal ore
#

Random from a set, kind of like I'd do it with CP

#

Like line.0, line.1, etc

lucid iron
#

I would the raw translation helper instead

tribal ore
#

Oh? I've been looking for examples on doing random stuff with either. Do you have a mod I can go look at?

lucid iron
#

Something like this i guess, wrote on phone no warranty

tribal ore
#

Nice. Thank you very much, chu!

lucid iron
#

The modtranslationclassbuilder just gives u convenient static wrappers over this

tribal ore
#

Hmmmm. I'd have to be passing helper around in order to use the regular one though

lucid iron
#

Just make it static I won't judge

tribal ore
#

Lol!!

lucid iron
#

I dunno why u r doing this in C# tho

tribal ore
#

Because I'm sick of getting tokens to work. I want a foreach and CP doesn't have one

#

So I'm going to make it work one way or another

lucid iron
#

Seems like a very reimplement CP kinda thing

#

If you do this but still have a CP part you now have translations in 2 places

tribal ore
#

Eh. My WeddingAnniversaries CP thing already writes over ALL marriage dialogue, and is still prone to getting killed for special events and stuff. So why not just manipulate the dialogue stack directly?

#

the idea is to replace the CP version

#

Just have the translation folder in the new place

lucid iron
#

Then i would approach it as a framework

#

Patch the spouse dialogue stuff so it picks from special dialogue asset

#

Then you and other people can do edits targeting that dialogue asset

#

It's fine if u wanna provide defaults directly in C# ofc, simply load to said asset

tiny zealot
#

chu is reminding me that lacey has a few i18n strings in the C# component and i regret it a bit

tribal ore
#

Hmmmmm. So... if I made it as a framework, I would still use it with CP. I think

#

?

#

So... framework mod + cp mod (different things)

lucid iron
#

You could, but again u can just load stuff in C#

tiny zealot
#

it's mostly the strings for the GMCM menu so it's not like it's a meaningful amount of content, but i do kind of want to redo it

#

i'll do it when i break up the i18n into a folder so translations only have one big file rearrangement shock instead of two

tribal ore
#

I am grokking about 60% of this right now. Will have to go look at other framework mods I guess and see how they let others hook into them

lucid iron
#

In mmap i have some default data like this for a custom asset

#

Can't use tokens obviously but i load it when i am init the asset

tribal ore
#

Idk, this is new and I am just going to have to dig for awhile. Thank you, chu

opal sage
#

Hello, so I've been working o my first mod which is a Cottage for rental, that should appear at Robin's shop. After this step, I'll work on a rental system. But I can't get it to appear in the game at all. Any ideas?

latent mauve
#

Are you attempting to get it to appear in the Construct Farm Buildings menu, or somewhere else?

#

For the carpenter buildings menu, you need to make sure Robin is assigned as the Builder as part of your Data/Buildings entry

lucid iron
#

What does rental mean

jagged sun
#

@rigid musk you were nice and you said that you hope someone will make that mod for babies age!! MY FRIEND MADE IT!!! Thank you for being nice

opal sage
jagged sun
#

Hello does anyone know how to update codes do that the mod is useable again?

opal sage
#

Here's the thing... I have a full time job and a toddler at home, so time is an issue. Added to that, I'm a total beginner with creating mods... so If anyone is interested in teaming up, it would be great!

lucid iron
#

I have a basic guide for adding a new farm building

#

It doesn't cover how to add interiors yet

#

Need to use the indoor map stuff and tmx

opal sage
#

I'm using the same interior as the shed for now... but I haven't tried if it works yet because it won't load in the game

lucid iron
#

If you need further assistance you will have to post log and json

#

!log

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.

lucid iron
#

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

brittle pasture
jagged sun
#

“Family planning”

#

Like people say it has stopped working

uncut viper
#

thats a C# mod, so you would need to use C# to update it

jagged sun
#

Oh damn it

strange dew
uncut viper
#

invalidating the cache means SMAPI is going to let mods edit them again when the edits change instead of using cached values

brittle pasture
#

that's normal

uncut viper
#

if a cache was never invalidated then the assets would never change

strange dew
#

okay cool, im back to step 1 for troubleshooting 😂 thanks guys

clear radish
#

Guys, about the hairdata, do you know the parameters passed in the string?
example:

"100": "hairstyles2/0/0/true/-1/false"
#

After many attempts, I couldn't find the information on the wiki.

dawn pawn
#

Hii

#

i need ask you guys

#

how i can mod??

lucid iron
#

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

sullen girder
#

Hi, I have an old mod that I made that used DGA to create a custom item and AT to give the player the option to pick different variations. Now that DGA is abandoned, I'm looking for other ways to implement this item as simply as possible.

Basically it's a personal computer meant to function as a TV. AT works fine with it so long as it's only changing the custom object, but unfortunately what I was using DGA for was to assign the screen's dimensions and locations, as they don't line up with already existing game TVs.

I was wondering if there was a way to either A) tell AT where the screen is so that it can be used with a budget TV or B) create the custom item again using CP.

I know that FF is also a framework that can work, and I've seen others use Calcifier, but the later has no documentation and the former isn't working for me. (Namely I can't seem to add it to Robin's shop as an item and all of the other TV mods that do something similar do this via a custom catalog which I don't understand how to make and also feels like it's over-complicating things.)

brittle pasture
#

yeah I think custom TV is one of DGA's features that isnt ported to the game/CP yet

#

FF does support it, so post your code if you have questions as to why it doesnt work?

sullen girder
#

Sure, thanks for the help.

brittle pasture
#

adding it to shops/catalogues is just CP tho

sullen girder
#

The item isn't really showing up in Robin's shop for me to test if it works in the game or not.

rigid musk
#

you should post your code in the json parser

#

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

sullen girder
#

I think I added it correctly via CP but this is new to me and I might have made a noob mistake somwhere.

brittle pasture
#

I'm on my phone so I can't check that out unfortunately

#

yeah use the json link

rigid musk
#

also you can use CJB item spawner to spawn in items (though im sure you want to get your shop data working too)

sullen girder
#

Ah, so looks like my CP folder is actually gone now. Which might explain things.

#

Though if I can add it via FF that could be ideal too.

lucid iron
#

Is the cp mode for ff out yet?

sullen girder
#

This is the content.json for the main FF item.

#

I know the AT version works, since it was working in 1.5 when I was testing.

brittle pasture
sullen girder
#

I didn't, but I'll do that once the game loads.

spring marlin
#

i think i remember a wiki thing(prob content patcher) on making a crafting recipe can someone give me the link?

sullen girder
#

Oh, wait, I did but it didn't show up when I looked up the names.

brittle pasture
#

your code looks fine (comparing against the FF sample pack)

sullen girder
#

Sorry, my memory isn't the best.

sullen girder
#

Ohhh! Wait, I think I found the issue. I was using the old Format 1 and I needed to be using Format 2.

ocean sailBOT
#

@sullen girder You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

sullen girder
#

I just labeled it Format 2 by mistake.

brittle pasture
#

oh wait, it seems to be missing some closing brackets?

sullen girder
#

That sounds like something I'd do too, lol. I'm gonna just start fresh with the content.json

ornate drift
#

does anyone have Alex's overworld sprites? I can't access my laptop at the moment

brittle pasture
#

every { needs a matching }

#

I think you need two at the end

tidal stone
#

idk how to word this so bare with me

is it possible to tell the game to replace one area of a map so that i dont have to replace the whole map just like one part or nah

sullen girder
#

I edited it from having two entries to one entry, so yeah, I probably mucked that bit up.

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

ornate drift
tidal stone
#

is there an example of that anywhere that anyone knows of

sullen girder
#

You can make a CP patch of a specific map area to overlay over the OG map you're wanting to edit.

lucid iron
#

I don't think it'd be good to send unpacked files directly blobcatgooglyblep

tidal stone
#

ooh

sullen girder
#

Atm I cannot remember how to do this though.

lucid iron
#

What is the purpose?

ornate drift
tidal stone
#

i want to change the tree by marnie's ranch and twealk the world a little bit to fix some errors

sullen girder
#

Then a CP patch will do that well enough, but keep in mind conflicts with other mods that also edit those areas. Like SVE.

lucid iron
#

How would you test the mod without access to PC bolbwaitwhat

tidal stone
#

errors being my own errors that are caused by different sized of things

ornate drift
tidal stone
#

yea >.< i'd have to make some compatibility patches

ornate drift
#

but I don't have the sheet yet

#

Look- just say you can't send it and I'll wait till i get home and do it myself

sullen girder
ornate drift
#

thanks regardless

sullen girder
#

Found the documentation.

tidal stone
#

tyyy

lucid iron
#

Perhaps just reference a mod like this then

brittle pasture
sullen girder
#

Oh thanks! I'll do that if I get too stumped.

patent lanceBOT
#

@astral prism: “||next time I should make a modmod/extension teaser as the april fools- "Zuzu Left Town"- which adds the ability to leave the big city to settle down in a small town remarkably like the base game but with everyone (besides harvey) having moustaches"- that is all. That's the silly idea||” (364d ago)

hot gale
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 32 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

gray bear
#

item id needs a (O)

#

which means the fruit should be there

#

oh wait u got multiple shops there. which one has the issue?

hot gale
#

The first, Zach's shop

#

The other works fine

gray bear
#

huh, i've always heard (O) or something is needed but if the other one works fine

mild furnace
#

Harvz is there still a DTZuzu disc? I left a while back

latent mauve
#

So, as an example:
"Cloth": {"Id": "Cloth","ItemId": "(O)428"}, as one of your data models inside the Items list ([ ])

#

The game tries to default to using the ItemId for the shop item entry Id if you exclude it, but if you've got the same one repeated, they can mess with each other's stock limits.

rigid musk
#

@vernal crest thank you for doing that whole thing with spacecore ! i did it :3 now i justh ave to make it properly seasonal.. and properly weight them all lmao

rigid musk
#

I feel like mobile users are gonna be pretty disappointed when I tell them they wont be able to use anything arena related... but i aint doing an entirely different thing for that I don't have the patience AND i cant test it so 💃🕺💃✨ no arena for them

#

maybe spacecore will be compatible with mobile one day

#

and item extensions

normal root
#

Hey y'all! I'm making a mod that upgrades the greenhouse, and I wanted to start off with something simple like a sprinkler system. Heres the content patcher JSON:

"Action": "EditData",
"Target": "Data/Blueprints",
"Entries": {
    "GreenhouseOverhaul.GreenhouseSprinklerUpgrade": {
        "Name": "Greenhouse Sprinkler Upgrade",
        "Description": "Adds sprinklers to the greenhouse that automatically water your crops every morning.",
        "Builder": "Robin",
        "BuildCost": 50000,
        "BuildTime": 2,
        "BuildMaterials": [
            { "ItemId": 645, "Amount": 10 }
        ],
        "BuildingToUpgrade": "Greenhouse",
        "Texture": "Buildings/Coop" // This is just a placeholder
    }
}

The problem is that its not showing up in the carpenter menu. Here is my patch summary:

   Local tokens:
      token name | value
      ---------- | -----
      ModId      | [X] ValeriusPetrini.GreenhouseOverhaul.ContentPatcher

   Patches:
      loaded  | conditions | applied | priority | name + details
      ------- | ---------- | ------- | -------- | --------------
      [X]     | [X]        | [ ]     | Default  | EditData Data/Blueprints

   No current changes.

So I guess its not not applied yet? If anyone could help me I would really appreciate it!!

lucid iron
#

Blueprints is an old thing from 1.5 and earlier

#

You need Data/Buildings now

lucid iron
normal root
rancid musk
#

Better Game Menu has arrived! This is a replacement for the game's built-in pause menu that's focused on better performance and extensibility. Users with larger mod packs especially should notice immediate improvements in the time it takes to open the menu.

This is a pretty big change, so compatibility will be a concern. There are currently 23 mods in my compatibility tracker, 12 of which are fully working. Of the rest, I've submitted updates to most of them to get support added. Let me know if you run across a mod that's not working and not in the tracker, and I'll check into it.

Are you a mod developer? Does your mod interact with GameMenu? You can check out my implementation guide and commented API, or reach out if you have questions or need help.

Thanks for reading. I hope you like it. SDVpufferheart

latent mauve
#

(Does the owner portrait/dialogue show up?)

hot gale
#

The shop worked fine before I started working on my mod, admittedly I added quite a lot to my mod since the last time I knew the shop was working - but, of all the things I have done, I've only added the 2 new items to the MeadShop, and when I comment them out it still no longer works so something happened to the MeadShop specifically since last I used it

latent mauve
#

Could you run a patch export on Data/Shops?

#

Make sure your items are registering inside the MeadShop entry there

hot gale
#

One moment

#

Hmmm

#

It is not loading any of it

#

Its only loading the infuser machine recipe

rancid musk
tidal stone
#

🙌

hot gale
#

Its not even loading the proper itemID for the infuser

#

im so confused

#

infuser.json

#

Its not loading dialogues, owner or anything for the meadshop

latent mauve
#

okay, that means it's time to look at the shop entry code again, because something's probably in the wrong place.

#

Does MeadShop even exist in the exported Data/Shops?

hot gale
#

Barely

lucid iron
#

Wait i thought world maps everywhere is also sheku

hot gale
#

Should these be a single entry, does it matter?

#

er a single change

latent mauve
#

That shouldn't matter

hot gale
#

w/e the nomenclature

#

I didnt think so, it worked before like this

latent mauve
#

What matters is that it's not treating your individual Item data models as separate.

#

This will be a bit of an annoyance, but try adding the Id on the outside of every item model's { }

#

(alternatively, you could comment out all of the ones that didn't have the ID repeated on the outside of the curly braces)

#

I'm wondering if having a mix of ones with the ID on the outside and ones without are causing the issue

hot gale
#

Im not entirely sure what you mean by that

#

oh my gosh I think I just found the issue

#

Maybe

#

This is what is being read by the export

latent mauve
#

So your code later on for Cornucopia and SVE and such adds the IDs for the shop entries on the outside:

          "ItemId": "(O)FlashShifter.StardewValleyExpandedCP_Bearberrys",
          "Condition": "SEASON winter",
          "IsRecipe": false
        },```
#

the first line

hot gale
#

Oh

#

Well why did I do it that way

#

rofl

latent mauve
#

try structuring all of them like that, or commenting out everything that doesn't do that.

hot gale
#

oh because its editing items directly instead of the shop itself

#

I see

latent mauve
#

Honestly, that's the correct way to not accidentally overwrite the other entries.

hot gale
#

I see

uncut viper
#

if you are making the entire shop entry yourself, do not add the keys on the outside

#

if you are using TargetField to drill down into the Items list, you use the keys on the outside

latent mauve
#

Yeah, they've got a mix in their code

uncut viper
#

that is why you did that earlier

hot gale
#

So should I just have base shop data, and have a seperate insert for the items to follow the lower formula?

uncut viper
#

if its all your shop, you can do it all in one insert in the same place you add the shop itself

hot gale
#

Ah gotcha, yeah its completely custom shop

latent mauve
#

So to clarify, here

uncut viper
#

if you can get away with having one patch, having one patch is better, bc its less patch overhead

latent mauve
#

Because the infuser's the only item in the list and I can't see the code where it got added

#

I suppose what I am asking is whether or not you gave it the ID outside when you added that or not?

#

Becacuse I don't know if you used TargetField to add the infuser

hot gale
#

It didnt even have the right itemID

latent mauve
#

ah, okay. So that one was overriding the other edit

uncut viper
#

(substance use or mentions are not allowed in this server)

latent mauve
#

But yes, you want ONE Data/Shops entry per brand new shop that uses Entries and not Fields or TargetField.

#

To simplify things

hot gale
#

No luck 😭

#

What in tarnation

rigid musk
#

scope creeping myself with monster skins and drops... I wasn't gonna do it and now I must make them all look like Qi AND im adding more recipes and drops

#

I am unwell, someone needs to stop me (no one can)

hot gale
#

Data Export showing same result

#

Do I need to like sleep in-game or something

lucid iron
#

Qi would say keep going kid B)

rigid musk
#

He absolutely would pensiveclown

#

Gotta make my mod perfect and cool for the blue guy

lucid iron
#

Oh yeah i made it for anaira but monster variety supports modifying drops on dangerous monster now

#

You can use it to add drops to dangerous slimes if you want

hot gale
#

Whats the format for a when has mod for 2 mods

#
"When": {
                                "HasMod|contains=FlashShifter.StardewValleyExpandedCP": false,
                                "HasMod|contains=Cornucopia.MoreCrops": true
                            },

?

#

Would that work

#

It works 😭😭😭😭😭😭😭

#

Thanks for the help y'all ❤️

#

Lily I removed the bottom insertions and just extended the origina shop data will all relevant items

gaunt orbit
#

If you modify that patch please test thoroughly to make sure it works as expected. The reason that's in there is because of the horrible placement logic for furniture, which sometimes reduces the active stack twice, which was causing tools and other important items to be deleted.

strange dew
hot gale
#

We would need to see the code to help more

#

oh nvm

#

lmao

#

IN the crafting recipe for that tea

#

ahri1014.SCD.LushSpringTea 1

#

I believe you omit the 1

#

I think the unused field for food has to be matching numbers as well? Someone can confirm that for me ill brb

latent mauve
#

"ahri1014.SCD.LushSpringTea": "614 1 22 1 591 1/10 14/ahri1014.SCD.LushSpringTea 1/null/"
what happens if you change "null" to something else? Cooking recipes tend to use "none" if they don't want it unlocked by default or another method and only want it gifted/purchased.

strange dew
#

I'll try changing it to none instead of null. The only mods I looked at with recipes for reference used null

latent mauve
#

I don't know that it will matter, but nothing else sticks out to me as immediately wrong.

uncut viper
latent mauve
#

oh, good call

#

The name outside the { } and "Name" need to be identical for Object Data

uncut viper
#

i think if you do something with objectinternalname in isalable or something you can make it work (dont cookies do that? idr) but its not worth the hassle. thje Name is for internal use only and will never be seen by the user, so theres generally very little reason to have it differ

#

(i know you know this lily im just adding on for ahri)

#

i guess LA just doesnt use the internal name in its check, or something

golden spire
# hot gale Whats the format for a when has mod for 2 mods

this is something I did/for reference ages ago:

//AND
"When": {"HasProfession |contains=Blacksmith": "true",
         "HasProfession |contains=Gemologist": "true"}

//OR
"When": {"HasProfession |contains=Blacksmith, Gemologist": "true"}

//OR
"When": {"HasProfession": "Blacksmith, Gemologist"}

//NOR
"When": {"HasProfession |contains=Blacksmith, Gemologist": "false"}
shadow pagoda
#

Is there documentation on how to upload a mod to nexus?

golden spire
#

what part are you having trouble with?

#

until you get to the publish stage nothing is public

sour sleet
#

Is it possible to loop a track in a location?

#

Nothing seems to be on the wiki

strange dew
shadow pagoda
uncut viper
#

no. fix the "Name" lines in Data/Objects to match your keys

strange dew
#

Okok 🫡 thanks

uncut viper
#

e.g. you have one name "Name": "Winter Star Latte"
change that to "Name": "ahri1014.SCD.WinterStarLatte",

golden spire
lucid iron
#

theres a guide on the official wiki

#

you dont really need to follow this to a tee but it's a good checklist

sour sleet
golden spire
#

if the track is meant to be looped then you need to say it is a looped track there

"summer1": {
  "ID": "summer1",
  "Category": "Music",
  "FilePaths": [ "{{AbsoluteFilePath: assets/summer1.ogg}}" ],
  "StreamedVorbis": true,
  "Looped": true
             },
#

if I set it to false, the custom summer1 music only plays once

past knot
#

This is just a small photo but can anyone tell me just what this means

golden spire
#

the file does not exist

#

did you mean Sleeve.png?

#

as it's looking for Seeve.png

craggy cape
#

i shouldnt have edited my patch's code when i was so tired, i messed it up lol
something with the item spawn fields, but also has to do with an unknown shop..? 3 of the errors are about arimarket, one error is just "???"

[game] Item spawn fields for shop 'SeedShop' > entry '???' produced a null or empty item ID.
[game] Shop SeedShop has multiple items with entry ID 'skellady.SBVCP_AriShop'. This may cause unintended behavior.
[game] Item spawn fields for shop 'SeedShop' > entry 'skellady.SBVCP_AriShop' produced a null or empty item ID.```
i'll have to boot up the testing mod list to send the full smapi log, but heres the json.
https://smapi.io/json/content-patcher/4817573b78dc4617811cb0c72572ae6d
#

least the other shops dont produce errors, but theyre also not working as intended xD

brittle pasture
#

you're targeting SeedShop > Items but then seems to be adding a top level shop?

craggy cape
#

i went with the assumption that seedshop = pierre, so if im adding a modded shop that sells the same item type, aka seeds, i should use seedshop as the target for the items :p

uncut viper
#

no, SeedShop is literally Pierre's shop ID

#

its just for Pierre

#

the ID can be whatever you want

craggy cape
#

ahh

brittle pasture
#

looks like you're trying to add items to SBV's shop? in that case instead of SeedShop you'd change that to the id of the shop you're actually changing

#

and delete every top level fields outside of Items

#

you're Targeting Items already, so any edits would be adding new entries into it

craggy cape
#

okay my sleepy self edited sunberrys shopdata

#

when i was editing aris data, i applied the edits to the wrong file oops

#

eh easy fix

#

anyways time to change the shopID in the correct file

craggy cape
#

it was originally meant to be applied in the RSSI sunberry lmaoo

brittle pasture
#

are you directly editing SBV's files for this

coral storm
#

Hello, so I've been working on a mod that just adds a new a area to the game and that's working perfectly, my problem lies with that I'm trying to add a new path into the town map but it just won't show up, any ideas on how I can make it work?

{ "Action": "EditMap", "Target": "Maps/Town", "FromFile": "assets/Maps/phantom_farm_pathway.tmx", "FromArea": { "X": 0, "Y": 0, "Width": 7, "Height": 16 }, "ToArea": { "X": 27, "Y": 0, "Width": 7, "Height": 16 } }, { "Actions": "EditMap", "Target": "Maps/Town", "AddWarps": [ "30 -1 Custom_Phantoms_Farm 26 28" ] },

craggy cape
#

i'll just need to reset the SBV shopdata file in the SBV mod itself lol

calm nebula
#

so who is doing an April fools mod

golden spire
#

Everyone is Clint 2.0

uncut viper
#

is there an effort cut-off for when its no longer a joke

golden spire
lucid iron
#

you get this extra shiny star 🌟

uncut viper
#

oh good

gaunt orbit
#

Oh I should do a joke mod

calm nebula
#

Hi Wren!

#

Did you see Wren the plumber released?

gaunt orbit
#

Hey atra! I did.

#

I'm excited to play with wren

calm nebula
#

Whenever I get to play the game again, same!

#

Eventually ||2028?||

lucid iron
#

it was ||2027|| last time atra

coral storm
craggy cape
#

hm. now i cant open the shop menu

golden spire
#

and that's the tile you're trying to target?

coral storm
#

Yes

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.

coral storm
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 1 C# mods and 1 content packs.

golden spire
#
 invalid tilesheet path '../../../../../../../../Program Files (x86)/Steam/steamapps/common/
#

you have broken your tilesheet pathing

#

so it's looking for tilesheets in the wrong place

#

when making maps keep the tilesheets in the same folder as your map

#

you can easily fix tmx files by opening them in a text editor (they are XML files)

#

and finding those paths

#

and removing the paths for the images

coral storm
#

Ooh okay I know when I did that now, thank you for your help

sour sleet
#

Can anyone explain this to me please? [owner tile area]: if specified, the tile area which must contain one of the shop owners for the shop to be available. For a custom shop, these are defined by its Owners field. This must be written as: <x> <y> <width> <height>. I assumed it was the top left tile but smapi doesn't seem to like what I've done

uncut viper
#

you're defining a rectangle, so you need X, Y, and the width and height too

#

that rectangle will be the Owner Area

#

(unrelated, i love that Pathos chose "Intern" for his title)

sour sleet
#

I put 10 26 9 2 at the end. Does this mean coordinate 10,26, 9 width and 2 height?

uncut viper
#

yup

#

the rectangle will be 9 tiles wide, 2 tiles tall, and the top left corner will be at x10 y26

sour sleet
#

I don't know why I'm getting an error then

uncut viper
#

can you send your json?

#

er

#

map action

sour sleet
#

Hang on, this is a tile property yes?

uncut viper
#

yeah sorry just too used to asking for jsons lol

#

like the full thing you wrote for it

sour sleet
#

OpenShop 8BitAlien.Lilybrook_ClareCafe 1200 2300 10 26 9 2

uncut viper
#

you're missing the From Direction

sour sleet
#

Ohh I thought it was defaulted to down and was optional lol

golden basin
#

does anyone know if there is a way to despawn monsters with spacecore?

uncut viper
#

it is optional, but the game has no way to know you arent trying to make it optional if you write things after

#

after all, the game sees a number after the shop id

sour sleet
#

Ahh gotchaSDVpufferthumbsup

uncut viper
#

this goes for any trigger action, tile property, etc. with optional arguments

#

if something is optional and you want to skip it entirely, that means you must skip every argument that comes after

ornate drift
rigid musk
#

Button I love your profile picture heh

ornate drift
#

how can i change every instance of "Alex" to "Edwin"?

sour sleet
#

Haha was just thinking the same

rigid musk
uncut viper
rigid musk
#

you would have to go through and find every instance of it, and then make a patch for every single occurance afaik

ornate drift
#

i wanna just change his menu nnames

#

display name like on the single chart or when talking

uncut viper
#

you'd need to change his Data/Characters displayname then

#

or

#

actually i think theres Data/NPCNames?

ornate drift
#

do you have a script for that?

uncut viper
#

or Strings/NPCNames?

#

no, you need to add it to your content patcher mod

rigid musk
#

You don't mean when people refer to him, or for any strings or anything?

#

Just display name?

ornate drift
#

just display name
yes

rigid musk
#

(like in the dialogue window)

uncut viper
#

then yeah, do an EditData patch on Strings/NPCNames

rigid musk
golden spire
#

and I made everyone Clint it was horrifying

ornate drift
rigid musk
#

editing your jsons is notepad is even more cursed than my comic sans font heh

ornate drift
#

im not big on jsons anyway'

rigid musk
#

you... kinda need those for modding

uncut viper
#

well your alternative is C#

ornate drift
#

im just doing the same but for text

uncut viper
#

which will require more json

ornate drift
#

yeah

uncut viper
#

just follow the content patcher docs for EditData and edit the Strings/NPCNames asset and that should take care of a lot

ornate drift
#

isnt it in the same format as action: blah blah

uncut viper
#

there isnt a way to limit it to just menus, though.

ornate drift
ornate drift
#

thanks

rigid musk
#

Hi Aba :D

uncut viper
#

the docs are also on CP's nexusmods page

rigid musk
#

thank you again for that spacecore tutorial

vernal crest
#

You're welcome!

rigid musk
#

im super happy with the results :3 Now I just have to sprite all of the monsters heh

craggy cape
#

i think when i tried to add the item list to null them i had too many nulls.. lmfao
pierres item list is slightly different than ari's xD

rigid musk
#

(and the three other maps, but im pretending they dont exist)

ornate drift
#

is it easier to do sprite replacements instead of custom NPC

#

cause i heard its pretty nightmarish

rigid musk
#

if you mean NPC replacement ... if you can do an NPC replacement you can make an NPC

craggy cape
#

istill cant open the shop menu though but ik its from the json

uncut viper
#

i mean it is, but obv the downside is you are replacing an NPC, so

rigid musk
#

If you just mean the sprites its not that difficult no

ornate drift
#

its fine i dont even know half the cast anyway lmao

vernal crest
#

If you want other people to use your mod, they are much less likely to do that if it's replacing a vanilla NPC

ornate drift
#

oh im not uploading it
its gonna be priv

craggy cape
ornate drift
#

just for a few friends

#

for fun

uncut viper
#

then ofc feel free to do whatever's easiest

vernal crest
#

Isn't there a mod that changes the NPCs' names in game?

lucid iron
#

again you can reference existing sprite replacer mod for your use Dokkan

uncut viper
#

probably, but fi theyre already replacing sprites anyway, they might as well do it in their mod

vernal crest
#

Because I think using that combined with making a mod that replaces portraits and sprites is going to be easiest.

uncut viper
#

unless they do start caring about every instance that doesnt pull from Strings/NPCNames (which admittedly might not be many)

vernal crest
#

But replacing display name is a massive amount of work that involves patching so many things

#

So many events and dialogue lines

uncut viper
#

well, they already said they only care about the menus

ornate drift
#

for a custom NPC you gotta do their dialogue, custom place, path, etc etc

vernal crest
#

Oh, that's going to be weird

uncut viper
#

possibly, but if its for a personal mod and they dont care, then it doesnt matter

vernal crest
#

No, it doesn't

ornate drift
#

weird i got timed out

#

anyway

#

keep in mind i basically know nothing about json editing so this is gonna be a bit difficult at first

#

doing it with images is probably one thing

#

text is another

uncut viper
#

that is what the content patcher documentation is for

#

no, text is much easier

ornate drift
#

it is?

uncut viper
#

yes

ornate drift
#

...huh

calm nebula
#

Oh button you're blue!

uncut viper
#

you literally only need to change a single line in an asset of lines

#

i am unfortunately very blue

calm nebula
#

It's a nice blue

uncut viper
#

no such thing

calm nebula
#

I wish I could keep this blue

ornate drift
golden spire
#

I'm blue

tender bloom
#

nooooo we're all joja

#

it's a really nice blue tho

rigid musk
#

It is a very pretty blue isnt it

uncut viper
#

i see i am unwelcome here /j

rigid musk
#

You don't like blue, Button?

golden spire
uncut viper
#

its not my least favourite colour, but its no match for most others

rigid musk
golden spire
#

horrible things.. all happy and not blue

ornate drift
#

i think ill just be lazy and use this

lucid iron
#

this one's only sprite, u can search for stuff with portrait too

rigid musk
#

could I make a ring without using C# ? If I only wanted it to have some basic buffs and what not?

lucid iron
#

spacecore equips should do it

rigid musk
#

Spacecore... so beautiful

lucid iron
#

custom companion also has a feature to make follower on a ring

#

obviously u should make a trinket instead ofc

uncut viper
#

BETAS could also do it

sour sleet
#

What are the reasons for a custom shop not opening? No SMAPI errors

lucid iron
#

try debug shop <shopid>

ornate trellis
#

did you set a specific time or something

lucid iron
#

if that works it means your tile data is wrong

rigid musk
ornate trellis
#

t posing

#

runs

calm nebula
#

Necessary

#

Hi my favorite mathperson

ornate drift
#

i am embarrassed that i completely have forgotten where alexs house is

brave fable
#

debug warp josh in SMAPI will take you there

craggy cape
#

well, okay least VScode isnt yelling at me now. :P but the validator sure is 😭

sour sleet
brave fable
#

VSCode isn't noticing anything wrong because you technically have valid JSON, just you've failed to wrap every "Entries": {} entry in its own {} object braces

craggy cape
#

ooh ok

brave fable
#

in this case, Entries is a list of {} shop data entry objects

lucid iron
#

if you set open/close time then thats 1 thing

craggy cape
#

so once i fix that this should be a valid json to the validator, or is there more mistakes i made?

lucid iron
#

if ur npc rectangle is wrong thats another thing

rigid musk
#

Are there any examples of people making rings/wearable items with Spacecore? There's not much on it and I... am not very good at working without example (and sometimes not with it either wheeze)

brave fable
#

i can't say yet, you have 3,500 lines of JSON for me to read. i'm leaving that to the parser

craggy cape
#

prob more mistakes actually

#

we shall see

sour sleet
#

I have an open close time but I'm within the correct time

#

My npc is standing in the rectangle, also

#

Debug shop opens my shop

brave fable
#

in any case, you currently have some list of entries that looks like this:```json
"Entries": {
"Id", "ItemId", "Condition", "Price", "AvailableStock", "AvailableStockModifiers", "Id", "ItemId", "Condition", "Price", "AvailableStock", "AvailableStockModifiers", // ... (repeat 46 more times)
}

obviously this isn't correct
lucid iron
#

are u at the right direction

sour sleet
#

So as you say, must be an issue with my tiledata

#

down

golden spire
#

well what is the tiledata

brave fable
#

once you wrap each group of shop data entries in {} braces it should be fine.

lucid iron
#

inspect tiles then PecoWant

sour sleet
#

does the direction mean the direction of the npc?

calm nebula
#

Joja bluu I notice you are not a joja subscriber

lucid iron
#

no its where u r relative to the tile

golden spire
#

999gp per season

lucid iron
#

so down means you have to be below the tile when you interact

sour sleet
#

Oh so if it's a counter i'm going up to, I need to put up?

#

Ohhh

#

Yep so that bit is correct then

lucid iron
#

now u r making me panik lol

brave fable
#

i'll make do with just drinking the verification can of joja(tm) bluu(r), it's only like one or two an hour

lucid iron
#

ah yea i was right

#
// check interact direction
switch (direction)
{
    case "down":
        if (who.TilePoint.Y < tile.Y)
            return false;
        break;
    case "up":
        if (who.TilePoint.Y > tile.Y)
            return false;
        break;
    case "left":
        if (who.TilePoint.X > tile.X)
            return false;
        break;
    case "right":
        if (who.TilePoint.X < tile.X)
            return false;
        break;
}
golden spire
#

Diet Joja(tm) Bluu(r)

uncut viper
#

i am not paying 10% of my exp for an even worse blue

#

ive done enough

lucid iron
#

this means when your Y is above the tile's Y, do not open shop

#

wait i can lower my level?

brave fable
#

i wouldn't call it a worse blue, maybe just a deeper blue. one that represents your maddening descent into this corporate hellscape

craggy cape
#

blu :)

calm nebula
#

I'm very pro getting rid of my xp

sour sleet
#

Action: OpenShop 8BitAlien.Lilybrook_ClareShop down 1200 2300 10 26 9 2 Does this look right?

calm nebula
#

I'll sell you some

#

Except that isn't allowed haha

uncut viper
#

selling me exp should be allowed when we're in joja mode

calm nebula
#

Heyyyy aquo what do you thinkkkkk

lucid iron
#

seems very wide

sour sleet
#

Yepp

#

It's behind a counter area

lucid iron
#

well it seems right i guess Dokkan

#

but i also think u can slacc and remove the npc rect if its being weird

uncut viper
#

is it supposed to be ClareShop and not like, ClaireShop?

sour sleet
#

No it's meant to be Clare

uncut viper
#

and Clare is definitely inside that rectangle

#

standing there when you click the title

sour sleet
#

yep i put her on 10 26 (currently has no schedule)

#

I put her default location as 10 26

#

When i debug shop, the portrait or dialogue doesn't come up but the items and prices do SDVpufferwaaah

uncut viper
#

what does your shop json look like

lucid iron
#

did u put Clare as owner

sour sleet
#

Yep, Lilybrook.Clare

#

As it's asking for the internal name

sour sleet
uncut viper
#

if i were freer id say yes but right now i cannot dedicate enough of my attention to discord/DM help and was more so asking for it for anyone else who might be around to also take a look and chime in if they can

sour sleet
#

That's ok, thanks anyways SDVpuffersquee

golden spire
#

try giving the NPC a couple of schedule points even if it's just to walk in a circle in the box

#

I know there used to be issues with dialogue if they had none, but not sure what changed with that in 1.6 and no idea that would even be related to shop data

sour sleet
#

Hmm alright. I will try that now! Wanted to do all the schedules at the same time but oh well lol

fierce vault
#

What am I doing wrong when trying to load location music? I couldn't find exact formatting on the wiki, so this is my latest attempt{ "Action": "EditData", "Target": "Data/Locations", "Entries": { "{{ModId}}_MidwayCave": { "DisplayName": "Midway Cave", "DefaultArrivalTile": {"X": 3, "Y": 13}, "CreateOnLoad": { "MapPath": "Maps/{{ModId}}_MidwayCave", "Music": { "Track" : "fall_day_ambient" } } } } },

sour sleet
#

I've fixed it!!

golden spire
#

woo

golden spire
#

can also look at AdventureGuild in the same file too

fierce vault
lucid iron
#

do u think khloe meant to leave the Honk

calm nebula
#

Always

versed wyvern
#

If I want to make a mod with config values that other secondary mods will then use, I need Cross-Mod Compatibility Tokens, right?

vernal crest
#

No, the other mods will need CMCT.

lucid iron
#

yea unless you are making it in C#

vernal crest
#

? Maybe I am misreading but the mod page says that you use CMCT to access other mods' tokens, not to make your tokens available to others.

lucid iron
#

you are correct too aba, its the mod using your tokens that need to also have CMCT

versed wyvern
#

I meant I need CMCT to make it happen because each of the secondary mods will want to use the same config values instead of all having their own separate configs

vernal crest
#

If you're the creator of the secondary mods, you will need to use CMCT in those to access your primary mod's tokens with them, yes. (Or use C# like chu said).

lucid iron
#

there are a few other ways with varying levels of jank tho

#

mailflag if you only need true/false

#

the pair of actions in betas that let you read/write moddata

#

some nonsense with stats Dokkan

versed wyvern
#

Oh? That second one may be worth investigating kannalook

lucid iron
#

and lastly just only making 1 CP mod but with 9000 includes

#

this would be limited to places where you can use GSQ

rigid oriole
lucid iron
#

but i have it

rigid oriole
#

Hm

lucid iron
#

from the nexus version

uncut viper
lucid iron
#

personally i would say if you don't have a particularly strong reason to split your mods up, just doing 1 CP mod is the way

#

even if people potentially download assets they never see in game, it's not a big problem when sdv mods are so small

versed wyvern
#

ThinkO_O Hmm... well the specific use case I'm brainstorming is that a rough representation of the player shows up in some pictures I'm putting in, and I plan to put in overlays that will change the representation's hair and skin color based on what the player chooses in the primary config, since we can't check for those things

lucid iron
#

make a C# mod 3sSmolMiku

versed wyvern
#

brain too smooth

lucid iron
#

or idk pay someone to do that

versed wyvern
calm nebula
#

Or just use cmct

lucid iron
#

the reason why i do actually think C# mod is the way here is bc the player's hair is so variable think

#

heat death of the universe before you get every shade, skin tones would have been realistic if you ignore skin tone mods

versed wyvern
#

Yeah I'd just have to provide a whole bunch of base color options from brown, black, blonde to green, pink, and purple and call it a day

lucid iron
#

in that case i would ship those colors, plus a color mask for ppl who are particular about these things to edit themselves

calm nebula
#

(How would this work in mp?)

#

(It won't lol is a valid answer)

lucid iron
#

dw about it™️

#

i mean mp could just be

versed wyvern
#

If only I could just access whatever the game uses to colorize variable items like artisan goods 02ded

lucid iron
#

disregard how everyone else's photos have same color

calm nebula
#

That still wouldn't work for multiplayer tbh

#

Everyone has the pinks

lucid iron
#

but yea this particular thing need C# to do "properly" while being niche enough that i can't think of any framework now or in the future that would do it yggy

#

assuming the painting is furniture, it'd have to be way to get player hair color + way to colorize furniture?

craggy cape
#

gah

#

least im close?

#

anyways vscode and the validator keep saying i have dupe keys and i thought everything goes under one changes block

rigid oriole
#

@lucid iron i think the ||honk|| easter egg still remains, it's just that Khloe was kind enough to make it not affect subclasses like mine

lucid iron
#

is it a easter egg if its always there

#

great feature tho ukimasu

rigid oriole
#

it's an easter egg cause u gotta find it 😌

pine elbow
#

Is Yoba truly safe for our children? Let Joja Corporation:tm: help you raise your kids the right way.

fierce vault
craggy cape
#

i still cant talk to ari what the hELl

#

hm

#

ok so i can open the DND shop menu
i cant open Ari's Market shop menu at all
i only get a yellow warning about ari saying the target cannot be found, but only when i open the DND shop menu???

#

and the dnd shops stock isnt changed at all

brittle pasture
#

(that is where you want to add right)

craggy cape
#

yes

#

for the first shop, second one being the cafe. i just changed the target to the appropriate sbv shop name in the shopsdata

#

so time to see if i can ATLEAST get the menu to show up

#

( i had the DND cafe as just "cafe" and such, but wouldnt that also cause the menu to not show up for the DND cafe? )

brittle pasture
#

there's a bunch of nesting issues in your file, namely your entries below line 2024 is outside of the Entries block

#

your boringvlln.rshops_IceCreamBowl block is also nested inside the boringvlln.rshops_PinkCake block, alongside a When condition that should be outside

craggy cape
#

i was about to ask why theyre different colors actually lol that answered iut

brittle pasture
#

also does AriShop exist before your edit

craggy cape
#

like as its own file? if so, no

#

it did but i deleted it

brittle pasture
#

then TargetField would fail because it's trying to target a nonexistent shop

#

same with Cafe

#

not that Cafe is being edited, because of the nesting issue

craggy cape
#

well anyways time to find out how to UNnest these

pine elbow
#

The user is aware that there may be untested plastic materials present in one or more THRIVE furniture pieces, and waives any right to hold Joja Co.:tm: liable for adverse health outcomes attributable to contact with said plastic materials.

lucid iron
#

dottie i feel like it'll help you if you split your jsons up

#

and use includes

half tangle
#

Is there a way to give the player Emily's "Saying 'Hello'" quest? As far as I can tell it has no id and is initialized by some shenanigans in SocializeQuest but I'm having trouble giving it to the player. (this is just for testing the quest)

sour sleet
#

I’m trying to get an event song that doesn’t loop, to loop as interior music. What is the best way of doing this?

uncut viper
#

it is functionally no different from the introduction greeting quest

#

sorry, type set to Social*

#

not Socialize

half tangle
#

yep, just figured it out. Not certain if I needed to greet everyone first in addition to just debug completequest 9 but I got it. The loadQuestInfo part was important.

SocializeQuest socializeQuest = new();
socializeQuest.loadQuestInfo();
Game1.player.questLog.Add(socializeQuest);
light bramble
#

Love to see what we are all doing

craggy cape
#

ok no matter how many times i try the entries wont NEST

#

i fixed it for the cat cafe but i cant fix it for ari AUGH

#

well, by fix i mean get the two entries to nest seperately, not into eachother

brave fable
#

highlight the range of fields within each entry in VSCode and press shift+{ to wrap them in {} braces

#

repeat x47 (don't forget the commas)

craggy cape
#

i still. cant talk to ari

#

the cafe remains uneffected

#

i infact did not fix the nesting

brave fable
#

if you want an honest opinion on your workflow, i would've instead tried to cut this content pack down to exactly one (1) Entries value and no config options, and if that worked, then gradually added the other 47 entries with 3 config options

#

you're trying to fix and debug 48*3 things at once

pine elbow
#

Introducing Joja:tm: Cola Classic. As designed by ConcernedApe.

brave fable
#

absolutely.

craggy cape
#

for now im just gonna give up and wait until i feel motivated again

#

im not messing with this code anymore 😭

#

i'll have to rewrite everything too anyway so

brave fable
#

as morris said, pretty much exactly what i was going to say, you want to work one step at a time, adding it together piece by piece. i wouldn't dream of doing everything at once and praying

#

everything one step at a time 🚶‍♂️‍➡️

#

of course i won't ask you not to give up for now if you need, but definitely don't pick up the whole mountain again when you get back into it hahah

#

i get stressed just looking at the validator for your 3,500 line json files lol

hard fern
#

3.... 3500???

craggy cape
#

in my defense i was copying off the format of the base game RSSI shops code, which was hella long

#

like just for pierre it was like

#

..i have to get back on my computer to check

brave fable
#

pierre was also 3,500 lines lol

#

pretty much every RSSI file was a few thousand

craggy cape
#

yea

#

except for the ones that added compat from mods effecting base shops

brave fable
#

but! the author didn't just write 3,500 lines and open it to test

craggy cape
#

i would assume the author did it much more sanely and realistically

#

꒰ as in, one at a time ꒱

craggy cape
pine elbow
craggy cape
#

what would joja coffee be called

#

just joja coffe. or liek.
joffee

brave fable
#

starbucks, probably

craggy cape
#

LMFAO

brave fable
#

now with a low 10,450kJ per drink to wash away the guilt of workers' rights violations SDVmorrisuwu

haughty charm
#

JojaStar

#

Jojabucks

jagged sun
#

Guys which mod is required for “having more children” mod to choose baby’s gender? Bc few people told 2 different things

uncut viper
lucid iron
#

To force gender you will have to make your own unique kids mod

#

Have more kids is primarily a framework

hot gale
#

oh cause april fools

latent mauve
#

Can anyone think of a reason why JoshHouse would be overriding my map properties when I'm replacing the entire TMX?

uncut viper
#

are you Loading it or using EditMap but for the whole thing

latent mauve
#

Specifically it keeps reverting the Doors and DayTiles and NightTiles

#

Ah, I was using an EditMap. I bet that's the issue.

uncut viper
#

i thiiiink (dont quote me) EditMap patches dont carry over map properties, just tile properties

#

unless you use MapProperties ofc

#

in the json

latent mauve
#

Fair enough, I can add a code block to change those

pine elbow
#

I saw Pierre request a Joja Cola:tm: last week, just saying.

brave fable
#

i'll quote you on that because it's true

uncut viper
#

thank you

latent mauve
#

I don't want to replace the entire map, just the top, but for convenience, I was not adding the FromArea and ToArea yet

#

so good to know the code block will be required.

hard fern
latent mauve
#

I haven't patched over an existing map with map properties in so long xD

#

I forgot how non-custom maps worked. LOL

#

(It actually didn't transfer my TileData object for the new Door either, which is obnoxious)

gentle rose
#

I'm blue, da ba dee da ba doo

gray bear
#

we're all blue

gentle rose
#

da ba dee da ba doo

faint ingot
#

seems like in FTM you can't set a custom sprite for mummies unless I'm missing something

#

oh wait I might have a syntax problem

#

nevermind it was a me problem of course

craggy cape
#

i have no idea why but everytime i make a new json file and save it, it saves as "GO" jsons??? the fuck??

#

hm. guess i just chose the wrong "save as" file type.. GO is the first one aside from "all files"

#

anyways im just converting a CP hair mod to FS, time to see if i did it right :D

latent mauve
#

I've officially got all my NPCs shuffled around and maps/schedule changes done for the Zelda mod!

#

Also due to how the replacements worked out, I ended up having Mipha dancing with Purah and Ghirahim dancing with Groose at the Flower Dance, but that's fiiiiine