#making-mods-general

1 messages · Page 482 of 1

vernal crest
#

Yes, though I recommend you make it unique since every NPC's animations are all in the same file

karmic gust
#

so using {{ModId}} is still recommended in this instance?

finite ginkgo
#

Yea

karmic gust
#

okay will do!

vernal crest
#

By me, yes. I am unaware of any problems that causes and it will save you from mod incompatiblity if anyone else ever has an NPC named Fable who is sitting.

#

The only thing is that a spouse's sleep animation needs to have the NPC internal name fully lowercase to work, so in that case you can't use the ModId token

karmic gust
#

Luckily all the NPCs I'm adding are children so don't have to worry about that SDVpuffersquee but good to know regardless!

subtle condor
#

I am trying to add a stone to a custom quarry on a custom map. The only problem is, I don't know how to add a ore that is breakable. Just adding it as an object seems to not be enough, it needs to be classified as a stone that is breakable with a pickaxe, but I can't find where to do that. If the solution is too complicated, is there a way to add custom loot to, lets say, a regular stone? Then I could maybe find a workaround by just retexturing the stone for this area and just adding the extra loot for that area as well maybe

ornate trellis
#

im sorry but that gives me "are you craving my mcnuggies" meme vibes...

tiny zealot
#

{{Lowercase:{{ModId}}_name_sleep}}, for example

neat vigil
#

Helloo everyone, I'm trying to edit multiple music tracks such as the main theme and the spring theme but it keeps failing when I write both of them in the content.json. However, if I only edit one, it works. Does anyone know why this happens?

tiny zealot
#

!json can we see your json? (and/or the error you get when it fails)

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.

neat vigil
#

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

neat vigil
#

...

#

I am so dumb

tiny zealot
#

uh, glad to be of help?

neat vigil
#

they said that my json works

#

but it doesn't

tiny zealot
#

your json can be correctly formed (syntax) but still not functional. can you paste the link to it here so we can see it?

karmic gust
#

I'm having trouble finding information on how secret santa for the winter 25 festival works. do all NPCs automatically get put into the pool and if so, how do you add the list of items they can gift the player? I checked the wiki for festivals and searched the modding wiki but nothing came up

brittle pasture
vernal crest
karmic gust
vernal crest
#

You should be giving them unique IDs, ideally prefixed with your mod's unique ID (easily done with the {{ModId}} token

#

And by ID here I mean key, though your Id field should also be prefixed with your mod id and preferably not have spaces in it. And your key and ID field should match.

Eg for the first one:

{
      "Action": "EditData",
      "Target": "Data/AudioChanges",
      "Entries": {
        "{{ModId}}_MainTheme": {
          "ID": "{{ModId}}_MainTheme",
          "Category": "Music",
          "FilePaths": [
            "{{AbsoluteFilePath: assets/Title.ogg}}"
          ],
          "StreamedVorbis": true,
          "Looped": true
        }
      }
    },
tiny zealot
vernal crest
neat vigil
#

THANK YOU

#

IT WORKS

#

AAAAAAAAAAA

#

I am so happy, letss goo

fringe parrot
#

So I’m thinking through a potential vampire expansion where the player can actually bite npcs 😅 Does anyone know if it’d be possible to use the trash can mechanic on villagers?

#

So in theory - the player could interact with an npc to ‘bite’ them, replenish stamina and health, and even get negative reactions if caught by other npcs (like with the trash can)?

brittle pasture
#

that sounds like C# land

fringe parrot
#

I've really only ever modded custom npcs, cutscenes, etc so I'm starting to think this is above my skill level if it's even possible lol

tiny zealot
#

anything is possible with determined application of C#

dusk terrace
#

copying the trash can code sounds like the easiest part of the two
how will the player bite the npc?

lucid iron
#

You can make bite happen in a event without c#

#

But that's basically like "message player bit npc" with maybe anim

gray bear
#

let the farmer go feral feralyrsin

fringe parrot
hard fern
#

nibble nibble...

fringe parrot
brittle pasture
#

!decompile

ocean sailBOT
tiny zealot
#

does the mod showcase channel work with gifs?

lucid iron
tiny zealot
#

ok that was my plan. i know it takes your image if you post one but the image in question isn't effective unless it animates

#

perfection, thanks chu

tiny zealot
fluid night
#

When I replace an image, and I want it to start from the bottom left instead of the top left, what do I do in the json?

stray hemlock
ornate trellis
#

ok, so....maybe my brains not braining rn but...I wanna do a quest. ive set it up, its an item delivery one and now I want a specific event to only trigger after the quest is done, but so far ive found no condition or GSQ to add for the event...am i blind? or do i need to go a roundabout way somehow? like, make a CT and have the event only trigger when the CT is active or am i thinking too complicated

fluid night
uncut viper
karmic gust
hard fern
#

what image are you trying to replace?

fluid night
#

the premium barn in sve

hard fern
#

mmm...

#

buildings have a specific size dont they>

#

*?

hard fern
#

aside from needing to Load the image instead of using toarea and stuff, i think you'd have to change the size of the building internally

#

so that the image will display properly

stray hemlock
uncut viper
#

you would need to change the size of the building and make it use a different texture entirely

hard fern
#

like the top left will be 0,0,

#

you can't really go backwards

stray hemlock
uncut viper
#

(wait , i forgot buildings use individual textures, what spritesheet is being messed up by extending it?)

brittle pasture
#

what you can do is load to a new target entirely and edit building data to use that target instead

hard fern
brittle pasture
#

if the building's footprint doesn't change then I believe you don't need to do anything else you will also need to change the source rect field for both the building and the door's draw layer

#

but yes editimage wont help here

ornate trellis
#

wait, i dont quite get what i gotta do, cant i just do PLAYER_HAS_CONVERSATION_TOPIC questComplete_ConstanceFlowerBouquetQuest as a condition then to my event without the whole trigger stuff

hard fern
#

bouquest

uncut viper
#

when the CT expires

ornate trellis
#

oh, right

fluid night
#

These are the images, the right is what I'm trying to replace it with

uncut viper
#

if theres a precondition for having an active or previously seen CT then thatd work, but im not as familiar with event preconds

#

if this new building texture is strictly taller and not also wider im not sure why editimage wouldnt work?

ornate trellis
#

hm, ive got this so far

"{{ModID}}_CFBQuestCompleteCT": {
                    "Id": "{{ModID}}_CFBQuestCompleteCT",
                    "Trigger": "DayEnding",
            "Condition": "PLAYER_HAS_CONVERSATION_TOPIC questComplete_ConstanceFlowerBouquetQuest",
                    "Action": "????"
                },
uncut viper
#

your action would be the AddMail action to add some mail flag you decide, which you can then use as a precondition, When condition, or whatever else you use mail flags for

ornate trellis
#

ahhh

uncut viper
#

(you will need to make your texture height a multiple of 16 though)

fluid night
#

I use edit image, but it shortens it and mixes everything around a lot

hard fern
#

with fromarea toarea

uncut viper
#

why do you need to? just put the extra empty space at the top of your new texture and use Replace to editimage over the whole thing

fluid night
#

I'll try that

uncut viper
#

that top space would need to be replaced with empty pixels regardless

brittle pasture
#

and just to reiterate what Button/I mentioned, you must also edit building data's source rect field (for both the base building and the door draw layer) to point to the new extended coordinates

uncut viper
#

and again i want to emphasize that your new texture is not a multiple of 16 and that needs to be fixed too

#

itll need to be 176x208 px

fluid night
#

okk thank you

ornate trellis
#

[game] Failed parsing condition 'PLAYER_HAS_CONVERSATION_TOPIC questComplete_ConstanceFlowerBouquetQuest': required index 2 (string topic) not found (list has indexes 0 through 1).
Huh...

#

also i somehow messed up my crafting recipe, how the hell did that happen

#

also im realizing i forgor my modid in the CT name, hm

urban patrol
#

doesn't that take a [player] argument in index 1

ornate trellis
#

oh, right

#

oh, my game crashed, wut

#

or more like it jsut closed

#

ok no error message anymore but whats up with my last two crafting recipes not giving me my actual object?

urban patrol
#

are you getting an error object from it?

brittle pasture
#

if I have to guess you have made a coding error somewhere

ornate trellis
brittle pasture
#

post your code?

ornate trellis
#

but i do have the actual proper objects ingame via CJB

urban patrol
#

then yeah we'll need to see the recipe code

ornate trellis
#
"{{ModID}}_prismaticgemfruitseeds": "{{ModId}}_Painite 1 {{ModId}}_LushForestine 1 {{ModId}}_Chalcanthite 1 {{ModId}}_OpalizedAmmonite 1/Home/{{ModID}}_prismaticgemfruitseeds/true/none/{{i18n:prismaticgemfruit.Name}}",
"{{ModID}}_SpecialFlowerBouquet": "{{ModID}}_bloodstainedrose 5 {{ModID}}_halcyonflower 5 {{ModID}}_petrichor 5 {{ModID}}_scallure 5 {{ModID}}_sunsetrose 5/Home/{{ModID}}_SpecialFlowerBouquet/true/none/{{i18n:VoidWitchCult.CP.TheFishmongerNPC.SpecialFlowerBouquet.Name}}",
brittle pasture
#

(next time pls full thing via smapi.io/json)
the error here is that you inadvertently set the "is big craftable" field to true

ornate trellis
#

ah, frig

#

i shouldnt have copied the BC code from the other craftables...

#

hooray, now to see if i did the event trigger right

#

hm, why my event aint triggering...

#

[game] Trigger action 'VoidWitchCult.CP.TheFishmongerNPC_CFBQuestCompleteCT' has action string 'AddMail Current received VoidWitchCult.CP.TheFishmongerNPC_CFBQuestMailFlag' which couldn't be applied: optional index 3 (MailType mailType) has value 'VoidWitchCult.CP.TheFishmongerNPC_CFBQuestMailFlag', which can't be parsed as an enum of type 'StardewValley.Network.NetEvents.MailType'.
.....I did it wrong again...

brittle pasture
#

AddMail's mailbox type is the last var not the 3rd

#

3rd is the mail flag

ornate trellis
#

arrghh

#

ugh why cant i get this to work...I fixed the trigger...

urban patrol
#

are you testing on a new save/is it markactionapplied false?

#

if it's already run it won't run again even if you've changed it

ornate trellis
#

just tried it on a new save

#

but i go to the location at the event jsut wont happen

#

i even took out most of the other conditions

urban patrol
#

oh it's event preconditions not trigger action?

#

my bad

ornate trellis
#

ive set a trigger action so the event isnt limited to four days

urban patrol
#

okay so first i would test that the traction is applying (maybe set a second action like AddItem (O)390 50 so you can tell, or some other visible thing if you don't want to manually check it)

#

you can also test that the conditions of a traction are true using debug gq

#

you can also send your event preconditions and traction code for us to look at

ornate trellis
#

ok gimme a sec to gether my jsons

urban patrol
#

so then your traction is never running

ornate trellis
urban patrol
#

and debug gq PLAYER_HAS_CONVERSATION_TOPIC Current questComplete_YourModIDWrittenOut_ConstanceFlowerBouquetQuest shows as false?

ornate trellis
#

oh

#

wait no

#

i jsut did debug gq VoidWitchCult.CP.TheFishmongerNPC_CFBQuestCompleteCT i wasnt aware i had to type that all

#

if i do the command like yours then it says true

urban patrol
#

okay so the conditions are met

#

can you run a patch summary and see if you have the mail flag

#

also, looking ahead at your event preconditions, are you sure you want to check PLAYER_HAS_MAIL Any {{ModID}}_CFBQuestMailFlag Any here? if it's an event that only makes sense to play once, i would check the host, or if it's an event that's supposed to play for each person on their own time, i would check Current

#

wait a minute

#

that's not how you format the GSQ precondition aha

ornate trellis
#

im gonna be honest and say i mostly copy on what i did in the past

urban patrol
ornate trellis
urban patrol
#

however it's good to think about the ramifications of these sorts of small details

ornate trellis
#

wait so i gotta put a G in front or

urban patrol
#

ideally you would put GameStateQuery written out but yes either that or G

ornate trellis
#

ah damn i always use t etc

urban patrol
#

yeah they do still work but it's not recommended

ornate trellis
#

hm, ok put that in front and patch reloaded... thonking

#

do i need to trigger things again...

urban patrol
#

you should still have the mail flag

#

assuming it was applied in the first place, we skipped that step when i noticed the incorrect precondition

ornate trellis
#

hm

#

Aha!

#

it triggers, yay

urban patrol
#

woo!

#

plus now you know the steps for debugging tractions 🙂‍↕️

ornate trellis
#

yippie

#

thanks for the help

autumn tide
#

hmmm is smapi okay with spaces in .json file names?

brittle pasture
#

smapi shouldn't care
I however will /lh

uncut viper
#

selph i would think you of all people would be the most understanding here since Animals are like number one offender of Spaces in Names

autumn tide
uncut viper
#

if the spaces are either at the front or the end there is the possibility of running into issues with some tokens probably

urban patrol
#

use underscores like god intended!

uncut viper
#

content patcher does a bunch of trimming on tokens in places iirc

autumn tide
#

i enjoy the chaos it causes

uncut viper
#

i imagine/hope they arent on the ends though

autumn tide
#

i thrive on your anguish

lucid iron
#

I care not for your non conforming shenanigans and choose to not support it

autumn tide
#

i will add hundreds of spaces to every file name

#

enough that you can't how many are in a single gap

lucid iron
#

Using spaces in filenames is pain for simple reason of when you double click in vsc it select whole word

autumn tide
#

-# i'm joking i will actually remove the spaces i just enjoy being a bitch

lucid iron
#

And spaces are word terminating

autumn tide
#

i will name every file using a different number of spaces

#

oooh i'm gonna do that fancy a e s t h e t i c thing where you put spaces between every letter

#

...okay i'll shut up now i dont wanna be banned

#

wait are log names chill with spaces?

uncut viper
#

yeah those are just informational strings

autumn tide
#

hmm, it is necesary to put a mod name in your log name, or does SMAPI already specify the mod the log's from?

uncut viper
#

the LogName in content patcher has nothing to do with SMAPI, its Content Patcher that handles it

#

i believe it does include your unique ID

#

the LogName is just to help you identify a patch, its not the only thing that gets logged when something happens and its not seen under normal operation

autumn tide
hard fern
#

the only time ive seen LogName is when i fucked up a patch SDVpuffersweats

autumn tide
#

also tysm for always explaining this buttoms SDVpufferheart

autumn tide
uncut viper
#

thats the only reason LogName exists, is for debugging issues

#

literally the only real reason. you dont need a logname at all

autumn tide
#

hmmmm is there a way to find a list of color item ids?

#

idk what they're called-

#

like this

"ContextTags": [
      "color_dark_pink",
],
karmic gust
#

I'm testing an event to make sure the preconditions are working properly but it's playing despite not having seen the event I have listed as a precondition, so I know I have to be missing something obvious.

This is the json of the event that's playing when it shouldn't:
https://smapi.io/json/none/7ae8c31373a74cb0b945fdd58e4eb23b

And this is the log with full patch summary:
https://smapi.io/log/d1da3ce1e1704f68bedcf83ba37c43a5

It shows that other things requiring Elliott and Penny's wedding event having been seen as not taking effect so I'm not sure what's going on with the house upgrade event. Did I format the SawEvent precondition incorrectly?

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Unix 6.17.7.19, with 19 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

hallow prism
#

i don't know if there's a full source somewhere

#

(qi quest will not list some of them like gold, silver, and such, but it's still a very complete start)

autumn tide
#

why must i always find things AFTER i ask for help-

#

istg the 10 mins of searching i did before-

hallow prism
#

oh that's just a classic

#

i call it the spell of reveal

autumn tide
hallow prism
#

asking for stuff here casts a spell of reveal on the wiki

urban patrol
autumn tide
urban patrol
#

also, what's the deal with Condition on the patch?

karmic gust
#

condition is so that the event doesn't play if the player has or completed the special order the event adds

urban patrol
#

where did you see that you can add Condition on the patch level?

#

i didn't know that was a thing

uncut viper
#

it isnt

urban patrol
#

ah okay lol

#

you would want to use event preconditions instead, or if you have to, a When instead

karmic gust
#

Hmm okay. I can't remember why I thought to add that now because I wrote the event a while ago but I'm just now testing them in order

urban patrol
#

is there a way to receive that special order before the event plays? if not, then you can just delete all of that

tight rivet
#

.. uh... thanks, Google.

#

(you might catch why this is v funny, but.)

brittle pasture
#

AIs are incapable of saying "idk wtf is that" and other news at 11

tight rivet
#

yep

#

the funny bit is that if you type in something someone might have actually done (converting PFM to CP)

#

google properly goes

#

"no results"

karmic gust
#

Ah okay I found where I saw the condition thing but I think I read it wrong.

This is the page I looked at:
https://stardewvalleywiki.com/Modding:Game_state_queries

And I read, "For example, "Condition": "BUILDINGS_CONSTRUCTED Here "Junimo Hut"" will send BUILDINGS_CONSTRUCTED Here "Junimo Hut" to the game code."

So I thought that's how they were used, similar to When

Stardew Valley Wiki

← Index

#

But with GSQs

urban patrol
#

ah yeah Condition is only supported in some things

#

not in this case yeah

karmic gust
#

Okay I'll redo the event preconditions and test again!

urban patrol
#

to make a patch conditional, you would use When, but with event preconditions already built in, you most often shouldn't have to make patches conditional

lucid iron
#

Information mods benefit greatly from using gsq instead of When

urban patrol
#

yeah i believe that GSQs are preferred for things that are checked often because they're cached? (correct me if i'm wrong)

brittle pasture
#

yeah that's not quite correct

lucid iron
#

GSQs are not cached but they are in the data all the time

brittle pasture
#

GSQs are not cached, they gets checked every time they're run
the benefit of GSQs is that they're natively supported by the game, and any changes to their results don't require the entire asset to be reloaded

lucid iron
#

Meaning that info mods can see them all the time

urban patrol
#

thank you for the correction SDVpufferthumbsup

karmic gust
#

I figured out why the event was playing: I was looking at the wrong one in the code and the correct one was missing a precondition SDVpufferchicksweatsip

#

aaaaand that's why we get proper sleep omg I feel so dumb

#

but on the bright side I still learned that the other event was incorrectly done and fixed it haha

gaunt orbit
# urban patrol ~~yeah i believe that GSQs are preferred for things that are checked often becau...

Sort of
The delegates get cached, and gsqs can react to changes in game state without filtering through CP and the asset pipeline, but the results themselves are not cached by design.
There's some overhead involved in parsing and checking gsqs, so they're a fair bit more expensive than plain c#. So usually you want to avoid checking them every game tick, and only run them in response to some kind of interaction or event

#

(for example, shop entry conditions are parsed when you open a shop menu, and then not rechecked until you open it again.)

neat vigil
#

Hi everyone (again 😔), I would like to create a custom item for Stardew Valley and I want to add it to Pierre’s shop. Does anyone know how to do this or have a tutorial I could follow please?
I need to finish this mod today
SDVpufferwaaah

gaunt orbit
#

Tldr, faster than cp, slower than hardcoding. Don't check them every game tick.

gaunt orbit
autumn tide
#

lemme pull up the wiki page

#

oh also

#

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

neat vigil
#

Yes but I am not gonna lie, I am really tired
I have been working on my first mod since Monday😭

gaunt orbit
#

Alright, so you'll need to make a CP pack, and then add a patch for each of the following:

  • load your item texture/spritesheet
  • edit Data/Objects to define the item
  • edit Data/Shops to add the new item to pierre
autumn tide
neat vigil
#

Thank you you all 🥲

autumn tide
gaunt orbit
neat vigil
#

Sorry if its a dumb question

autumn tide
#

no worries! the target field thing specifies which specific part of something you want to edit :)

gaunt orbit
autumn tide
#

I could do the shop code bit for you, if you'd like!

uncut viper
calm nebula
#

(Yesish.)

#

It does a partial parse iirc

calm nebula
#

And the actual calculations are uncached

neat vigil
uncut viper
#

im not saying it parses the value, just the string to figure out the delegate

autumn tide
uncut viper
#

i figured i did not need to since wren already said that 😛

neat vigil
#

Thank you !

autumn tide
#

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

autumn tide
#

okayy

#

so, you're making a new tool?

#

afaik that's pretty complex stuff, might not be able to help much with the technical aspect of the tool itself

brittle pasture
#

Data/Objects is for regular objects
if you want usable tools the target is Data/Tools, and the format is also different; you'd also need to implement the tool's functionality in C#

brave fable
#

mm, there's no framework to help you with tool behaviours, they're completely up to you to write the programming for

neat vigil
#

My goal is to make an object that instantly marries a marriageable NPCs in the game. I know it’s weird, but it’s mainly to learn certain things better. So far, I’ve made it so that we can choose to activate a God Mode, which also changes the game’s music and the characters’ icons, so I thought it would be cool to make the task more complex

brittle pasture
#

you have existing code for that functionality?

autumn tide
#

..okay i cannot help there i am very dumb

#

hmm

stray hemlock
#

You could use Harmony to rewrite what happens when you give the Pendant to an NPC. That's my first idea.

brave fable
#

honestly i sort of also hate the tool behaviour workflow hahah, it's clearly one of those elements of the game that goes way back (and of course since they all have totally arbitrary behaviours they're doing a hundred different things)

neat vigil
autumn tide
#

i think you can use BETAS for something like that...?

brittle pasture
#

in that case items that do stuff don't strictly have to be tools (see: totems, pendant, etc.)

#

anyway to avoid confusion let's focus on one thing at a time
for shops you edit Data/Shops, and drill into SeedShop > Items using TargetField

#

that allows you to insert a new entry into SeedShop > Items without overwriting the others

neat vigil
autumn tide
#

hmm

brittle pasture
#

the rest of the code for functionality will be in C# land

autumn tide
#

yeahh seems like it

#

this is your first mod, right?

neat vigil
stray hemlock
#

If there's an explosion when you talk to me, I'd also marry you right away.

neat vigil
#

thank you everyone !

neat vigil
autumn tide
neat vigil
#

Yep, that’s what I’m going to do. Thank you, and sorry if I’m bothering you all

autumn tide
#

you're not! that's what this channel's fore

#

for

lucid iron
brave fable
#

the classic no-backsies-bouquet

karmic gust
#

Makes me think of a love potion

brittle pasture
#

I admittedly glazed over what the item did but tbf you could achieve the same result with 10 Stardrop Teas

neat vigil
#

I don’t necessarily plan to publish this mod, I’m mostly doing it to practice. But if I ever do end up publishing it, it’s not to say that the people you marry in the game are objects or anything like that but it’s just for fun, as a joke, without taking it seriously.

There is also Goku (for Sam) and Brock from Pokemon for Pierre so...😭

high geyser
#

Hello, I am trying to make a Conditional Door tile on a custom map in Tiled. I have everything working except a custom locked door message, and I am unsure how to make a string data asset and pass in the path. How do I do that?

brittle pasture
#

"Wow, this tea is so delicious! Thanks!" "Wow, this tea is so delicious! Thanks!" "Wow, this tea is so delicious! Thanks!" "Wow, this tea is so delicious! Thanks!" "I'm in love with you"

brittle pasture
autumn tide
#

if it was peppermint tea i would totally marry that suspicious farmer no questions asked

brittle pasture
#

could be an existing vanilla asset or could be a new one you make

lucid iron
#

Oh yeah I'm more talking about the controversial "marry anyone regardless of what their rejectitem_mermaidpendant says" situation with polyamory sweet

high geyser
brittle pasture
#

ah yeah that is truly terrible

brittle pasture
lucid iron
#

The format is <asset>:<key>

#

You would do edit targetting <asset> and add <key>: <your string>

hushed scroll
#

Tea to love potion

lucid iron
#

The asset should be a dict string string but that's the only req

autumn tide
tight rivet
#

prepares for intervention

autumn tide
#

i wont i'm too busy

#

.........if someone else wants to, however...

hushed scroll
#

😌

autumn tide
#

..one time i gotta search for all the times i said that to see how many random things i've had the urge to create-

gaunt orbit
#

this is dumb as hell. C#, y u no let me convert between equivalent/covariant delegate types

#

also why does FileWatcher not use EventHandler delegates

brittle pasture
#

what do you think this is, typescript?

gaunt orbit
#

it lets you do it with generics though!

#

it's just delegates specifically that it has problems with for some reason

#

like FileSystemEventHandler, Action<object, FileSystemEventArgs>, and EventHandler<FileSystemEventArgs> all have the same method signature, why can't I cast one to another?

high geyser
#

My door works, thank you everyone for your help!

gaunt orbit
#

to be clear, I'm not creating two delegates from the same method, I have a lambda stored in a delegate variable and it won't let me convert it between delegate types

#

c# lets you do the first one but not the second one

lucid iron
#

oh hm i actually didnt think you can register an Action to a event handler

#

it is always ask for method group instead and idk how to pass that blobcatgooglyblep

gaunt orbit
#

event handlers let you register any delegate of a matching type

#

it's just that if you give it a compatible method (group), it will automagically turn it into a delegate for you

lucid iron
#

hm i think what i actually wanted to do back then is like

Register(eventhandle, delegate);

and in Register

eventhandle += delegate;
#

which was illegal

gaunt orbit
#

is there a reason to do that?

lucid iron
#

i had a lot of handlers that all used the same delegate

#

but yea ive given up on it

#

otoh this seems legal

Register(HandlerMethod);
private void Register(EventHandler<Args> method)
{
    eventhandle += handleProc;
}
private void HandlerMethod(object? sender, Args args) { ... }
#

does it work for what u want

rose sequoia
#

hey ! I'm looking to make a mod that adds a new subarea inside the farm location, this subarea will have new characters with very basic dialogs, and new furniture (not movable). Is it possible to make this mod a content pack or do i have to do a SMAPI mod ?

autumn tide
#

okay istg that there's a trapdoor sprite somewhere in the game files- i've been looking for it for 20 mins pls help

autumn tide
urban patrol
#

and a palm tree

brave fable
lucid iron
autumn tide
lucid iron
#

make ur area exist first then deal with other bits

modest dagger
gaunt orbit
#

is mail text tokenized?

#

the wiki does not say

uncut viper
#

mail text does not support tokenizable strings

#

usually if it does not say then its a no but another easy way to tell is that mail still uses localized assets like mail-fr, mail-jp, etc

#

there are exceptions to that (cough events) but good rule of thumb

calm nebula
#

I thought it did

uncut viper
#

it does not

calm nebula
#

Use tokens

calm nebula
#

Might have been the same one I got wrong previously, but I thought it did in at least one constructor

uncut viper
#

just gender switch blocks

#

and thats only in one of the constructors

calm nebula
#

🙁

sleek igloo
#

Jesus I can't click any new mods on Nexus without getting ambushed by AI

whole raptor
#

It's just the one guy who bombards Nexus with those mods lately... I'm honestly getting tired of it (even tho I'm not nearly as anti AI as most people here)

sleek igloo
#

I ignored them but jeesh what a pain

#

It's not just annoying it's a bunch of stolen concepts half-assed

#

How are they not banned SDVpuffersquint

whole raptor
#

Stolen concepts? SDVpufferthinkblob

sleek igloo
#

Banned for spam, not concepts

#

Just stuff there already are mods/tools for I mean

#

As in it's basically mod spam

tiny zealot
#

i don't know if nexus bans for making too many mods. they made their DP algorithm secret so they could reduce payouts for anyone farming DP by going high-volume

whole raptor
#

I mean.. there's two cakes and I don't think releasing new mods constantly is basis for anything negative (it's just the way it's being done I have a slight problem with)

sleek igloo
#

I didn't mean stolen as in "someone's idea was used!!" Because there's always variations of stuff, just stolen as in "why are all these half-assed spam ideas even being touted as useful"

#

I know, AI

#

I just figured someone would've done something about it by now

whole raptor
#

Like what?

sleek igloo
#

Idk tbh

#

But spam is not a new problem

#

It's just ... AI spam

whole raptor
#

If releasing too many mods was wrong, aedenthorn would've been a war criminal SDVpuffersquee (at least pre 1.6)

sleek igloo
#

Usually people are penalized for annoying other users with constant spam, at least with idk a cool down or something.

#

Aedenthorn made actual useful mods tho

#

It wasn't spam dhdjd

#

Just a Very Determined Modder

whole raptor
#

Agreed, putting shorts on statues is essential SDVkrobusgiggle

sleek igloo
#

Not what I meant by useful lol

#

Silly mods have value

#

Else all the tortilla mods would be gone

#

But that was someone making something that other people could use/enjoy, just at an inhuman pace 😅

ornate locust
#

Spitting out AI mods that you don't even put effort into because you had a machine make it is a pain

sleek igloo
#

Exactly

ornate locust
#

not quite as much as the guy who put out five thousand "make specific NPC twerk" shouts, but it's bothersome

sleek igloo
#

Snort I wasn't there for that

#

But yikes

ornate locust
#

It was on Skyrim (thus the shouts) and it happened directly before the changes to how DP are calculated and it's absolutely who half those changes were aimed at

sleek igloo
#

Lmfao

ornate locust
#

Made the "new mods" page unusable

sleek igloo
#

Friggen rude

whole raptor
#

In my opinion if someone released 20 mods in quick succession, that were actually thought out, fun or just weird even with some kind of AI help, as long as you know mostly what you're doing and know what to aim for would be fine.
But releasing a ton of mods, that seem to be just AI from concept to finish, with no human input is just nah

ornate locust
#

Yeah basically

sleek igloo
#

That's what I'm saying. It's just spam

ornate locust
#

It has given us one good(?) thing though

sleek igloo
#

And spam filters have been around forever. So I expected Something idk what, but something SDVpuffersweats

ornate locust
#

this pig thing gave me One Good Laugh

modest dagger
#

my poor animal crops mod was immediately drowned in a sea of new mods

ornate locust
sleek igloo
#

It's drowning all the real stuff

sleek igloo
whole raptor
#

One thing stopping me from blocking

ornate locust
#

I have avoided blocking them just in hopes of another horrible pigduck incident

hard fern
#

oh god

sleek igloo
#

I want to actually find good mods so blocked for me

ornate locust
#

I can at least tell that's rotten from a mile off

whole raptor
#

They do seem to be convinced "farmer" is the new Jesus, judging by how many "standing on water" pics there are SDVkrobusgiggle

hard fern
#

i remember "farher" from earlier

karmic gust
#

SDVpufferlurk sorry to interject as this is totally unrelated, but does anyone have thoughts on how long event cool downs should be? Trying to figure out if 28 days is too long of a cooldown period for a house upgrade event after a rival pair gets married

#

And then I made the post marriage date 28 days after that, so 56 days total. I feel like that may be too long and I'm not sure how to gauge the sweet spot for long enough that players don't feel bombarded with events, and way too long

autumn tide
tiny zealot
#

i prefer to gate things by player action or some other game state change and not just by time

whole raptor
#

I'd say it is quite long SDVpufferthinkblob Judging by how modders usually rarely have saves that last longer than 2 years imo SDVkrobusgiggle

karmic gust
#

That's part of most of the rival hearts storyline, they're locked behind heart levels but after reaching max hearts I'm not sure what else they could be locked behind

autumn tide
hard fern
#

SDVpufferwaaah i finally made it past year 1

#

is it possible to track that with just cp

autumn tide
#

uhh no clue

tiny zealot
#

you could have e.g. a dialogue line that one of them gets after the wedding, and they ask you something or just set a mail flag that your next event could check for

autumn tide
#

hmmm maybe a string of convo topics you have to see?

tiny zealot
#

that sort of thing, yeah. i would worry about making the chain too long, but again that's just me talking

karmic gust
#

So currently the house upgrade is like, 28 days after the wedding they decide they want a bigger space and give the player a special order for a month, and then after it's completed it upgrades

autumn tide
#

mhm

karmic gust
#

So it's not fully time locked and there is player interaction

autumn tide
#

HMMM

tiny zealot
#

i'm no speedrunner but i don't like when i have to wait for the game, you know? /lh

karmic gust
#

Yeah

ornate locust
#

A month is pretty long

#

especially when a month is a full season

karmic gust
#

Is 14 days still too long?

autumn tide
#

maybe like they bring up the house size a few times and a mail flag is set for each related dialog and then once you get them all it triggers?

karmic gust
#

Could also do config settings to set between like 7-14 days I suppose

hard fern
#

considering robin can just Build stuff in 3 days

#

i think maybe 5-7 days might be better

karmic gust
#

She builds the house upgrades the day after the special order is turned in 😅

karmic gust
#

I wasn't sure if 7 days would feel too abrupt but the more I think about it feels better than 28 lol

autumn tide
#

...god not another mod idea-

karmic gust
#

Cursed animals mod

autumn tide
ornate locust
#

Pigduck, Chickencow

karmic gust
#

Turducken

ornate locust
#

Rabbitgoat

autumn tide
#

okay but who wouldn't want a pet pigduck

#

omg pigduck digs up feathers and drops truffles

karmic gust
#

I hate that I kinda like that idea

autumn tide
#

and costs 66666 gold, just cause it can

ornate locust
#

Chickencow is just a meal in one

#

Egg, milk, meat

autumn tide
#

complete breakfast speedrun

#

hmm what would be the most cursed combo

ornate locust
#

Actually, Rabbitsheep. Double wool, drops foot sometimes. Rabbitgoat would have milk too, too much in one

karmic gust
#

Feel like you could do a cursed fish-land animal combo

autumn tide
#

rabbitsheep but the sprite is a regular sheep with all the wool replaced with feet

ornate locust
#

And then... Thinks Ostritchgoat?

autumn tide
ornate locust
#

Horrible thing, long neck and long legs, but goat body and head

autumn tide
ornate locust
#

Extremely

#

lays eggs

#

and gives milk

autumn tide
#

i like that

#

wait wait wait

#

VOID OSTRICH GOAT

karmic gust
#

Yes but make it so you need a regular ostrich goat until the witch comes

ornate locust
#

Perfect

autumn tide
#

...okay are we actually gonna do this?

#

i mean

ornate locust
#

what about the dinosaur though

karmic gust
#

I feel like you have to

autumn tide
#

i'm down for it if you guys are

karmic gust
#

Dinosaur chicken but it's just a different kind of dino

autumn tide
#

hmm

ornate locust
#

Maybe the dinosaur can be like a dino/mammoth

autumn tide
#

dinostrich

ornate locust
#

for the mammal/egg-layer mix hell

autumn tide
#

hmm

ornate locust
#

points at pigduck Behold, a platypus

autumn tide
karmic gust
autumn tide
#

im sorry it was too good i had to quote that-

#

but consider- dinorabbit that's actually just the killer bunny from monty python

#

hmmm

karmic gust
#

I like it but what would it produce

autumn tide
#

hmmm

#

foot egg idk

#

WAIT

#

an 'egg' that's actually a geode that you can open to get wool and rabbit feet

autumn tide
autumn tide
#

...........should i make a cursed animals mod thread for this?

rose sequoia
#

does anyone know if the Content/Maps/RefurbishedSaloonRoom is an unused map ? I'd like to use the top right part of the saloon but it looks like it does eventually transform into the subarea

#

however i dont find any mention of it in the wiki

modest dagger
#

alex's 14 heart event

rose sequoia
#

so it's in the farmhouse ?

modest dagger
#

no the saloon

#

he asks the player for money, if they agree it refurbishes that back room

rose sequoia
#

:(((

devout otter
karmic gust
autumn tide
modest dagger
#

lmk if your cursed animals have unique drops i'll add compat to ARC for them

autumn tide
#

i've never done animals before tho so

tight rivet
#

hn.

modest dagger
#

animal resource crops

autumn tide
#

GOTCHA okay

modest dagger
#

crops you can turn into animal resources. I like making crops

autumn tide
#

...dammit got another mod idea- one sec gotta write some more idea slop down SDVpufferflat

tight rivet
#

this is an interesting way of ahndling it

#

load the textures via CP

#

then use PFM to define the rules

#

so I'll have to remember to target that mods assets.

autumn tide
autumn tide
tight rivet
#

hm.

#

PFM uses ticks for their interval and CP uses ms

lucid iron
#

1 tick is 1/60s

tight rivet
#

ahhh

#

i used the wrong tick when converting. 🙁

inland rain
urban patrol
#

is there a context tag/category that can capture all edible items so that i don't have to list all the types of food?

#

i checked the raw dump on the wiki but didn't see one

#

(for context, this is for accept gift dialogue)

drowsy pewter
#

hmm

ornate locust
#

what do you MEAN the AI coding guy doesn't even write his own descriptions- you know what, not sure why I'm surprised, just outsource breathing too while you're at it.

#

Uh, I think you can do "anything with edibility 1+"

#

But it's not a tag exactly... so I don't think it'll work there

brave fable
#

there won't be a category either, since it isn't tied to edibility at all

urban patrol
#

hmm okay i'll list them for now and perhaps request that be an upcoming feature

ornate locust
#

Yeah, I know how to do that for a shop, but not via tag for gift dialog

brave fable
#

mm, there's an ITEM_EDIBILITY GSQ but that isn't usable in gift tastes

urban patrol
#

and a query in the value wouldn't even help here 😔

#

i once again yearn for the foreach

brave fable
#

while having an itemquery for gift tastes would be funny, it's certainly very niche

urban patrol
#

yeah lmao

#

it would literally take me less time to type out each category

ornate locust
#

AcceptGift_(O)EdibleCrap

#

the GSQ is useful at least, stops people from putting POISON into the Little Free Pantry

brave fable
#

the children will eat gunpowder and rocks

ornate locust
#

literally opened it while testing and it was about five different kinds of poison forage

urban patrol
#

"this is nightshade, children!"

ornate locust
#

Linus opens the box, immediately decides to move out of town because someone wants him dead

tight rivet
#

when adding machines via CP, how do you set sounds for input?

#

checks wiki again

#

ah-ha, data/machines

inner harbor
#

If i wanted to add code to allow you to build a bridge, what franework/utility mod would allow that? Or should i do it as a special order?

gentle rose
#

it depends on how you want to allow it I guess? are you hoping to do it as a robin order (which I think would require C#), as a bundle (unlockable bundles), something else?

inner harbor
#

Maybe like the beach bridge? I could probably do it as a special order though.

#

I dont think i want toadd unlockable bundles if i can avoid it.

tight rivet
#

oh, to the orchard in ES? I'd do unlockable bundles or special order, myself

#

proably the latter

#

stares at data/machines a bit

#

the vanilla rules don't seem to say anything about fuel consumption.

gentle rose
#

it really depends on how you want to add it, the bridge itself is the easy part because that’s just a map patch

tight rivet
#

checks data/bigcraftables

#

.. huh.

#

that explains why this mod did 'additional items required' in data/machines

gentle rose
#

oh nvm SDVpuffersquee

tight rivet
#

yeah, you'd think there'd be a fuel field in the vanilla asset though

#

but eh

#

goes back to converting this last asset to CP so I can start writing the patches

#

(I guess a per-recipe field would do something different, I'm tired, don't mind me.)

drowsy pewter
#

You need EMC to do per rule

drowsy pewter
#

Vanilla has fuel field, just check furnace or something

#

or idk if you figured that out already or not because I dont understand what the following messages are signifying

drowsy pewter
# inner harbor Yes, that bit is already done

You can do something like the beach bridge with a combination of trigger actions and tile interactions. Spacecore lets you start a trigger action when interacting with a specific tile, and you can make it say something like "give X number of wood to fix bridge". However you'd need a mod like BETAS to be really specific with checking if the player is actively holding the item, etc when interacting with the tile to "turn it in" (i did a lot of this stuff for cornucopia cooking recipes)

#

but im sure theres a lot of options here

#

Like you can make it start a quest instead

inner harbor
#

I might just do a special order

#

how many pieces of wood do you think?

drowsy pewter
#

i mean idk your bridge lol

neat vigil
#

Heeeelp, yesterday I tried to add an object to Pierre’s shop but now He doesn’t want to sell me anything 😭

#

Can I show you my json ? To see if there is a problem ?

tight rivet
#

I figured it out

#

I'm now verifying th json structure lol

#

i always screw this up somehow

vernal crest
inner harbor
#

I can set special orders via trigger actions, yes?

vernal crest
#

AddSpecialOrder <order ID>

inner harbor
#

(watch everyone get annoyed when the bridge no longer appears at night - although you can still reach it via the map above it)

tight rivet
#

and I'm sure there's errors in it but there's not json errors now

vernal crest
#

Eaten other machines?

tight rivet
#

yeah, when I hit save, the other two completed machines seem to have vanished

#

which .. well, I can recreate them, it's not hard, it's just annoying

vernal crest
#

Can't you ctrl z and see if their deletion gets undone?

tight rivet
#

.. huh

#

that did fix it

#

thanks!

vernal crest
#

You're welcome

tight rivet
#

(weird it saved it after I had to update and restart notepad++ but I'm sure not complaining!)

modest dagger
#

will i break things if i don't update my formatting to 2.8

uncut viper
#

no

obtuse wigeon
#

maybe maybe not, it's best practice to use the latest, but CP tries to auto migrate, if it isn't able to then things will break, but you also wont have access to the newer features

uncut viper
#

you just won't be allowed to use anything that was newly added in 2.8

#

but there's no reason not to update it

neat vigil
#

I don't know if I did something wrong, but when I talk to Pierre I can no longer access his shop inventory, so I can't buy my custom item "StardewBall"

#

I am in a kind of despair

uncut viper
#

where did you get this format of things from

#

you will need to take another look at content patcher documentation for TargetField (inside the EditData documentation) and the wiki page for shop data which I can't easily get on mobile right before bed but I'm sure someone else is probably more readily capable of finding it if you cannot

obtuse wigeon
tight rivet
uncut viper
#

correct

#

correct

obtuse wigeon
#

pfft great timing XD

neat vigil
#

okay and I found that on an old Github

#

maybe it's obsolete or something

uncut viper
#

which one

neat vigil
uncut viper
#

you'll need to fill out the fields for an actual shop entry as described on that wiki page, which I believe also links to the generic item spawn fields that make up most of a shop item entry

#

well maybe not most. more stuff is shop specific than I remembered apparently. doesn't matter anyway

#

anyway, don't look at old githubs or anything else that doesn't have accurate and up to date information or knowledge in it

#

there is a very large divide in applicable knowledge between 1.5 and 1.6

neat vigil
#

oh Okay thank youu

tight rivet
#

This part of the compat mod is the fun part, since every option is turnoff able on this mod, and I doubt I can access other mod's configurations

obtuse wigeon
#

You can if you have a depencancy on Cross Mod Compatability Token (CMCT)

tight rivet
#

oh no

#

so if I use CMCT, can I mark the mods it's trying to add stuff to machines from as not required, or is that going to cause issues..?

drowsy pewter
#

i dont know if i can parse that sentence

#

but im pretty sure you dont need to have the other mods as required

#

what mod are you making anyways?

tight rivet
#

just something that adds recipes added to the furnace being extended to the High Ore Node Tree furnaces

#

(and then later, to the electric ones)

#

...

#

the problem is I'm looking cross-eyed at how Prismatic Tools works, too..

#

(it uses AssetEditor to patch in the prismatic bar, which is fine, but it also means that I'm unable to preserve the GMCM options to control input/output of the bars.)

#

I could probably write a C# component to this to just copy over the entries

#

... i just don't want to really use c# right now.>_>

#

(i'd have to resetup my dev environment)

#

ah well

#

i'll get the other mod working first.

#

could just make it for personal use and not care, and might end up doing that too, tbh

tight rivet
#

but I hvae to get up in 4 hours so

vernal crest
#

If the PrismaticBarNumberProduced token resolves as an integer then it should be fine.

Your sap to glue patch won't be fine though because you're checking a HasMod in the same When field as you're trying to use a config token from that mod. If the mod isn't installed, you'll get a warning about a missing token.

neat vigil
#

It finally works! I got my item in the shop. The issue now is that it doesn’t have my image
For that should I install json asset mod ?

vernal crest
tight rivet
vernal crest
vernal crest
neat vigil
tight rivet
#

You need to specify the asset path in the object iirc

#

Er, texture

#

As well as add the texture itself.

vernal crest
# neat vigil I think it's curse, I have got a lot of misunderstand with json...

You have removed your Texture field from your Data/Objects entry so you're not telling it to use your custom texture.

Also, please immediately add the {{ModId}}_ token to your Stardew ball's entry key, the Name field, the shop entry key, the shop ID field, the shop ItemId and your Target for your texture's Load patch (you don't have to have "Objects/" in your Target but you can if you want to keep it). It's important that we make all our IDs unique so that we don't risk incompatibility with other mods.

Additionally, where are you getting those CanTrash and CanSell fields?

vernal crest
# neat vigil

Why are you just sending me this screenshot with no context?

neat vigil
#

I was wrong about CanTrash, but basically I extracted the .xnb files to know what property I can add

#

I should have wrote CanBeTrashed

vernal crest
#

You were wrong about CanSell too

#

And looking at the data is definitely a good idea, but it helps to back it up with looking at the wiki page so you understand it (like knowing if a field has the same default value as what you're setting it to and therefore you don't need to add it - though if it helps you read your json, there's no harm in doing so)

#

Do not ask AI anything, ever

#

For any reason

#

But especially not for Stardew

#

Because it will be wrong

#

Why not just tell your friends you can't show it to them yet? It can't be fun giving yourself this unnecessary stress.

neat vigil
#

I am sorry... I have just got a lot of issues and I don't want to ask too much questions here

vernal crest
#

We would always rather you ask questions here than ask a chat bot

#

Because the chat bot will be wrong and then you'll have to come here anyway and we will have to un-teach you the incorrect things you got from the AI

neat vigil
vernal crest
#

Why does it have to be tomorrow though?

#

Why not later?

neat vigil
#

Because we rarely see each other

vernal crest
#

Well, if they are good friends they will be interested in your progress even if you're not finished yet

neat vigil
#

"Texture": "Mods/{{ModId}}/Objects"

for the texture, I have to use that right ?

vernal crest
#

Nope, you can use whatever you want (as long as it's unique)

#

I usually use {{ModId}}/HouseTexture or whatever because I don't see the point in the extra Mods/ bit

neat vigil
#

You know what? I’ll try my best, and if I don’t finish it tomorrow, it’s okay
Sorry again everyone

blissful panther
vernal crest
blissful panther
#

Nobody here is annoyed by you needing to ask questions!

neat vigil
#

Well, originally I’m not part of the Stardew community. I wanted to mod Persona, but it was too complicated, so I decided to learn how to mod a game and stumbled upon Stardew. I had never played the game before, and even now I haven’t played much...
It’s just that here, you’ve all been so nice when I asked questions and honestly, I love this community so much that I actually plan to finish the game after this week.

#

Thank you really

#

Sorry for not telling you earlier, I thought I might get kicked out or something for not being a “real” fan

blissful panther
#

You're fine! There's a weirdly accurate running joke that modders don't play the game anymore. SDVkrobusgiggle

neat vigil
#

I think it’s really funny to have fun modding a game you don’t really know

vernal crest
#

There is definitely no rule that you have to play a game to make mods for it. Some people find much more enjoyment in making mods than in playing games. And trying to find a game that's easier to mod is a good idea - and Stardew definitely qualifies there haha

neat vigil
#

you guys are awesome, thank you !

#

I’m not sure if it’s interesting but one day I’d like to create my own game. For now, I mostly make small games, work on 3D, UI, etc. I thought that making a mod would help me understand some coding principles
One day, I’ll show you in more detail what I’ve already done

vernal crest
#

You are right that learning how to mod will help you understand coding principles, especially if you master json mods and start learning C#. But even staying just within the context of json mods, there's a lot to be able to learn about how games and their data can work imo

blissful panther
#

And arguably more valuable than even learning programming is getting how to finish and release something ingrained in you.

That's the real challenge.

#

And content mods are a pretty great way to get that.

vernal crest
#

-hides my mods- Yes, finishing things. Definitely. Indubitably.

obtuse wigeon
#

SDVpufferlurk I also finish things, yep totally, do bare with I have to hide the 20 mods I have unfinished and the many ideas yet to come to fruition XD

neat vigil
#

I think I am really strugle to understand how it works event after reading the same wiki a lot of times I keep making mistakes

vernal crest
#

You need a patch where you Load your .png file. That will tell the game "there is an image called StardewBall.png and when the data references {{ModId}}/StardewBall, you should use that StardewBall.png image".

#

And then in your Data/Objects entry, your Texture field is where you put that reference, so you write "Texture": "{{ModId}}/StardewBall"

#

Right now you've almost got the reference correct - you just need to remove the .png part from the Texture field (and add a comma after the IsRecipe line above it), but you have removed your patch that is actually Loading the image to be referenced.

neat vigil
#

Okay, I think I understand, I am going to try, thank you !

vernal crest
#

If there's any part that needs to be clearer, I'm happy for you to ask clarifying questions :) There's lots of different ways we can learn things so if one explanation doesn't make sense it usually just means you need it explained a different way that works better for your brain.

neat vigil
#

I think I should first understand all the things that json can do and how like that I will understand things better I think

#

But I understood what you were saying

#

Your explanations were clear 🫡

vernal crest
neat vigil
#

Thank you I have not seen it yet

neat vigil
#

Can someone tell me if I’m wrong, but basically Load is for loading something. Here, I want to load a texture from a folder.
Then I’m clearly modifying the data, so here I’m adding an entry that corresponds to the new asset I want to create. The problem is that the asset doesn’t seem to load the image I tried to load

modest dagger
balmy prawn
#

you need the Target from the part loading your texture and the Texture field in the editdata itself to match

modest dagger
#

i simply copy what i've done before without understanding it

blissful panther
balmy prawn
#

^explained more eloquently than me, its this 100%

modest dagger
#

i tried

#

¯_(ツ)_/¯

balmy prawn
#

finding myself cursed with the urge to go back and finish my longhorn cow textures from so many moons ago even though its finals week and also wayy past my bedtime

#

the grind never stops ...

calm nebula
#

Go to sleep SDVpufferheart

#

Finals are more important SDVpufferheart

balmy prawn
#

but the grindddddd

#

one day i will finish a project Surely LOL

neat vigil
#

Thank you guys ! I am trying your solution @blissful panther

obtuse wigeon
#

Finals week sounds like it lasts for a week, focus on your finals and get some rest, the long horn cows will still be there in a weeks time, your finals however won't

balmy prawn
#

sigh

#

i know in my heart yall are right

#

godspeed all SDVpuffersalute

neat vigil
#

I have still got an error SDVpufferwaaah [13:52:21 ERROR Content Patcher] Patch error: (CP) Characters > Load Mods/{{ModId}}/StardewBall has a FromFile which matches non-existent file 'Zakouski.Characters\assets\StardewBall.png'.

obtuse wigeon
#

whats the path to the StardewBall.png look like? (reletive to your mods folder) it's looking for an image that isn't in that location it seems

#

!log also use this to send logs, it makes it easier when we can see the full 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.

drowsy pewter
#

no. modding is more important than whatever you got going on

neat vigil
#

idk if I can post images here ?

obtuse wigeon
#

ye images are fine dw

neat vigil
#

don't pay attention to Goku and brock.. Don't mind them

blissful panther
#

So in this case, you would want line 17 to load from assets/StardewBall.png like "FromFile": "assets/StardewBall.png".

#

And I will not ignore Goku. Goku should be in the game. SDVkrobusgiggle

neat vigil
#

IT WORKS

#

THANK YOU

#

AAAAHHH

hard fern
#

Goku dew valley

vernal crest
#

Newbies thinking that modded textures require Mods/ at the start of their asset names SDVpetcatsad

patent lanceBOT
obtuse wigeon
#

I mean, I see why, mods go in the "Mods" folder, especially when you don't know how they're loaded into the game

vernal crest
#

Yeah but they didn't invent it

#

There's just been an unfortunate trend of people thinking it is required because some people like to do it

obtuse wigeon
#

Ahhh gotcha

vernal crest
#

And unfortunately it further entrenches the incorrect belief that asset names are file paths

#

Which gets the poor things all confused about what to do with them

autumn fog
#

im trying to make some slight map changes following this (https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-tiles) and my changes in Tiled (changing 1 tile in abigails room) dont show up. I think its because i havent used SetTilesheet or SetIndex but I dont know exactly what to put? is the tilesheet ID just the file name in the maps folder, and how can i find the index of the tile im using?

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

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.

woeful lintel
lucid iron
#

There's 2 main ways to use editmap are you trying the tmx way or the maptiles way?

autumn fog
#

i edited the tmx file in Tiled

#

i just followed the modding:maps and the above link

lucid iron
#

In that case you probably dont need settilesheet/setindex

autumn fog
#

ah ok

lucid iron
woeful lintel
# neat vigil

If you're planning on using that Pierre spritesheet as a Portrait, you probably will have to compress it, the vanilla ones are 64x64, and even with mods, you'll only reach 4 times this.

lucid iron
#

Ah you need to have fromfile if you want to source from tmx

lucid iron
vernal crest
#

And you don't need the MapTiles field at all when you're making your changes with a tmx (unless you're intentionally doing so)

autumn fog
#

oh ok, thanks

#

it works now :D ty

blissful panther
heavy pewter
#

What are the odds of this failing?

iron ridge
#

just patch the dll PufferFingerGuns

patent lanceBOT
calm nebula
#

(Buy the soundtrack and rock out to it on a long run)

lucid iron
#

I'll play vanilla and expect y'all to have hcmapi once im done first run thx

tiny zealot
#

when you implement hcmapi please store configs in a separate place outside of the mod folders themselves, kthx

obtuse wigeon
#

Seconded for sure

hard fern
#

Hcmapi...

neat vigil
#

does someone knows if there is something to know who our character is talking to ? a methode or variable idk

woeful lintel
#

Actually, it should be HMAPI to respect the naming convention

tiny zealot
neat vigil
#

I found currentSpeaker, thank you

gentle rose
gentle rose
gentle rose
stray hemlock
gentle rose
#

do you think hc is going to have a cursors equivalent, dh

blissful panther
#

I bloody hope so.

woeful lintel
#

it does sound better

blissful panther
#

I'd do it if I were CA!

stray hemlock
gentle rose
#

hc gets released and ca brought back everything we ever complained about on purpose

stray hemlock
#

I sure hope Ape's third game has one word start with a Z for ZMAPI.

tiny zealot
ornate trellis
#

my computer restarted while i was gone...

#

lol my codes gone cuz i forgot to save before i went to work

stray hemlock
#

Windows?

ornate trellis
#

aye

stray hemlock
#

I'm sorry for your code being gone and for you having to use Windows.

ornate trellis
#

guess its my own fault for forgetting to save but alas

vernal crest
#

Gotta be in that Ctrl-S habit

stray hemlock
obtuse wigeon
#

I ctrl s after nearly every line, more often every word, it's a life saver

woeful lintel
#

brOS think it has control over humans

ornate trellis
#

normally i overly save too but i guess i was just too distracted this time

vernal crest
#

Regularly saving would prevent loss from non-OS problems too like powercuts.

ornate trellis
#

but its insane how forceful windows keeps being when iot comes to updating and the whole hey you gotta restart stick

vernal crest
#

(Not trying to lecture you, Void, just making the point that even if an OS isn't randomly restarting there are still reasons to save.)

#

Ugh yes Windows does suck for that

#

Just stay on end of life Win 10 like me and stop getting updates :D

ornate trellis
#

too bad my comp was shipped with win11

woeful lintel
#

Ugh yes Windows does suck for that

vernal crest
#

I will depart from Windows when Xbox Game Pass is no longer worth paying for

#

Until then, I am forced by my own rabid love of playing new games to stay here

stray hemlock
ornate trellis
#

im too inept technology wise to use anything but windows sadly

stray hemlock
woeful lintel
#

I will depart from Windows when Xbox Game Pass is no longer worth paying for

tiny zealot
vernal crest
#

Some Linux distros don't require any more tech knowledge than Windows does imo

woeful lintel
#

May I convert you to the abundance of under 5$ itch games?

obtuse wigeon
vernal crest
#

And Ubuntu is pretty

ornate trellis
#

its mostly also the whole not every program and stuff is compatible with other OS what keeps me at bay too(did I mention my laziness and working fulltime, basically im halfway zombie lol) ANYWAY, luckily it wasnt too much that i have lost so im not too mad, jsut really damn annoyed

tiny zealot
woeful lintel
gentle rose
ornate trellis
#

maybe ill look more into it next year when ive hopefully a bit more time, christmas time is really unholy in retail

gentle rose
#

what do you write code in, void?

tiny zealot
#

actually maybe it's not the terminal. anyway it causes Problems™ if i hit it at the wrong time

obtuse wigeon
#

I use nano to edit files in the terminal so I don't think I've ever touched ctrl s in one ngl

ornate trellis
#

notepad++

rose sequoia
#

is there like some sort of auto completion for any of the fields content patcher uses ? For example I'd like to be able to see in vs code that an NPC "optimism" has 3 possible values : "Neutral" "Negative" or "Positive"

ornate trellis
#

vscode is too overwhelming for me i am really bad in getting used to new things

gentle rose
ornate trellis
#

O:

obtuse wigeon
gentle rose
#

(I have been saved by IDE caches before haha)

woeful lintel
lucid iron
#

Otoh if you don't care about the value it's ok to not set it Dokkan

gentle rose
lucid iron
#

Enum fields are weird cus putting in a number is legal too sometimes

stray hemlock
ornate trellis
gentle rose
#

worked?

obtuse wigeon
ornate trellis
#

hell yeah

gentle rose
#

niceeee

ornate trellis
#

damn ive backups from a shirts.json from nov last year in there lmao

obtuse wigeon
#

Bigger backup than I thought it would have, nice one

heavy pewter
gentle rose
# obtuse wigeon Ahhh gotcha Ty

you could try adding more if you want to fig through the schema file and make a pr for pathos, but remember that if there are tokens in it you have to disable the entire check

obtuse wigeon
#

I would rather not try to touch schemas again, I am too confused by them XD

ornate trellis
#

i still wanna punch windows for seemingly randomly restarting tho

versed wyvern
#

Is all the info for festival minigames like the Festival of Ice fishing portion stored in hard coded stuff? I was trying to find the data for Elliott's fishing animation but it's not in animationDescriptions, and it's not in an animate event command either

gentle rose
#

the animation frames themselves should be in his spritesheet since he fishes in his schedule, I think?

versed wyvern
#

That may just be Willy, Willy has a fishing animation in animationDescriptions and uses it in a few schedule entries

ornate trellis
#

Elliot has his fishing sprites on his regular spritesheet too, not sure about the coding part tho

#

do you plan on coding it yourself or?

versed wyvern
#

Elliott has his fishing sprite set up with showframe and ExtendSourceRect but nothing defines the animation or anything

royal stump
#

the only hardcoded stuff for the ice festival fishers seems to be a) adjusting their positions, b) tossing out temporary sprites for the fish they catch, e.g.

this.getActorByName("Elliott").shake(500);
Game1.playSound("dwop");
this.temporaryLocation.temporarySprites.Add(new TemporaryAnimatedSprite("Maps\\Festivals", new Microsoft.Xna.Framework.Rectangle(112, 432, 16, 16), this.getActorByName("Elliott").Position + new Vector2(0f, -96f), flipped: false, 0.015f, Color.White)
{
    layerDepth = 1f,
    scale = 4f,
    interval = 9999f,
    motion = new Vector2(0f, -1f)
});```
#

at least that I can find by name

versed wyvern
#

Hmm, so nothing appears to be controlling his sprites? Curious...

royal stump
#

watching a video, he literally doesn't move aside from that shake on catch, so there's probably not much to find

#

willy does move slightly, but the others are just on a specific frame

versed wyvern
#

His bobber bobs which made me expect to find an animation somewhere

rose sequoia
#

does it not work like that ? I cant seem to load the map

royal stump
#

that part's probably scripted somewhere if it's not in the animation texture, yeah

lucid iron
rose sequoia
#

okok

versed wyvern
lucid iron
#

Got distracted sorry but here's guide

royal stump
# versed wyvern He does have a separate frame in his sprite sheet for the different bobber posit...

alright, so the bobber frame change is probably this bit, looking at it closely

if (oldTime % 500 < this.festivalTimer % 500)
{
    NPC temp = this.getActorByName("Pam");
    temp.Sprite.sourceRect.Offset(temp.Sprite.SourceRect.Width, 0);
    if (temp.Sprite.sourceRect.X >= temp.Sprite.Texture.Width)
    {
        temp.Sprite.sourceRect.Offset(-temp.Sprite.Texture.Width, 0);
    }
    temp = this.getActorByName("Elliott");
    temp.Sprite.sourceRect.Offset(temp.Sprite.SourceRect.Width, 0);
    if (temp.Sprite.sourceRect.X >= temp.Sprite.Texture.Width)
    {
        temp.Sprite.sourceRect.Offset(-temp.Sprite.Texture.Width, 0);
    }
    temp = this.getActorByName("Willy");
    temp.Sprite.sourceRect.Offset(temp.Sprite.SourceRect.Width, 0);
    if (temp.Sprite.sourceRect.X >= temp.Sprite.Texture.Width)
    {
        temp.Sprite.sourceRect.Offset(-temp.Sprite.Texture.Width, 0);
    }
}```
#

every 500ms, the fishers switch to the next horizontal frame, or reset to the left* if they ran out

versed wyvern
#

Oh! Okay, that's exactly the kind of thing I was looking for, thank you henyadance

lucid iron
#

Esca since u r here do u recall off hand if FTM does anything to prevent botanist from working on select forage items

royal stump
#

(actually ig they don't reset completely, it just goes back 1 left)

royal stump
#

I forget which perk name is which though

#

checks yeah, the always-iridium thing should behave the same in either case

versed wyvern
#

I had Elliott's sprite upscaled via Scale Up Unofficial, you see, and he keeps flickering away every second which smelled like a clash with something hard-coded

#

Worst case it was gonna be something to do with all of these extendSourceRect sprites

lucid iron
karmic gust
royal stump
#

SDVpufferthinkblob in theory that code would account for source rect changes, but yeah, it might get weird somewhere
and the event itself does specify how big the extended sprites should be

karmic gust
#

https://smapi.io/log/0d457155d8114054baa15ecd808f11c9

I'm getting an error that says: NPC 'Sam' failed to parse master schedule 'fall' with raw data '1000 JoshHouse 19 6 2/1040 SamHouse 17 15 2 sam_guitar/1320 Forest 66 50 2/1900 SamHouse 22 16 1/a2000 JoshHouseUpstairs 10 16 1/2200 JoshHouse 20 4 1 sam_sleep'.
ArgumentException: An item with the same key has already been added. Key: 1900

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Unix 6.17.7.19, with 19 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

karmic gust
#

also sorry, I know the log is really long, the error is all the way at the bottom

brittle pasture
royal stump
karmic gust
versed wyvern
karmic gust
#

Okay I'll redo that. Thanks for the second pair of eyes!

royal stump
#

(I can't load the log, but) yeah, the a prefix causes errors if the generated time is too long and collides with another
there it goes

karmic gust
#

I tried to keep it as close to his vanilla schedule as possible and didn't take into account distance lol

lucid iron
#

I dunno why picking up quartz in the mines is fine MikuBear

fervent horizon
fervent horizon
#

I really need to whip up a better icon than the one I am using

sleek aurora
#

Tell me an example of a fashion in which you can see copying the taste of fuel for a new machines.

lucid iron
#

You can always steal the config button from cursors

fervent horizon
brittle pasture
sleek aurora
brittle pasture
#

ah yeah, EMC doesn't quite support having the primary flavor of the output be the id/flavor of the fuel yet actually I might be misremembering what my own mod does

#

mainly because I do not foresee it actually being a use case

brittle pasture
#

%PRESERVED_DISPLAY_NAME is cocoa powder, %EXTRA_PRESERVED_DISPLAY_NAME_1 is the milk used

#

also you must add DROP_IN_ID_1 to the internal name

sleek aurora
#

It worked! How to copy the quality of fuel?

brittle pasture
#

you'd need to add 4 output item, one for each quality (e.g. fuel with id_o_184,quality_silver will have Quality set to 2 for silver)

sleek aurora
#

Got it, thank you!

rose sequoia
#

what's the real name of the elliot house ? cuz the tmx file is named ElliotHouse.tmx but no matter the casing i use there's nothing working

hard fern
#

!elliot

ocean sailBOT
#

Elliott has two t's in it...

rose sequoia
#

-100 aura

obtuse wigeon
#

The fact that's a command means it's tripped so many people up XD

rose sequoia
#

do we have to do both for it to work or not ?

calm nebula
#

No

neat vigil
#

Do you think the game is easily moddable without injecting code via Harmony, if I just want to add gameplay mechanics ?
I am just thinking about that

#

I am just a little bit curious

gentle rose
#

it depends what you want to change

tulip steeple
#

is it okay to ask question about other people mods? (im using them but they have somekind of bugs)

#

and i want to edit them myself rather than waiting for a fix update

neat vigil
#

For example, I was thinking of making it so that when you hit an object with a pickaxe there is a chance that a mineral spawns. Or allowing you to marry directly the person you’re talking to if you give him a masterball

gentle rose
gentle rose
neat vigil
#

Yep that’s what I think too

viscid carbon