#making-mods-general
1 messages ยท Page 414 of 1
LOL, thats a good thing
its tecnnically content patcher killing the framerate, but its on behalf of the content packs,which can be set up very inefficiently and thus still to blame
(May I recommend https://www.nexusmods.com/stardewvalley/mods/36938 for fish tanks)

Hello I have seen you
ohh i mean the fish sprites I have to make and that I gotta make them aquarium compatible
to clarify do they want "animal digs up crops like junimos" behavior
plus, I have definitely killed performance with a single c# mod in the past lmao, and DEFINITELY would have with my current wip if I wasn't careful 
Can mtf + eac do what clown wants you think?
ohhh okay gotcha
Mtf to detect nearby crop eac to item query
Fishies :3
||(a few are from a very old mod with the authors permission, which is the turtle and the octopus for instance)||
i thoight fellowclown wanted the crop to be actually harvested, though
If I understood it correctly the idea is I plant parsnip and then animal can randomly dig up parsnip
"like theyll aproach and dig that shit up if its fully grown so the farmer doesnt have to harvest them"
It's wuite hard to narrow down which CP mods are causing the lag too, unless I've missed a profiler pack, I now just go through all the mods I have installed and search for "OnTimeChange" and change it to another update method, if it breaks, it's my own fault
Well hm 2 votes against 1 then i perish 
so yeah it would be some new behavior for animals in EAC
I'll file that under "mayhaps in the future"
Sounds good to me 
am i mistaken or i thought there was a version of Content Patcher with profiler integration built in that shows the time per-content pack?
That's the latest cp
I sure hope this doesn't balloon into behavior state machines for animals
But u need the 2.1 profiler from sinz thread to use it
I may have an older version of the profiler then, I knwo I'm on the latest CP, I never remember to check because theres no update token as it isn't on nexus
Atm in my list the most expensive cp mod is the interface lol
Cursor edits are no joke
discord update token api when
Random reply, but do you think people would be mad if a fish mod came out with no aquarium support until 1.1 release? I have people who want to download my mod, but it'd take me a while to figure out aquariums and make the sprites for them
were you the one who made all of the game nicholas cage
honestly, fish in the aquarium is something I never remember about and when I do I only put legendary ones in a tank so honestly I don't think it's much of an issue
that one is surprisingly performant 
Not sure if any of these r cute but if ur ever interested my mod will come out soon, theyre very balanced...spent like 3 hours balancing them to vanilla game
(just want to mention that, with how despawning work in SDV, this may be annoying if player isn't here to gather crop at end of day)
either way, im honestly not sure how many players actually put fish in tanks. you might want to survey #modded-stardew ? ๐ค
is that a blue ring octopus?
(also nice fish!)
it's up to you if you decide to adopt this attitude or not but if I upload what I consider a working and complete mod and someone complains about a feature not being in it yet, to me that's a them problem lmao
great idea, ty
tyyyy
makes sense
putting it as an object on the ground isn't a guarantee since there might not be space lol
oh wait wrong reply
I think the number one reason to make aquarium sprites work is visible fish lol
(I meant to reply to lumi's message)
It relies on aquarium sprites to visiblefy the fish
but the question is, do you consider lack of aquarium support to make your mod incomplete
personally I don't upload mods until I'm happy with them in their current state even if they were to never get an update again
i mean, if you put it as object on the ground it wouldn't work as a feature since the goal is to harvest?
I've just learned how that mod works, thank you! I'm now wiser
so i'm not sure if it's even solveable at all (outside of animal having an inventory but i believe clown didn't want that)
I mean something like harvest a corn and then put the corn item as a "forage" nearby so it doesn't disappear when the save's reloaded
everything is solvable with enough c#
basically the way pigs harvest truffles is what I'm imagining, is that close selph?
oh i don't doubt the C#, it's more a question of design
but yeah i assume there's several options
yeah, but there might not be space for a "truffle" if it's a nested crop field
Spacecore question: can i mix and match durations for animations, like 0@10, 1..3@5 ?
Sigh ๐
pigs have truffle-moving logic (which I despise the implementation of with a passion, but still may be worth looking at
)
I just finally figured out this channel exists. I have no experience making mods but would like to start. I feel like I need to start keeping notes of exactly what I want to make first.
Do autograbbers grab truffles? if they're placed like truffles then added as a valid pluckable by the grabber that could be a solution
if there's no space in front of them, it gets pushed forward once until there is space
Selph what if in-between sprinklers but forage crop
(which means it's impossible to fence truffles in and I hate it)
no u
anyway i should go! good luck ๐
What's wrong with that idea
that's nothing, I can imagine many bad ways to do it
welp, time to go aquarium those fish... ๐ค you only really need 2 sprites for each fish though. one is the swimming one and the other looks like it's just a copy of the item sprite. so just rotate your fish about 45 degrees
What's your favorite bad way
I propose my old terrible implementation idea for something like this of having an underlying shadow map to use for doing two things on one tile
bump
I was imagining negative vector object netcollection
When you make a mod if you want it to interact with specific other mods, do you need the permission of those mod's makers? For example, a mod where Pierre hates you for supporting Joja, with special dialog if you're dating Morris in the Marry Morris mod.
Yes iirc doc has example
drawing individual crop pixels on the screen at specified coordinates and detecting when one pixel is clicked to create the harvested crop
and storing those pixels in a list
yes
Thanks
Ahh nice to know, thank you!!! Do you know where t his sprite is from? I am trying to copy a perfect example of a good aquarium sprite so I can not cry at night next to my computer speaking in 1's and 0's about it
Also even if you do this how can you make it so it uses the texture of him going up when he goes up? I am very new to this, apologizes in advance ๐
Unless you're modifying or using their files you don't need permission to add compatibility. It's just nice to do
It's a little more nuanced than yes, like if you are making your character react to something in another mod, that is an addition entirely on your end and you don't generally need to ask about it
LooseSprites/AquariumFish
But detecting when a mod is installed and adding more dialogue if it is, is not something someone else can control
tytyy, also these are 24x24 boxes right? Or are we still following 16x16, just triple checking
technically you often don't need. When it comes to the creative part of a mod, mod authors usually appreciate to be involved
I'm thinking of a maybe-not-so-cursed idea for this behavior - animal harvests crops, they all get put into a global inventory, and when the farmer pets it, if that inventory is not empty the animal barfs up everything as debris
(there actually seems to be some debate about this because I agree, but some mod authors say all explicit compat requires permission)
some mod authors care a lot about their writing and such and prefer to be asked so they can grant permission
honestly unless the author is away, you don't lose anything sending a short message
Can i pet the pig so that it barfs up the truffle too
which is legally unenforceable however Nexus does not need to follow the law strictly with their own personal enforcement
Tbh i was under impression why this is people stopped using pigs for truffles irl, they eat them
worse, they say no, but they would have said no if they noticed anyway
most cases, they say "sure, have fun"
some cases they are like "oh let me add more stuff, and i can have this compat, and what about that" and you both have extra fun
my understanding is that pigs are kind of just a nightmare 
Thanks. When I start making headway on this mod I'll reach out to the creators of any mods I want there to be interaction with.
Small diaslogue compat adds so much immersion, I love it so so much
however as far as I know Nexus has only really enforced that further when it comes to modding another mod
But adding your own dialogue ain't that
Yeah i've seen, there was a smaller mod that used earthy recolour's custom trees but added their mod's stuff onto it, only for support since their users asked for support with the mod, but thankfully earthy recolour was fine with it completely
Like I have a mod where the mail carrier is referred to and it changes to Ayeisha if you have her installed, that's not really a thing worth bugging someone about.
i am sometimes a bit overprotective on my stuff (which i try to work on) but it helps to be asked, and usually when asked i'm like "oh sure"
24 x 24, i had to check on the wiki
awesome ty, i was just triple checking to make sure
im thinking of making a fish that appears only in the fall time..like maybe 2-3 fall fish that maybe are a little pumpkin-like and some silly-spooky ones
but i must work on aquarium before I get carried away ๐
no everyone is gone 

I'm here lol
Oohh, sounds very nice! I'm not much a fan of pumpkins ๐ (especially soup- makes one feel so full too quickly)
@brittle ledge: do that (1h ago)
How DARE you miss. This is so disgraceful.
I'm kidding, yeah I don't like eating pumpkins in real life, nor the smell at the shops they sell..but I love how they look โค๏ธ
YEAHHH, CARVING'S SO MUCH FUN
(and so messy too ๐ญ๐)
Oh, and happy one day arrival!
whats that?
I just had a look on your profile
You joined this server yesterday, right?
That's why I congratulated ya! :D
it's silly I know :3
But I'm silly too. And ADHD-plagued.
OHH
I did!
tyy ๐ญ
Aren't we allll
Is there a limit on the duration of an animation frame?
im getting a neverending sea of errors while i was so sure it was fine
So, how ambitious is this for a first mod? Should I dial back the scale? What skills are required to accomplish all this?
(the answer to why the aquarium sprites are Like That is ๐คท I'm of the opinion that CA set himself aside the bottom row so he could put the item-fish in there as references so he'd remember what animation sprites went with what)
it's probably all doable in regular content patcher with dialogue/event/map patches, though you do need a lot of em
i dont believe "no longer can gain hearts" can be done with CP alone
I'm not sure if there's going to be any implications with making Pierre antisocial
if there is you'll probably have to forgo that part and/or learn C#
I feel like there's a compatibility weak spot in making all his shop inventory unavailable and adding it to someone else
if anyone adds to his inventory, that could go weird
๐ค i feel like whether it's overly ambitious or not is dependent on how much you think you can actually handle. like selph said there's a lot of things you have to patch
yeah you cant just copy one shop stock to another
I guess you can fake it by removing the Owners entry and add the Pierre shop as a tile in Joja
My general question is, if you have a custom frame (lets say in that 24x48 spot you got for yourself, you have two images/sprites, how can you pick which you wanna use for what?)
you can have a OpenShop SeedShop in jojamart
and bonk all the owner stuff
yea what selph said (did not read)
alternatively retexture pierres store to a new joja and hes forced to work for them and thats why he really hates you and doesnt wanna talk to you
wouldnt be able to use pierre's missing stock list
That sounds extra hard. But I do like that idea.
if he wont talk to you
What's that?
and itd be weird to turn in his missing stock list to joja
would add an extra layer of shame to pierre /j
that thing sucks anyway
You need to expand them horizontally, like vanilla
its my first purchase when i get the chance
(again, you don't need to fill in the bottom 24x24)
then if you want these to play in order, your sprite index would go 0 1 2 3 4
well the stock list is just controlled by a mail flag so we can fake that too, mayhaps with an on purchase action
that's where the 0 1 2 2 1 0 reference is referring to
After you get access to some stuff on Ginger Island, you can obtain his stock list and buy his seasonal stock year round
ok! so currently my mod is c# (optional gmcm functionality if installed only)
directly in my code i have a list for possible drop options
how can I make content patcher compatibility so (if that is even needed?)
so that I can put this long table in a seperate json and make it so that users can easily add or change the drop table/pool of items?
these are the current options for my items:
```new GiftDef {
Key = "common_mushroom",
ItemId = "(O)404",
MinStack = 1,
MaxStack = 1,
BaseWeight = 0.02,
ScaleWithCategory = true
},```
ScalewithCategory is just the configurable modifier for drop chances
or just direct me to a mod if you know of any that has this setup (c# + cp)?
mine's always the Horse Flute
okay, so when you do, where do you put in like "when he is moving do 0 1 2 3 4" etc? you have it on wiki but im a noob 
Would it be frowned upon to change the colour of the ConcernedApe logo and tag line to greyscale? nothing else will be changed, just the colour
"tiakall.bass.DuskyGrouper": "1 2 3 4/fish/////Mods\tiakall.seabass\AquariumFish",?
How is it done yk
In SVE all seeds become available in Joja all year round after you complete that route.
pierre has a stock list???
i realized only yesterday that u can tap on his face and he makes a sound
Gotta get it from Qi
people change the whole CA image to something else, its totally fine
i mean there's a mod that replaces mr ape with gojo :)
Adding a new fish to the game has never been easier than in 1.6; nowadays, fish are a simple set of patches via Content Patcher. There are four required steps: you need to load sprite images, define the fish (as an item, and as a fish) and add it to locations. Optionally, you can add aquarium sprites and data, and fish pond data. I'll be using ...
QUACK
modding is freedom etc
I don't see why the stock list couldn't be changed to Joja
gojo like the jjk guy????
Oh okay, that makes me feel a little less like I'm defacing a valuable item
I don't have custom animations in my example, but they'd go inbetween the two / after fish
so "tiakall.bass.DuskyGrouper": "1 2 3 4/fish/0 1 2 2 1 0////Mods\tiakall.seabass\AquariumFish"
"The third field, which is blank here, defines custom animations when idle. This will default to your single sprite. If you want to have a custom animation, list out your indexes here (starting with the index your first frame is on, eg. 0 1 2 2 2 1 0)"
I understand, but again, I don't fully understand, can you just give a basic example like:
"tiakall.bass.DuskyGrouper": "1/fish/1/2/3/4/Mods\tiakall.seabass\AquariumFish",
Or however else it's done? im just trying to find like a one line example of implementation, sorry if i explained it poorly
ahhh i see that makes sense lol
so many here showing their cheeto card smh my head
Look, I will DEFINITELY play more Stardew after I finish these last three events so I know what CTs I want to write for my guy and stuff
I will absolutely actually play the game

Actually, now that I'm looking at the vanilla examples, all of them have a single sprite in the third field
LOL I understand fully
Hello all. Does anyone know if Rings qualify as WearableData in SpaceCore? I am working on a mod that allows crafting cosmetology products. I am in the final phase of my mod where these products can be crafted into bigger sets and collections. My initial thought was to make them equippable as rings with some buffs, but I am running into difficulty. Does the Vanilla Buffs allow it since they are (O), or do they have to be consumable foods in that case?
so your animation may actually need to be 4-6
doubt, MASSIVE doubt
i will play stardew again for real after i finish my NPC and if 1.7 happens to come out first and make me redo a lot of my NPC stuff then so be it 
Let's say the first one is index 0, up to 4, and its called a SillyJelly, how would that be implemented?
to make it simple
This is one of the most important parts of the mod. So you think it needs to be done in C#?
pretty sure rings were the primary reason this was added in spacecore i thought
for example, here's squid in vanilla"151": "60/cephalopod/60/60 61/62 62 63 63/63 64",
Speaking of: If I have the farmer doAction on a bench... they should sit on the bench, right?
in an event
(this would be indexes 0-3 for four sprites, by the way - sprite index starts at zero)
how many % are you at 
Thanks. Someone told me that part sounded easy.
ive not been keeping track. i have a couple hundred lines of dialogue, at least
forgot yeah it starts at 0, and for this, i'll try to play around with this logic
but i want to remake their location completely, and ive not done their house interior
that sounds like 2 whole npc then going by vanilla counts
i plan on having a fuckton more than that
10 whole npcs 
metric or imperial fuckton, your choice
I know you can have a character do like a Sit Frame and stick them on the bench. But for the farmer... I should just be able to doAction a bench to sit, hypothetically
more dialogue, that is. one npc!
so using my fish as an example with your spritesheet: "tiakall.bass.SeaBass": "0/fish/0/0/1 2 3 3 2 1/0/Mods\\tiakall.seabass\\AquariumFish",
some npcs are more npc per npc trust
i may need to search for someone to commission for sprites/portraits again too which would take time bc money
0 is the idle frame, and then the animation will start at 0 (the fourth slot here), move up through frame 3 then back down, and end on zero (the last one)
So if I make Pierre non-social, would that mean you can't talk to him at all? He would still walk around, right?
if nobody else knows if that works or not, I guess I'll just code it and see
I wasn't sure, since the Spacecore readme doesn't really specify. I haven't seen any mods use Spacecore for rings without a custom dll attached, so I wasn't sure.
(Don't you also have to null gift tastes because the game also uses that for social status because pre-1.6? Or is that no longer a thing?)
Oh my goodness I got it working for one of my fish!
"Entries": {
"ASC_Example": "0/fish/0/0/1 2 3 3 2 1/0/Mods\{{ModID}}\AquariumSprite"
}
It worked ๐ญ
u are a legend
ima experiment and play around with adding more fishies
Thank you everyone who has been offering help. I have been talking screenshots. The next step I guess is to figure out how to use Content Patcher
He would still talk to you, you just wouldn't be able to raise his hearts (think like Birdie on GI, or Mr. Qi)
Thanks. I'm glad to hear this because I'd prefer him saying things to just ignoring you all the time.
birdie not being friendable is the worst part of GI, I wanna be friends with her and hear her stories
there was a make birdie real mod
I believe I also understand why it skipped a "column", since that was used mainly just for 1 reference to the actual fish that is under it (maybe cause CA wanted to remember what each was for during making it). And that these are 24x24's, and of course start from 0 index, tysm for helping me out Jorts and Jean
(there's a mod for that
)
I love modders so much, they truly make the world go around
oh is there a different one that is current?
there is, it seems to be by Tia themselves
updated beginning of august! https://www.nexusmods.com/stardewvalley/mods/9242
what the heck amazing
OH?
? I haven't done any Ginger Island mods. That one's by zoedoll.
nevermind i stand corrected, I found another one by someone who name is very close to yours so I miss read it, whoops
nope can't use doaction to sit on a bench. Guess we're animating the dang thing
Is there any other commands I can use to figure out why on earth these patches aren't being loaded? https://smapi.io/json/none/3e62c808b1ac472589e50b84dcb2acf2 is the patch summary
oh wait no I think I know why
Im getting a Spacecore error: This mod failed in the GameLoop.UpdateTicking event
The only animations that dont work at all (stay static) are those with combined durations (different for each frame or a group)
!log
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:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- 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.
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 21 C# mods and 8 content packs.
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.
that doesn't check for animations via spacecore though does it?
idk
so perhaps i really cant mix those two ways
oh i remembered you have to put the target ({{InternalAssetKey: assets/Rarecrow2.png}}) again every time
Does anyone have the vinilla guide for a ui recolour? I'm hoping it will tell me where on earth the save select background it, I've check 2 different recolours and cannot fint it at all

where should i put it?
{{InternalAssetKey: assets/Rarecrow2.png}}:0@50, {{InternalAssetKey: assets/Rarecrow2.png}}:1..3@20, {{InternalAssetKey: assets/Rarecrow2.png}}:4@70, {{InternalAssetKey: assets/Rarecrow2.png}}:5..7@20
iirc it's like this
u can also do a Load so that it's less of a pain
idk how
pretty sure its the funny square a bit above the clock
just an {"Action": "Load"} i mean
this will be fine, ty
you have done this for other mods 
uhh
it makes it so much harder to find textures when they're compressed like that, useful for compresson though
(why are the Ui textures literally everywhere
)
theres so much shit even when you do UI retextures you cannot remember it all(or thats just me lol)
its not actually about compression
a number of textures are like this so that u can draw a box at various sizes
ok yeah thats the sprite you want, atlas, i jsut tested ingame
what a funny coincidence we both are doing a UI retex
I guess ye that is a good point, Atleast then they're recolour supported too
UI retex gang woop!
Thank you both for your help
man....can 1.7 pls dehardcode or w/e fonts....
fonts are dehardcoded
man the font shadows are my least fav thing

i mean like in freely choosing color and shadow color?
maybe dehardcoded is the wrong word idk
I mean this atrocious moment
Looks spoooookkyyy 
you can change the colour by editing the font files, but it's just the shadows you can't change with CP alone
yea you need theme manager here
at least the orange-y shadow when you hover looks nice on this color xD
also why on earth are some textures MASSIVE! they are not pixel based at all, they're like quad pixel based
@brittle ledge :3
again, tysm for helping me
in the process of making the sprites rn
feesh
fEEshh
hm. maybe i become orange today
how would i refer to "this" if i want to use my prefix method w a transpiler? the method has an __instance field but it receives a null there when called via transpiler (works fine when patched as a prefix). i tried putting in a ldalg_0 opcode but it wont compile either so im kind of stuck on what to try next
Ldarg_0 should be this yes
post what you have
(depends whether or not the class is static)
they did say the prefix works so Iโm assuming itโs not
I have achieved player ass in chair
__instance would still work if its static
your emoji is making me question wheter or not im misremembering that
and whether or not harmony would ignore it or yell at you
or fix it itself
Is the white background of the intro hardcoded? or have I missed where it is?
-# sorry for flashbang
Though I had a funny moment where instead of having the farmer offset to be on the bench, I offset the guy who was already on the bench, so the farmer sat on the ground and then my NPC floated upward
Come on, have a seat levitates away
and when i dont include any ldarg_0 i log the arguments given to my method and it recieves a null and throws an exception later on because of it (its static, both the transpiler and the prefix)
this is a transpiler you said? and you want to call your own (static) method
Iโll look at ilspy in a moment, but your matching block is only 10 instructions long and youโre jumping 11 instructions below
meaning thereโs an unaccounted for instruction you jumped over before the removal+insertion
is that intended
yes, i didnt know how to translate a few of these lines into harmony specific stuff, its missing this line
call !!0/*string*/[] [System.Runtime]System.Array::Empty<string>()
yeah, marriageDuties is huge and ive prefixed addMarriageDialogue, so everything that calls addmarriagedialogue works fine and this seems to be alright when it executes? the only reason im transpiling is that marriageduties calls some marriage dialogue without this function and i didnt want to rewrite the whole thing
It does work with Rings. They have to have the object syntax, but it works well! Thank you, now I can get back to work 
what if you postfix the ctor of MarriageDialogueReference
Yeah, that's probably Game1.staminaRect (i.e. a white pixel) being drawn directly onto the screen somewhere in TitleMenu.draw
that's the worst flashbang bit too, I certainly shall not be tackling that C#, any one know of a mod that removes the hardcoding of that by chance?
just Skip Intro, personally 
Oh that image is from game startup, like the very first thing you see when the game loads
you cannot skip it, at all
tbc I mean the mod that just skips straight to the main menu
i might be stupid but how would i write the method for that? its postfixing this section right?
looking at the code I think what you're doing is yeeting the Newobj and Callvirt .Value part calls (aka removing .Value = new MarriageDialogueReference( part), and pouring all the parameters that would have gone into the constructor of MarriageDialogueReference + the dangling this.marriageDefaultDialogue into your own function
I haven't heard of any actual frameworks offering to let you customize the intro scene
yea sec i got a example
Oh I had no idea that existed, I seem to be adding more mods than removing them
but yeah just patch the ctor it's easier
harmony.Patch(
original: AccessTools.DeclaredConstructor(typeof(DialogueBox), [typeof(string)]),
finalizer: finalizer
);
yeah, since the arguments for addmarriagedialogue and the marriagedialoguereference bit are the same i decided just to reuse whats already been put onto the stack
i think a ctor prefix is cursed but postfix and finalizer both fine
does mean you'd have to just let game does bunch of work and then toss it 
otoh it's more compatible for other C# mods that just go new MarriageDialogueReference so i think it's better overall
you'd need to account for the dangling this.marriageDefaultDialogue + if you're putting in ldarg_0 afterwards it would be the final parameter not the first
oh i see, that makes sense. so if i remove that line below the ldarg_0 it could compile?
then you'd have your dangling ldarg_0 above 
which, well, perfect for your use case
but yeah again go the ctor route
yeah i was wondering about postfixes too since it would be miles easier lol, would i just declare a new class similar to the way it is done ingame and then patch it this way?
no, you're patching an existing class
yea u just put a normal postfix
the finalizer in my case looks like this
private static void DialogueBox_strings_ctor_Finalizer(DialogueBox __instance)
u should be able to use the ___ for private fields at this point i think
so if u wanted to get MarriageDialogueReference._substitutions, ref NetStringList ____substitutions should do it
thats 3 underscores in front
6480 why does it look so tasty
i gotta remember to endorse inspect tortilla in 15 minutes
this is the only mod that matters
you didnt see the other one
ok! ill read up on some more postfix stuff on the harmony docs and ill get started on that then, ty to you and selve i really appreciate the help !!
no i saw the other one i just have no object mod permanence
i blink and i forget what mods exist
six thousand four hundred and eighty pls, my sanity
Not the full government name ๐ญ
i drew it last night as soon as DH mentioned updating meep ๐ญ
Pls make an "Inspect Everything" mod with Cornucopia support. /j
They deserve it too - Portraits for items
new skill Appraisal (just like my trash isekai anime)
Speaking of inspecting. Is there any framework that allow you to inspect placed wall furniture items?
You can do it now with meep
because you can use the inspect image thingie with any trigger action
put a trigger action on the furniture with spacecore
meep can do that but maybe in conjunction with a furniture tile actions framework
i'm fairly sure you need the furniture to use the Painting type for tile actions to work, unless the framework expands on that
wouldnt scone work too 
Reincarnated into Stardew Valley with "Lookup Anything" Still Installed, I Was Supposed to Farm in Peace, So Why Do They All Keep Asking Me for Advice?
scone...?
iirc furniture.doestilehaveproperty goes before furniture.checkaction so u should win
the food or a framework?
sconce sorry (but why not scone too)
publish it
Yar, I tried that but it doesn't seem to work with paintings. (which I assume because the painting is technically located one tile above the wall?)
i see
Cursed scope creep...my shop mod may have just grown...
more scope creep. MORE
i think you can do it with calcifer or mmap 
calcifer bc that targets checkaction
if this inexplicably works right the first time and doesn't need adjustment, I will be only two events away from feature completeness
mmap bc u can specify the tile property radius
u can also just make it actually 3 tiles tall, and then sc will do it fine
for calcifer if you just do it it'll work
Hmm, was thinking of making Say Cheese portraits inspectable. It seems that I'd need three frameworks to do it. ๐
does dark room portrait shop count tho
i think u should just make them secretly 3 tiles tall it's finnnne
then its just spacecore (which darkroom needs for other stuff) and meep
Oh actually the third framework would be your Sprite Compositor to give the portraits frames.
Pathos pls
the power enabled would be immense
but u know aba actually already did it with pigs
I think it would even supercede Button's ATA since you can patch non-Maps assets into a new Map/ one right
kinda cursed though
i mean button has a smapi PR up for that scenario
it will soon be a thing of the past
oh nice, missed that part
i should add support for asset name prefixes tho 
but idk the more i rotate this in my head the more i think it should just be content patcher
ill rotate it a few more spin cycles and then ask pathos 
it is good that i at least defeated the graph theory in general
another reason why i am kind of eh about this whole thing is that while this is cool and very generic
there are a number of frameworks that just let you draw stuff in layers, and i own one of them 
this is aba's pig painting which loads a frame {{ModID}}_PhotoBackground + {{ModID}}_PhotoFrame and compose it with Animals\\Pig (which is actually just used as the furniture asset)
end result looks like this
unlike sprite compositor this is already a released framework feature in mmap 
My week has been made
Oo I'll try this out then, thanks!
I just wanted to share a quick update to my first mod, which is now also my first npc ๐
https://www.nexusmods.com/stardewvalley/mods/37103
So let's say I have three options in a QuickQuestion. I have responses for two of them, but for the third, I just want it to move on to the next part. How do I do that?
I thought I'd just do a break and leave it blank, but that's thrown a SMAPI error
it worked but it's a Scary Red Error I don't want to bother a user if they notice
Unfortunately, due to recent attempts at Recentering the Tortillas to various degrees of success, they've now gotten... confused, to say the least.
https://www.nexusmods.com/stardewvalley/mods/37275
maybe I can just like put an Emote there
Could you do something like Say Nothing
maybe a pause 1
The emote works out. Pause 1 is a good idea though
i attempted some perf(?) by doing this for PerScreen to avoid a dict lookup when screen didn't change, did not accomplish much 
internal class PerScreenCache<T>(PerScreen<T> perScreen)
{
private int currScreen = Context.ScreenId;
private T currValue = perScreen.Value;
internal T Value
{
get
{
if (currScreen != Context.ScreenId)
{
currScreen = Context.ScreenId;
currValue = perScreen.Value;
}
return currValue;
}
set
{
currScreen = Context.ScreenId;
currValue = value;
perScreen.Value = value;
}
}
}
My programmer boyfriend thinks my "Pierre hates you" mod sounds way too ambitious for a very first mod and I should start with something a lot simpler for practice. The problem is thinking of what... Some cool little Joja perk probably.
practice mods don't need to be cool or meaningful at all
really the first thing that comes into your head is fine. mega tortilla recipe, extra long ostriches, half price sundays at joja mart, the world is your ostrich
Thanks. I know. How hard is it to add a recipe to the game?
With pre-existing food items?
But one of them is classified as 'trash'
oh, very simple, so long as you're doing things the base game does.
https://stardewvalleywiki.com/Modding:Recipe_data
if your 'trash' ingredient isn't the single actual Trash item though you'll need a little extra to get it working for generic vaguely-trash items
as it always is, as it always has been, as it always will be ๐
Aww, poor thing
we gave it an identity crisis
heres a free joja sundae โ ๏ธ
Fwiw i actually don't think it's very hard
The problem is compatibility which I recommend you to Not Care About at the beginning
The bulk of the mod is really just 2 things, make pierre not able to socialize + not count for perfection, and override all of his dialogue so that he's >:( about you
all the same i think it's good to make a practice mod or two before you make the one you've got an actual vision for, so you're that much more comfortable with the format and you've gotten some of the silly mistakes out of the way first
For a mod like that, its mainly just taking it on in bite sized chunks, one dialogue or event at a time.
Getting it done 100% will take time, but only way to get it done is to at least make some progress on it
Most content mods aren't that complex, they just have quantity
okay, now I am thinking about a possible use case of inspecting books and randomly having an autograph on the cover
Souvenirs from Elliott's book tour or autographed posters/CDs from Sam's band show maybe.
Tortillapocalypse...
If i didnt have work today id consider making a mod that replaces every basegame cooking recipes with tortillas
tortilla shuffle the sequel to json shuffle, random items turn into toritllas every time you wake up
"Wrap Recipes -- Change every recipe to a wrap"
Autumn's bounty flavored tortilla... lucky lunch flavored tortilla... pink cake flavored tortilla
Exactly
The tortilla sandwich, now with three times as much tortilla.
rolled up tortillas on a stalk like cattails...
lord is it so much easier to draw dark hair than light
unrelatedly, what is the absolute bare minimum for a non-social NPC?
Don't mind me while I put that on my to-do list along with "Recentered-ier Tortilla" where the tortilla gets shifted left a few pixels every time you sleep or load into a save /silly
I think you need to put sleeping on your to-do list
Data/Characters entry with DisplayName and a loaded Characters/ID entry with at least one sprite should do it
you should also include either a basic schedule or a Home entry in their data
oh that's way less than i thought, awesome
https://smapi.io/json/content-patcher/f85dc8a44eea4576b7fb7948553b2b3b this was my example for a talking NPC that isn't just a map tile
you'll want more dialogue than is in my example.
funny that DisplayName is the only required field for character data. you can omit absolutely anything else.
Like Lemurkat said, probably dialogues for each day of the week
yeah i'm trying to figure out how involved i want her to be... she's an NPC's mom, but really i only need her for one or two heart events
unless i want to flesh her out more but my to do list is one billion lines long
Is she going to move around at all?
still deciding tbh!
If not, you could probably get away with an animated map tile in the event with a generic dialogue box
hmmm perhaps...
i hate drawing sprites but i'm also inclined to perfectionism, so it didn't even occur to me that she wouldn't need a walk cycle
she can still have some schedule anim
very true
shhh stop scope creeping. we go for the bare minimum
You can do the Mr. Qi method and not have a full walk cycle that way
Characters/Mariner is your goal
inclined to perfectionism
debug perfection now shoo
The whole reason Mr. Qi flickers when he walks sideways is that he doesn't actually have a walk animation from the sides xD
someone show the scope creep stickbug
i already scope creeped myself into making a config option for different appeareances of one NPC, because i hate myself
I'm still not strong enough... ๐ One day...
Everyone is Jinu
new alt mode: the jinu club
what the hell is shane doing in here...
i'm debugging the joja route because i've never bothered and ??
Wait who is that guy on the left?
Yeah, I'll have to see what it's actually like to work with Content Patcher to see how overwhelming or not this is. Part of me feels like it won't be that hard really but I still think making a tiny practice mod first is a good idea.
I started with a mod that changed a single part of an event
I agree and am glad this was pointed out to me
my NPC, edwin
which felt like a whole Thing at the time, but now I could do it easily if I needed
Aah okay. 
Yeah, I hope it's not that hard when I figure out what I'm doing.
shane is squatting on top of the other NPC ๐
(and I recently learned how to do it better too!)
You can try just making Pierre not able to socialize first. That should be very simple and just need one patch.
is he drinking in there
what on earth
Yeah, I was thinking of doing this. Making multiple mods one at a time that are meant to go together, each one requiring the last one. This might make it easier to feel like I'm making progress.
I think that's a sprite from one of his heart events where he's drinking beer at the pond
Aah wait now that Shane doesn't cover Charles I just realized they're the Dead Boy Detectives. ๐
lol unrecognizable without each other
can the detectives solve the case of Shane phasing through reality
shane is the real dead boy here
Is Shane the NPC actually there? Or is it just a weird tile?
Im working on a seasonal outfits version of nyapus portraits (with their permission, theyre very nice) and im already mentally scope creeping into wanting to make festival outfits for the rsv fests for vanilla and sve characters
oh i'm so stupid, it's my other NPC in progress ๐คฆ i used shane as a template and charles' schedule as a placeholder to test his sprites. problem solved, everyone
this is why you test things in stages, folks
i was SURE it was related to the joja route lol
Mystery Solved
oh man good luck
Its just a scooby doo villain reveal with the mask being shanes face
Ooh, are you using SCA as base, or doing your own take on them?
Thank you!! Its my first mod but im having fun learning from all the info from people before me. I have a whole spreadsheet that tbh isnt all inclusive probably but already huge
My own takes!! Though i do love those outfits. And esp the sve ones
i have published my first real sdv mod (not an at pack) 
(is there a debug command for getting the movie theatre in the joja route?)
congrats!
AT packs are still real mods they require knowledge and effort. But congrats on the first non-AT mod!!
(Saying this while also considering some of my mods not "real" mods.... impostor syndrome when i catch you)
Oooo awesome! ๐ I'm invested in everything Nyapu so please don't hesitate to contact me if you need any help at all on the non-art parts.
I think its just spending too much time with ||sims|| that i think in rigid categories of custom content and mods - but you are right!
the unwieldy spreadsheet in question. i love spreadsheets so much (im a bookkeeping student/jobseeker)
holy wow
I LOVE SPREADSHEETS!!!!!!!
Dry and Wet outfits! ๐
I strongly encourage upgrading to a kanban board. Manage your swim lanes and youโll have better visualization
Then you can adjust things into phases to make it easier to maintain
yeah!! i didnt want to filter rain/snow outfits based on whether it was indoor or outdoors to be more compatible with custom areas, so im using a style dynamic token to sort it by weather types (sunny and windy = dry, wet = everything else)
ill look into it! thank you for the recommendation :D
Trello or Monday have pretty good free options
every time people talk about kanban boards, I am less sure what they actually are
swim lanes??
What's a kanban board im so intrigued
its an idea organizing system, ive heard my mom talk about it before (shes real into the online planner/bullet journaling community)
Organizational structures ๐
If it's a Trello, I know what a Trello is, I got one of those, I just don't know where I'm swimming
To summarize. Each column is a status. A swim lane is a horizontal phase. So in this case they would have dry, wet, etc as different swimlanes
At the risk of sounding dumb: I tried looking into Kanban Boards and like... I maybe know half of these words...
Itโs an overall category or project phase. So if you were looking at it as a project, each swim lane would be a unique user story
can u remove this im triggered /lh
you don't need to know those words. you don't want to know those words.
this is like trying to read the necronomicon
thank you!!! once i start trying to do the json stuff for modded characters ill probably need help. until then, endless amounts of art (i have noticed ive been getting better at pixel art though!! this was actually my first time really trying it so the progress is making me happy :D)
As a project manager, I could very easily give you an overview of everything listed thereโฆ ๐
all the explanations include terms I do not know too LOL
i want to crawl back into my excel cave, you can handle the people-ing /silly
Actually as someone who gets offended when google sheets auto-recommends a drop down category when i wanna type things normally maybe i dont need to look into more efficient data structures. I enjoy the clunk
There is an amount of manual work that is comforting and feels like you've got some control over it
i do like my moms physical kanban board bc peeling sticky notes off when youre done with a task is so satisfiying
ohhh that's nice. I like slamming finished cards into Done, but actual stickers is nice
same with erasing stuff off my little whiteboard (that i havent updated since summer semester whoops)
sorry for the spam but quick question: ive been using procreate to work on the portraits and sprites, but ive heard about aesprite, should i be using that instead?
no need, just use what you want
you can use whatever is most comfortable for you, you don't have to use any particular software. many people do recommend aseprite though
i use photoshop because i'm familiar with it
as long as u can get a png out u good
nod nod, thank you!
my ipad is old and janky so ill look to see if there are any features or anything that look like ill like aesprite better for this project
when exactly does IS_JOJA_MART_COMPLETE get set? i'd like an event to trigger on the farm the morning after, but not sure if i can use that GSQ as an event precondition
So I've decided that my first mod will just make Pierre antisocial and not count for perfection if you're a Joja member. My true ambition will come in add ons or something. I'd like to get started tonight. I just need Content Patcher for this, right? Where do I get that?
jojaVault, jojaPantry, jojaBoilerRoom, jojaCraftsRoom, jojaFishTank are the mail flags it checks, as well as the cc variants of those flags
it also checks for the JojaMember mail flag, and if it finds that one, it doesnt matter if the player has none of the other flags
so presumably as soon as you complete those respective rooms or the entire thing
by it checks the cc variants of those flags, do you mean it checks that those are false?
(actually i slightly misread, it doesnt check the cc variants, it checks if you have those to return that you havent done joja)
oh gotcha
it also only checks the host ofc
oh good reminder that i should broadcast the event
and yeah once you buy the joja packages they get added to mail for tomorrow
you get both the joja and the cc variants
okay perfect, so it should trigger the next morning
the GSQ checks "have you got the joja flag? if you dont have the flag, do you not have the CC flag?" bc it checks them all in a row
so finding one cc flag when you dont have the corresponding joja flag means it can stop checking earlier. is why i misread it earlier, i missed the negation
it will trigger the next morning assuming whatever check you're doing doesnt check all mailboxes but specifically checks received mail
the check i'm doing is event precondition GameStateQuery IS_JOJA_MART_COMPLETE
then yeah you can use that GSQ
okay perfect, thank you
ah, the only good part of updating mods. updating the mod page flavour art
now to work out how to make gold hair look good
i think it looks like scabby lemon peel ๐ we need to find a middle ground
thank you for that mental image
maybe you could make it look less lemon peely by toning down the orange/lightening it up a lil? it might also mesh better with the lower saturation on the other characters hair shadings
first the crab cakes and now the scabby lemon peel, you're so harsh blueberry
if it doesn't work out usagi can just be akane with buns
I'm making my first mod right now! But I'm stuck. Where is a list of game assets so I know what I'm changing? Is it "Characters/Pierre"?
!unpack @turbid oak - have you used StardewXNBHack yet? it'll unpack the game content into folders based on the asset names
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!
Thanks. The guide I'm following doesn't mention this or I missed it.
could you link the guide here?
it's mentioned just here on that page 
https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide.md#what-is-an-asset
Thanks. It's kind of overwhelming for me and sometimes I have trouble taking in that kind of information.
@drowsy pewter your dream will soon come true
I swear I put it in the right folder
YASSSS
MAKE ME STRONGER
it must be in the same place as the SDV executable
Thanks
(I only picked the three most delicious sashimi fish for you ๐ )
mmm snailshimi
(taking a peek at mmg was the wrong decision, now iโm craving for sashimi
)
I can't find the executable
ok so someone convince me i shouldnt make a marrigable tortilla
That's a great idea!

Thanks
Dialogue
Marrying a tortilla implies a tortilla honeymoon and that means unspeakable tortilla crimes
Love goes beyond words
now all that's left is investigate why better crafting doesn't like stacking my snail sashimi in hand, but it's such a minor thing and I'm too lazy now
would tortilla baby just be the corn sprite
i choose to believe it's just a baby swaddled in a tortilla
like the tortilla blankets people wrap their cats in
instead of a tuft of hair its a tuft of corn hair. whatever that shit is
like the corn doll from little house in the big woods
I got it to work!
same stuff as the banana strings /j
Today I learned the corn strings are how they pollinate 
you guys know in toy story 3 when mr potato head puts his parts in a tortilla instead? NPC idea
(i have no idea)
huh
(i have never watched a single toy story)
flashbacks to friend inside me mod
am i being unbearably young right now
anyway here he is. he did it for espionage reasons iirc
hes gotta tortilla to slip under the door
and then all the birds start eating him ๐
as a child Iโve always wondered which of his body part contains his sapience
the nose /silly

So I got my content unpacked but it doesn't seem to contain what I'm looking for about conditions and what not.
what are you looking for again /gen
I need to know how to word it so Pierre (Characters/Pierre?) Becomes an antisocial NPC if the player has a Joja membership. That's all this first mod will do.
you can use a When condition to target Data/Characters, target field to drill down to pierre's antisocial field and set it to nonsocial
Data/Characters is a dictionary where each key is the entry for an NPC
Where do I find it?
that's exactly the path once you've unpacked the data
Thanks
Data>Characters.json
when you target something from the game, the structure matches the file folder structure (someone correct me if i'm wrong and there are exceptions)
but it's important to note you're not actually doing anything to that file
just to the asset loaded from that file
So I found him. I see "CanSocialize" is "null". I assume I also want to change "CanReceiveGifts" and "PerfectionScore" to false right?
I'm dying at all thr tortilla mods can someone please make one that turns all npcs into tortillas lmao
i believe CanSocialize automatically affects other things like that but i would have to check the wiki for that
ah yes. stardough valley.
Why is it set to "null" in the file?
ยฏ_(ใ)_/ยฏ
a lot of things in the unpacked contents are set to null
that might be something that's hardcoded, or it might mean something else. someone smarter than me might know
it might be set to null because the default is true?
you'll see that a lot with default stuff
it's null instead of false by default because it isn't a true/false boolean value; it's actually a Game State Query used as a condition for the character to be socialisable
as for why it's null, any values omitted from the original data will be included in the unpacked files by default, set to their default values
worth noting that a GSQ will parse null as true (as in, no conditions are required, so it's a pass), so characters will default to be social unless a condition is set (false counts as a valid condition that will never be true)
i never knew that about null that's interesting
(also in case anyone is unaware, you can actually change the unpacker to not write fields if theyre default, if all the nulls and stuff bother you)
(it's not explained in the unpack guide, but it's detailed in the stardewxnbhack readme:)
https://github.com/Pathoschild/StardewXnbHack?tab=readme-ov-file#can-i-simplify-the-data-files
now if only i could automatically omit all the translation files
it's just a PR away โจ
say now that my 2024 halloween mod is updated, wonder if we're getting a 2025 sdv server event for october/december
if it's not tortilla themed i'm out /j
Now I also want a mod where if you give Pierre a tortilla (a hated gift) he'll go on a rant about how much he hates tortillas. Maybe I'll make that if this first mod is a success.
Thanks. It's still okay to change to false, right?
I think i have to give up on my "write this entire mod from my phone" dreams. I feel severely nerfed without my unpacked data at arms length to reference
"CanSocialize": false will mean they can never socialise, you either want true or some valid game-state-query value per the wiki link earlier
null will also allow socialising since in game-state-query parsing it's considered true
someone clue me in on whether Morris is an actual NPC in sdv1.6
while i know CP will convert "true" to true as necessary, i dont think thatd work the other way around? id love to know if im wrong tho bc if so i can update one of my mods without worrying about being a breaking changeโ
More NPC than Gunther, less than Gus
isn't this the desired outcome though?
I know a little about coding (though not enough to use C# to make a mod) and what the guide is showing me how to do resembles coding. I figured I'd be doing something along the lines of "if (player_has_Joja_membership)
Then characters/Pierre/CanSocialize = false"
i lost track hahah
Well gus is a real man
If you want them to have actual dialogue rather than using a map tile to fake dialogue, I believe CanSocialize needs to be true? I could be wrong.
non-social npcs can have dialogue, they just can't be friended/gifted
chaosapple wants to set pierre as nonsocial after you go the joja route, i believe
My krobus-clone example refused to register any dialogue options until I set CanSocialize to True, but it's possible there was another factor in play.
i suggested a patch to Data/Characters When HasFlag
What does HasFlag mean?
it's a condition that checks if there's a mail flag set. there's a non-exhaustive list on the wiki
mail flags are commonly used to check things like if is
It says "mail flag" but it does not necessarily send you actual mail
I'm very confused
The flags hook into the system that tells the game you have received mail, more or less?
thus they are mail flags even if you don't send a letter to make one happen
this also confused me
You can just use them to set any flag you want really
they just mark certain conditions
Yeah they're just how the game does flags, the term Mail Flags just confused me hard until I realized there was no mail involved
like if u reach perfection you get one
Thanks this is very helpful
i may have gone insane
My favorite part of the Stardew Valley discord server is when everyone said "It's tortilla time" and tortilla-ed all over everyone. โ
https://www.nexusmods.com/stardewvalley/mods/37285
lmao
Lol
want me to showcase? can add flavor text if u like
we need a tortilla emoji
So this is currently what my content file looks like. I have no idea if what I've got so far is right and am confused what will go in the blank space:
{
"Format": "2.8.0",
"Changes": [
"Action": "EditData",
"Target": "Characters/Pierre"
"When": {
"HasFlag": "jojaMember"
}
]
}
Need a comma after pierre" and after "jojamember". The space is irrelevant, computer doesnt even know paragraph breaks exist
You now need an entries field i think
don't need the joja one unless they're adding a field under
you're targeting Characters/Pierre, which is a spritesheet asset, so you'd be using EditImage and patching it with an image in your mods folder
they're are trying to make Pierre anti social
Thanks, I knew that seemed likely wrong
so it'd be data/characters/Pierre or.. havent checked game filed in a while
I said it thinking that the entries would go after that line but i guess it doesnt necessarily have to go there
can go anywhere really
I always go action target targetfields when entries but it literally doesnt matter what order right
if you want to edit his character data, you'd be targeting Data/Characters instead, and using Fields to edit specific parts of Pierre's data
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md#target-fields
see this if you don't want to overwrite everything about pierre
you need to find the json file with character data, is that data/characters? thonk
yeh it is. would that be fields or targetfield
Wherever the character data is for target then target fields pierre
~~```"Target": "Data/Characters",
"TargetField": [ "Pierre", "CanSocialize" ]
per the docs for Field,
When the entry's value is a string, the value is assumed to be a slash-delimited list of fields (each assigned a number starting at zero); otherwise fields are entries directly within the given entry.
When the value has nested entries, you can use TargetField to edit a specific one.
I see, I think thank u!
so based on this example from the docs:```json
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"MossSoup": { // entry with ID 'MossSoup'
"Description": "Maybe a pufferchick would like this."
}
}
}
we can assume this would work just as well:```json
{
"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Pierre": { // entry with ID 'Pierre'
"CanSocialize": "false"
}
}
}
that doesn't overwrite all of Pierre? it only changes CanSocialize?
maybe my brain is fried
It only overwrites what you specify iirc
if we used Entries instead of Fields, then yes, it would overwrite all of Pierre with the data we provide
likewise, if CanSocialize were a data model/dictionary of its own, then all of its data would be replaced with what we provided
its fine because Pierre is a top level field
every day i learn things
if Pierre were an entry inside something else, then you need TargetField
along those same lines, something like this:
"Fields": {
"Pierre": {
"CustomFields": {
"Key": "Value"
}
}
}
this would overwrite the entire CustomFields dictionary and erase every other entry
(every other entry inside CustomFields)
bc it is not top level
I dont think i have the brain power to understand this right now. I should throw myself back in the translation mines
so if I wanted to edit a single value inside customfields I'd use targetfields
here's the explanation esca gave me a while back if that helps, although i still clearly don't have a perfect understanding of it lol
How's this?
!json
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.
{
"Format": "2.8.0",
"Changes": [
"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Pierre": {
"CanSocialize": "false"
}
"When": {
"HasFlag": "jojaMember"
}
]
}
Notepad++
people say it does in fact complain about missing things but it doesn't seem to
you'll get used to adding commas eventually ๐
it can find missing brackets but it doesn't know about commas
vscode would have my ass for this
the validator governor linked to does though
'how fucking dare u not add a comma???'
does vscode care about trailing commas? i also use N++
it does.
depends on whether you use json5 or jsonc file associations
"Format": "2.8.0",
"Changes": [
"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Pierre": {
"CanSocialize": "false"
},
"When": {
"HasFlag": "jojaMember"
}
]
}```
does cp accept higher format values than the current version?
you can add three ` on either side of your message to make it more readable as code
!codeblock
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
aha thanks bea

not apostrophes, tildes
Need to put your entire action in brackets, too.
wait did CP get updated to 2.8 while I wasn't looking
Don't believe so, the point of the version is for CP to know the version of the format the pack was written for, and lying to it by picking a delibrately larger value would defeat the point of the mechanism
i think pathos was doing mod updates this week yeah
oof sorry for ping
pings r fine
I know this is outdated, but a friend of mine has it set this way...But is there any way to add new shirts via CP?
is there a command for CP docs I think it'll help Morris
yeah
I'm confused which part is missing brackets from your wording
idk but button has the json tutorial
blueberry has a mod that adds sailor moon clothing with CP
Put this entire segment within its own brackets.
wiki should have more info about adding clothes
i wouldn't really recommend looking at my code since it does add like 200 of them at once instead of a more manageable 1 or 2
lmao
curly or square?
Curly.
curly
curly
good catch dolphin
[[Modding:Objects]]
this got clothes info
"Format": "2.8.0",
"Changes": [
{"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Pierre": {
"CanSocialize": "false"
},
"When": {
"HasFlag": "jojaMember"
}
}
]
}```
Im sorry to bother, but do you have a link??
see farm computer post
objects is not clothing
Does everything look good and complete for what I want it to do?
shit twas items
not saying you have to stop sending it here to check, because we're happy to! however this site will validate your syntax if you'd like https://smapi.io/json/content-patcher and it's a good way to practice (partially how i learned)
[[Modding:Shirts]]
u can go back to modding items for pants and hats
objects vs items is always a trip
in my brain they are the same
"JsonToken EndArray is not valid for closing JsonType Object. Path 'Changes[0]', line 14, position 5."
I think u closed too early
It's the closing square bracket
send the link of the json
How?
just the link where it told u that error
sometimes the best way to use a colour is to use as little of it as possible ๐ฅณ
you closed out fields after When. move the closing bracket
yeah lol i had to copy paste to N++
YOOOO IT LOOKS SO GOOD, SCABBY LEMON I THINK NOT
missing a single curly bracket
to close ur action
{
"Format": "2.8.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Characters",
"Fields": {
"Pierre": {
"CanSocialize": "false"
},
"When": {
"HasFlag": "jojaMember"
}
}
}
]
}```
add one after line 14
i don't have nitro so just pretend this is an emoji or a sticker or something
(when you click a bracket in N++, it highlights the corresponding one. if nothing else highlights, then you have a missing one)
^ vscode just grays it out
pretty! fall colors go good with that shade of blue
you put it after the ] end of changes instead of before
wrong place to add the curly
just add it after "jojaMember"
the thing about code is that if you don't close what you opened it won't work
your brackets should be like a symmetrical sandwich
( { [ < code is cool > ] } )
Finally, no errors found!
yay!
if the sandwich lacks a bottom, game can't eat it
do you have a manifest
you can use this to skip ahead to having the flag
I need to update Content Patcher. How do I do that?
redownload it from nexus
thanks
same way you installed it
it looks like all my mods broke from updating Content Patcher
and QOL testing mods
pathos just released the most recent version so if it broke mods they likely wonโt have updated yet. but if he did something that big he would have said
It was because I had two copies
this is it
time to see if it works
Pierre is missing from the friendship list!
Too bad it's a Wednesday in game
I don't know where he goes
But yeah, I think it does what it's supposed to!
nice one
the first step's always the hardest
I think I'm ready to upload
donโt forget your update key
i forgot my update key but im probably never gonna update โcelebrity tortillaโ so whatever
your first update can be adding the update keys ๐ฅณ
i didnโt forget my update key with my first mod but i didnโt have the right syntax ๐
How do I convert to a .zip file?
Okay I found a website but I don't know how to turn my folder into a file
I don't know what I'm doing now
You on windows?
yes
Thanks!
Wrong channel oops
I DID IT! IM PUBLISHED!
some people struggle to make a solid mod page. they say it's the hardest part. but i can tell you're a natural at this ๐
want your post added to the #mod-showcase ? it'll help break up all the tortillas
break up the tortillas, you say...
Thank you. I felt like it was really rough. And sure. I'd like that.
my hidden powers manifest ๐
Thank you so much!
Guys.. I've got a code question :)
I've looked at some mod's code (dialogue in this case) a couple of times already and kept finding "#$e#" (without the ") - now I'm wondering, what's the difference between that and "#$b#"?
the e one ends the dialogue, then you need to respeak to the npc again to see the next line
the b one breaks the dialogue, meaning you immediately has the next dialogue windows being open
most modders prefer b because there's less chance to miss the dialogue overall for the player (like if they don't speak to the npc again)
Thankss.. Then I've gotta change that asap ๐ ๐๐ผ
Don't want to have to talk to my folks a bazillion times ๐
And, I found this too. Wanted to copy it. Do the numbers - in the middle of the photo - have to be the same or can I just mix them up? (found another bit like that in a different mod, but different numbers .. still confused-)
those are response IDs. They need to point to the correct response
Is there a way to add timed quests using JSON?
like must complete in 3 days
as well as giving the player a mail flag if not completed?
not in vanilla, no -- you'd create a special order for that effect
other than from the bulletin board, all the entries in Data/Quests have no time limit.
you wouldn't be able to send mail if not completed through normal means, but you can send mail if completed and check against this in tandem with checks for having started the special order in various ways
Ok thanks blueberry 
Is there a way to play an event with a trigger action?
no, trigger actions are usually triggered from events, not the other way around
if you're in dialogue you can use $v to start an event, though
the one and only time i look into BETAS to find something and it's not there 
If youโre looking for a playEvent trigger action surprisingly enough youโll find one in spacecore
Between Content Patcher Animations and SpaceCore Animations, what are the differences and what's better if I want to make anims for Custom NPCs?
Depends what you mean by animations for custom npcs, if you mean schedule animations, you might not need either
Praise the almighty spacecore. What can't it do?
probably the stuff the other 37,750 mods were made to do 
Thanks btw
Schedule animations are a vanilla thing, no need for a separate framework, if you want one where the animation is bigger than the normal npc sprite, spacecore has a separate feature specifically for bigger npc animations
I went to sleep and I woke up to tortillas
Okayy .. I thought about something similar to idle sprite animations? Like, not idle, but some follow-up movements? (idk how to explain nooooo ๐ ๐ )
is it ModId or ModID for the token
pretty sure both of them do the same thing
agony
ModId
ok cool
make sure it's in brackets like {{ModId}}
but i'm also pretty sure it's secretly case insensitive
Do doors in temporary maps not work if the temporary map isn't actually set up as a location?
is there any way to mod heart events as seen (I am trying to do a compatibility patch for a mod and I dont want to go through all the heart events q.q)
You should be able to with a trigger action
How performance intensive is NPC path finding compared to "Update": "OnTimeChange"? just debaiting which I should prune first?
debug eventseen myfunnyeventidhere should do it
or /eventseen eeeeeeee with chat commands enabled
thank you!
Ohhh oops I skimmed and thought you meant seen for the player, not for testing purposes
ah sorry, I could have worded that clearlier too!
and if I want to make my mod compatible for cp patches, my mod itself does not need the dependency, right?
currently my mod only adds functionality to sebastian's frog tank, but I am trying to allow for other locations and without seb as spouse as conditions
so I am adding a logic that detects something tagged as terrarium and only make it tied to the spouse if the tank is in a spouse room
so that there can be cp packs with that content as example:
"Format": "1.34.0",
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/SebastianRoom",
"Update": "OnLocationChange",
"When": { "HasSeenEvent |contains= 928202231": true },
"MapProperties": { "FrogTankRect": "7 9 3 3" },
"MapTiles": [
{ "Position": { "X": 7, "Y": 9 }, "Size": { "X": 3, "Y": 1 }, "Layer": "Buildings",
"SetProperties": { "FrogTank": "true", "Passable": "T" } },
{ "Position": { "X": 7, "Y": 10 }, "Size": { "X": 3, "Y": 2 }, "Layer": "Buildings",
"SetProperties": { "FrogTank": "true", "Passable": "F", "NoPath": "T" } }
]
}
]
}```
but so far I have only been working with smapi and c# directly (as well as gmcm) and I am still slightly confused about how content patcher works if it patches mod things
Content patcher just put data in
In your C# mod do you at any point implement AssetRequested?
(please use the current Format, you're missing out on a lot of content patcher features by using a legacy format)
(if that's one of your content files)
no, I am currently handling it through this
```private Texture2D GetFrogPortraitFor(GameLocation loc)
{
return TwoFrogsToday(loc)
? (_frog2Portrait ??= Helper.ModContent.Load<Texture2D>("assets/portraits/frog2.png"))
: (_frog1Portrait ??= Helper.ModContent.Load<Texture2D>("assets/portraits/frog1.png"));
}```
ah sorry, I used a random cp pack as template
Ok then no one can edit your thing yea 
You want to load your frog portraits into content by loading em in the handler of AssetRequested
ah but the compatibility would be only for tile properties and triggering actions
ah no, so far no one wanted to change the portraits
me brain hurt!
you are awake in my morning, afternoon, evening, and night
are you a vampire?
Chu doesn't sleep, it's a know fact,
New quote added by atravita as #6618 (https://discordapp.com/channels/137344473976799233/156109690059751424/1413148440413732944)
For map properties, as long as you as mod author is using location.TryGetMapProperty then it doesn't matter how people are putting in the map properties

