#making-mods-general
1 messages · Page 169 of 1
I was learning a bit of coding last year so I remember that but I mustve looked past it at 3am last night lol. But yeah I made the content and manifest, then found the wiki and copied it so I forgot to delete what I already pasted
I'll see if it works now because theres no error now
Well the new NPC is showing on the map, but theyre not showing in game at the bus stop (which is where it says they will be)
damn i should've asked pathos if i could include include the local tokens
i think you'll need actual schedule data at least the spring key
I used Abigail's schedule json from the game files, is that not enough to give this NPC a schedule?
Maybe the content isnt loading it correctly?
i'm quite unsure of the specifics of what happens when those things are loaded
Hmm okay thank you. Does anyone know what could be wrong with the schedule? The NPC shows up in the map and in the social tab, so the mod is working but the NPC isnt actually showing up and moving around. Im assuming this is because of the schedule not working. I used Abigail's so what could be wrong with it?
Schedules are often temperamental, but usually it’s because the path is blocked
Sometimes it’s because you need two times minimum
Sometimes it’s because there’s something wrong with your time formats
Or the entire format
Yep, local tokens on an Action: Include patch are inherited by all the included patches. That applies recursively; you can add local tokens on an included Action: Include patch, which is merged into the inherited local tokens and then inherited by all the included included patches, which can then have an included included Action: Include patch...
(psst Pathos, the markdown links for LocalTokens in the Overview sections of pages like actions-editdata.md for the CP docs link to a non-existent anchor link in author-guide.md instead of to tokens.md)
Hmm okay.. the NPC is set to spawn at the bus stop but theyre not actually visibly there. Maybe the coords are set to off the map or something. Which file states the spawn point?
wait, what happens if you define a localtoken in an included file and give it the same name as a localtoken it inherited? does it overwrite it, or does it not allow it?
Also are you checking for the character on a new save/day? I believe I've seen it said schedules are calculated when going to bed for existing saves so if you just continued a file they wouldn't have their schedule loaded
I'll try that right now. And I just checked, the home coordinates are set to 4, 5 at the bus stop, does that seem right?
That will overwrite the token's value for that patch (and its included patches if applicable).
try 14, 5. i think 4, 5 is off in the brush to the left (BusStop was made wider in 1.6)
(You can also do crazy things like use an inherited local token to overwrite itself, like "SomeTokenName": "{{Query: {{SomeTokenName}} + 1}}".)
i cant think of a scenario yet where id need it, but i love being able to do it

Im making my custom map and cant figure out how to make a warp in from the town. I have a warp out already. Any help would be great
Fixed. Thanks for pointing it out!
hmm, weird
[Content Patcher] Ignored Voidsent > CHAOS BEGIN > Data/NPCData/NPCData.json > Include Data/NPCData/A_Template_NPCs.json > Load Characters/{{ModId}}_{{NPCNAME}}: the Target is invalid: '{{NPCNAME}}' can't be used as a token because that token could not be found.
https://smapi.io/json/content-patcher/30c7343a1f384bd4813b2efa5b92a16d NPCData.json
https://smapi.io/json/content-patcher/d97b4b4f3aa743a89b89746139b4c97c A_Template_NPCs
Have you already tried using EditMap AddWarps in your json?
It worked thank you!!! She showed up and it looks like the schedule is working now. Where can I see what coordinates Im at in the game for future reference?
I feel stupid that I forgot to do that, will try now.
yw! there's a mod called Debug Mode which can show you useful stuff including your current position.
alternately, Console Commands has a debug command which will print your position in the console (less useful overall, but it comes bundled with SMAPI): type debug ppp (stands for Print Player Position) in your SMAPI console and hit enter
Thanks a lot! I'll download that
what was the issue cuz i couldnt see anything wrong
(cp wasn't updated)
apparently my other unreleased mod in broken in 1.6.9!
fixes light sources
wait no, the error persists 
I've dealt with enough mystery light source weirdness for a lifetime
it's also not recognizing my ConfigSchema 
Whats the best way to get the default portraits/sprites onto my ipad so I can make new art for them of the exact size and position? I dont want to worsen the quality or anything
are you sure you're editing the right folder's .jsons
i have experienced only one type of light source weirdness in my time so far and i don't relish the idea of experiencing more types
i should probably rename these things, but i will rename it to be blatant
this just looks like the method signature changed to include an id
should be easy enough to deal with
!unpack but keep in mind its pixel art so you'll need a pixel art program on your ipad
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!
by that i mean you cant make them any size you want without an external mod
thanks! I set up a pixel canvas/brush on procreate so Im hoping it works well for this
Im planning on using the exact images as the canvas so that the size and position is the exact samee
Im updating the json but the warp is in a part of the town that ive edited and I dont know how to move the edited town.tmx into the game itself
You shouldn't be trying to include an entire edited town map, you should be patching in the local area you've made changes to with a new tmx and a map patch
did you load the {{modid}}/hats file before trying to edit it?
looked through chat and saw your previous codes; i would use Load to add in the default sprite (I'm assuming hood down is the default) for the hood, and then use EditImage to change the sprite when it's raining/snowing/etc
Hahaha, nope! I was just coming back to say that adding a 'Load' action fixed it
Thanks mate!
when does this trigger? I thought you can't stay past 2am which is at 2600?
your local-breaker-of-things found a few things with the brand new LocalTokens:
https://smapi.io/log/7c251a66690d4eb79e613d25a0da5b90 LocalTokens fail on Action:Load
https://smapi.io/json/none/5debefcf4c104b269231bb6db45d78cd NPCData.json
https://smapi.io/json/content-patcher/f3385032fe5b499a868f2f136063ebe2#L292 A_Template_NPCs.json
It also seems that an invalid LocalToken on the EditImage will just silently fail, not giving a warning that it's invalid (i gave the data "yep" to the PORTRAITEDIT local token)
as well as in particular the provided example doesn't work:
"Action": "EditImage",
"Target": "Buildings/houses",
"FromFile": "assets/{{HouseStyle}}.png",
"LocalTokens": {
"HouseStyle": "{{Season}}_{{IsOutdoors}}"
}
}```
https://smapi.io/log/ccd8ef3c49fd45afabcd6323aa4957ef EditImage warning
(i went and formatted the `Action:Load` to be:
```{
"Action": "Load",
"Target": "Characters/{{ModId}}_Edelweiss, Portraits/{{ModId}}_Edelweiss",
"FromFile": "Assets/NPCS/{{TargetPathOnly}}/{{NPCNAME}}.png"
},```
and that fails too
the silent failure on EditImage is after I forced the `Action:Load` to instead be:
```{
"Action": "Load",
"Target": "Characters/{{ModId}}_Edelweiss, Portraits/{{ModId}}_Edelweiss",
"FromFile": "Assets/NPCS/{{TargetPathOnly}}/{{TargetWithoutPath}}.png"
},```
so that everything would be valid
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 12 C# mods and 2 content packs.
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 3 C# mods and 1 content packs.
you have underscores in things
(RE: that provided example, i took that straight from the Content Patcher docs and put it into a content.json. thats literally the entirety of the content.json (it is format 2.5.0). there is a valid png named spring_true in an assets folder to be found, not that it got that far anyway before complaining about an invalid token)
(we think the tokens failing in Action: Load miiight be a separate issue? in that they would not work in Load actions that were in an Included file, but they would work on EditData and such in that same included file. whereas with my issue using the example from the docs, they just dont work even when not in an Included file, when theyre used in the same patch theyre declared in)
Hmm, does anyone know why the 'hide hairstyle' value doesn't seem to work for my hat?
are you doing a cp hat or a fs hat
CP
The 'hide' value is coming through my patch export in data/Hats
So it wants to work haha
Ah sorry, I did a patch export command to make sure my current in-game data/hats file had updated correctly
Yep! And it also isn't working for true
well true would mean that the hair would be shown
so the string should look like:
name/description/show real hair/skip hairstyle offset/tags/display name/sprite index/texture name
what does your data/hats look like
Oh yeah, but the default hair is a ponytail, and it turns to pigtails anyway
"RainHood": "Rain Hood/Optional extra for your rain coat./hide/true//Rain Hood/0/IMS.RainyDayClothing\\Hats"
Im trying to remove the fence in this area but no matter what i do it wont remove in game. What should I do? (Heres the code too)
you're not specifying a FromArea/ToArea, so do you have that custom Town.tmx as the same exact size as the town?
also, you can combine both of them into a single patch
I used StardewXnbHack to get all vanilla data from the game so I would assume its the exact size.
Ive also been confused on the FromArea/ToArea
so fromarea is the map that you're using to overwrite the original, toarea is the location you're trying to overwrite
How would I find out the Width and Height?
width and height is the amount of tiles
so if you wanted to make a hole in the fence you'd be 1 width and...
probably 3 height or maybe a little more, i don't know how many tiles you've changed
Ive changed about 3 tiles so seems about right
Would get the X and Y from the bottom or top of the tiles I changed?
The true, false and hide values all still work with vanilla hats, so I'm a bit lost!
topleft most
Got it
Isnt there a list on the wiki of all locations I can use in schedules? For example "SeedShop", or can I just set it to whatever name I want and only the coordinates matter?
Data/Locations has all of the locations in vanilla game
if you set it to an invalid name, it'll error at you that the npc can't get to the map or something
Thank you for all of your help, it ended up working!
Thank you!
honestly i'm unsure because clothing is the devil to me 
I have another question. Im using Abigail's schedule to edit for a new NPC Im making, and I want to know if its possible for me to add a new date that she doesnt have. For example if I just add "spring_12" and start writing a schedule, will the npc actually follow that? (given everything is written correctly)
you can add any valid key that you want
but you must have spring, it's what the game defaults to
Okay good to know thanks :)
I also noticed that in her schedule, she says "hey, taking a break from work?" on Mon, does that mean she says that every single monday if its just a regular monday?
is it monday? which one
oh you're looking at Characters/Dialogue/Abigail
that's not the same
but to answer that question, yes, they will repeat the dialogue unless it's specified year 1 only (much like for jodi talking about kent)
Ohh okay, I was thinking when I make an NPC I would have to choose 112 different dialogue pieces for each year (because 28 days and each season)
technically you don't have to
you can have a very expansive dialogue if you so wished, but it's not necessary
also i wouldn't suggest putting dialogue strings into your schedules, it will get messy quite fast
yeah I wont try anything like that I'm just sticking to the dialogue json
Going back to the schedule though, I can see she does some animations like sleep and sit down. Obviously I'd want to let my NPC sit sometimes, so would I have to keep it "abigail_sit_down" instead of changing the name?
I dont know how any of the animations work and Id like to avoid getting into that besides the basics
So that's something called animationDescriptions
Ahh I just found that. Would I make a new one there?
You'd editdata a new entry into there
And then are the numbers the frames they're doing in the animation?
the numbers correlate to the sprite index
which starts at the topmost left, starting at 0:
0 1 2 3
4 5 6 7
etc
which is a part of the Character/Abigail.png iirc
i think uhh
tia's guide as a template for it
Ahhh thank you, Ill check that out
Okay, I've patched in a copy of a vanilla hat and just renamed it to 'Test', and the show/hide hair still works correctly
So it must be something to do with my hat? 🤔
Hypothetical here, say I made a mod that retextured a lot of modded items. But I didn't want people to have to download different flavors of the mod and have to replace the assets of the original mods. Could I use:
"HasMod": "<somemodID>"
}```
within the config schema declaration so that the options for recolor didn't appear unless you had the mod that contained new textures?
Why does this hate me???
https://smapi.io/log/c0630e8943a8418fb388548d2605a7bc?Mods=game~ContentPatcher
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 64 C# mods and 34 content packs.
what's your json look like?
my map patches in the museum they are small now since there was a room there.. but what if we wanted to add new maps with this logic since running out of space in museum for rooms now.
Can I package a CP mod with a C# mod? What would the folder structure look like?
FolderNameHere
- CP Mod Folder
- C# Mod Folder
So long as each one has its own manifest, you're good
also modbuildconfig has an option to do the bundling for you
How do update keys work with those, by the way? Do you just do the ??? like SVE, or leave them blank? Or give just one the update key?
I usually set one to an invalid value, I prefer it to tell the trace logs that the key is invalid rather than tell the user to tell me there's no key
you can also give both of them the same key and the same version - no lines in log, but high chance of committing manifest crimes if you forgot to update the version in one component
Thanks. Will give it a try, expecting it to not work on first attempt
Hi all, is there a command or a cheat (mod) to spawn in a giant crop?
https://www.nexusmods.com/stardewvalley/mods/25310 this can set the chance to 100%?
https://www.nexusmods.com/stardewvalley/mods/23760 oh and this... if it hasn't been broken by any post 1.6 update
(FTM can spawn them, but it's more involved to set up, so defer to others
)
new to modding and im making a dialogue mod, but i was wondering if anyone could tell me when exactly each pool of dialogue cuts off?
for example, i read somewhere that all dialogue from 0-4 hearts is shared (once the player gets to 4 hearts with that npc, of course), but i wanted to know if 6-14 were shared also?
sorry if this info was somewhere on the wiki! i looked, but i couldnt find it.
I havent heard of that
that being said, I'm not an npc modder. I just havent seen that mentioned in the go-to npc tutorial
oh, maybe i misread it haha! i think it was somewhere in vanilla dialogue wiki pages, though, not the npc tutorial
in fact it explicitly states that a 0 heart dialogue will be covered by a 2 heart dialogue
As soon as you reach the higher heart level, dialogue lines from that heart level take precedence over lower ones.
If you can find the original let us know
So if you have Mon2 and Mon4, you will never see Mon2 again once you hit 4 hearts.
ohhhh i see
okay! thanks so much 
unsure if my wording makes sense, but... um, if a contentpatcher mod reads an empty string (see attached), it simply won't do anything and will instead output the original game code or a higher precedent code right?
what i don't want to happen is for it to just output nothing, but from my understanding, it would only output nothing if i set it to 'null', so i just wanted to make sure
obviously i could just get rid of the stuff i'm not filling in! but i want to make sure that, while this mod is a wip, i can leave empty strings in the code so that i wouldn't have to readd it later
tl;dr: does the code ignore empty strings or nah
it'll set the value to the empty string i think?
aw, damn
unfortunate but makes sense
i'll just comment the unfinished stuff out i suppose 
I eventually stopped using the fake LTF clumps (in 1.6 iirc, though they were obsolete in 1.5?)
so it's just location.resourceClumps.Add(new GiantCrop unless it's from an item framework
...ok i just realized the language i am used to programming in Also does this 
unsure why i thought this would be different??? i need coffee man
(p.s thank you all for answering my silly questions)
(Test packs are fun.)
in what sense? there's other places when there's still room, but you'll have to deal with other mods adding stuff for compat
If my npc has an older child would it be possible to have both move in if you marry her
Asking incase it isn’t doable
hi everyone!! wanted some insight on an error i threw up while testing a content pack i'm making for fun. i'm editing the keg to exclude dandelions from the forage > juice rule. to do that, i've given dandelions the unique context tag "dandelion_item" and tried adding an entry to the "condition" field that goes
"!ITEM_CONTEXT_TAG Input dandelion_item": "!ITEM_CONTEXT_TAG Input dandelion_item"
unfortch, when i run the pack ingame, i just get this error:
[Content Patcher] Can't apply data patch "Liquor Cabinet of Curiosities > Include Dandelion Wine > data/dwine.json > Tweak Machine Conditions (Dandelion)" to Data/Machines: the field '(BC)12' > 'OutputRules' > 'Default_Juice' > 'Triggers' > 'ItemPlacedInMachine_Forage' > 'Condition' has type 'System.String', which isn't recognized by Content Patcher
wanted to know if theres a workaround for this besides entirely overriding the Condition field for compatibility's sake ;0; thank u sdv community!!
I'm not aware of any way to let a non-spouse NPC move in with a spouse. The closest thing I can think of is if you cause the wedding to trigger an event where your farmer asks the child to be a roommate, but a player would need to have a polyamory mod or something for that (unless you wrote your own bespoke C# code allowing it - and if you did that, you might be able to write a way for the child to move in as a roommate more seamlessly but that's beyond my knowledge).
So Diologe mods are easy. Maybe in spring, I'll see if I can manage to make a mod where the girls break the 4th wall (It's not procastadhon snow gives me headaches)
Mkay I’ll figure smthng about that out
You can use the id_<item qid> form of tag instead of custom tag
As for ur edit not applying, you want to add to list of required tag instead of the condition
textoperations is what you want
sorry
With !tag for negation
CP docs, text operations, append ", !!ITEM_CONTEXT_TAG Input dandelion_item"
this works because , are ANDS
The bone mill has a example fkr that, to exclude bone fragment
so you're basically saying "previous, AND MINE"
ooh okay ill give that a go
I dont thin you want text operations
no?:0
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"(BC)15",
"OutputRules",
"Default_Pickled",
"Triggers",
"ItemPlacedInMachine_Vegetable",
"RequiredTags"
],
"Entries": {
"#-1": "!id_o_cornucopia_olive"
}
},```
This is what we use to exclude our olives item from being pickled under the generic vegetable rule
It's not a text field its a list of separate context tags
Oh you went the method of changing the condition rather than the trigger input
I see
i dont know if i understand the difference haha
ill give this a go, though:)
no pickled olive? sad
It makes a special item :P
ohhh I didn't realize you could do that lol
john to the moon is crying rivers rn
Both would give the same outcome but 100% my code will work
thanks everyone!!:)
Can I ask why you're excluding it?
was it so it's easier than moving entries?
wanted to make dandelion wine haha
Because the special item needs two olives, so if someone puts one olives I dont want them to get a different item
You dont need to do all of this to do that
in fact its worse for compatibility
well i feel real silly now
isnt dandelion wine already makeable 
No
they turn into juice</3
If the vanilla Wine rule doesnt take precedence before Juice, then you should make a new Wine rule for the dandelion only, and use MoveEntries to put it above Juice
oh i prob had that one option in cornu artisan machines on for too long 
oh my god moveentries never even occurred to me
Or move the vanilla Wine rule above Juice, but idk if that will screw with any other mods
i think making a new rule that takes explicitly dandelion make sense
is dandelion whine a thing
tho u may need to do the tag thing mentioned if u want more than 1 dandelion to be consumed
...fuck it, leaving typos today
yeah, actually!!
it's a book and a band 
fell in love with the idea on brewing youtube pfft
but yes it is a wine
I knew dandelion tea was a thing
yeah im rigging it to require 3
Dandelion and burdock is a beverage originating and commonly consumed in the British Isles since the Middle Ages. It was originally a type of light mead but over the years has evolved into the carbonated soft drink commercially available today. Traditionally, it was made from fermented dandelion (Taraxacum officinale) and burdock (Arctium lappa)...
Is there somewhere I can find a body base for pixel sprites of npcs?
ah yes burdock. good for rat bites
!unpack The vanilla NPCs are a good starting point.
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!
Okay then yes you'll also need to do the context tag exclusion. Just make sure you use the native id_o tag rather than patching in your own tag though
the sdv server bots r so cute:)
how do i do that?
Would this be worth buying (the sprites have no clothing but aren’t explicit so I’ll spoiler warning them)
its id_o_(id number of dandelion) just like in my example
me when I look up references and all. I see is ai..
theyre very well made im just also so unnerved by them being Naked
Yeahh
oh their stuff is amazing
it's a base, they're usually not clothed
I’ll clothe sylvestra dw LOL
Up to you! You definitely do not need a naked base to start from (especially since there are vanilla beach sprites) but Void is a very good egg and great artist so their sprite bases are very good.
add "before:2023" to your google search to try and filter it out ig
i feel very old in this discord server atm
Which npc would have the best vanilla sprite to look at?
Thank you !
no yeah i get that i cannae help my kneejerk reaction though
depends on what you're going for???
Don't worry Bea I will always remind you that I'm older than you if you need it
/lh
do those npcs look really tall to anyone else?
Sylvestras gonna be tall eventually but
First release probably not. I don’t wanna break game sprite bounds for first time
theyre tall enough to have pretty detailed hip definition at least
guess i'm desensitized from years of using dA
please don't ping me in replies
oh, sorry about that!
I might do SOME sprites but I’m waiting for ref sheet to be done
cant wait to see them hehe
Depends on what you want. My transfemme NPC Hiria is based off Demetrius and Sam because she's tall and broad but most female NPCs will probably be based on one of the female NPCs. You will probably get a feel for what works for your ideas pretty quick when you start trying to edit a vanilla NPC.
don't worry
in five years your knees will start hurting
my knees already hurt! it's how i know it's going to rain sometimes
(Just FYI, you pinged Susan who also has "@ Off" in her name. I recommend you start checking for that because it's pretty common in this server.)
She’s quite tall and bulky canonically but I was gonna change that to be her main overworld sprites later on
sorry to circle back to this but what does the #-1 field represent?:0
(actually before:2022 probably works better oop)
@ aba, yeah itll take some getting used to
(oh i forgot to unping RIP)
Her using a male body type for sprite sheets makes sense
it means "add it to the beginning of the list of tags"
got it, thank you so much!
So like it would make sense if she didn’t use the sprite bodytype women use in the game
basegame female npcs r so tiny i get that
It does! I just wanted to give you a heads up. And just to confuse you, some people like me have in their name that they actually want to be pinged in replies haha
just means i gotta do my due diligence hahaha
buff women....
I’m gonna struggle so much
She is buff women. LOL
This is Hiria btw for reference so you can see how much of the 16x32 space she takes up
(4x zoom so she's game-sized)
How can I optimize gimp to best work for that?
real talk, does anyone put a non-right angle value into this and if so who hurt you.
1px brush, make sure anti-aliasing isn't turned on
Looking for a pixel brush on gimp
If there's a pencil option (can't remember, can't be bothered opening gimp to check), that's a good choice
cute!
i just closed it, there is!
oh yeah!
It's definitely not bad! Fortunately it's easy to do pixel art in almost any art program.
Me trying to make a new layer
Found it
I’m using a mouse so it’ll look so scuffed LOL
Nooooo my session didn't save
so many carefully destroyed voxels, gone!
I wanted to keep the sprites within stardew style but I might make beta ones that aren’t
What’s an optimal size for portraits
I do my art in Krita, but that's because I do ALL my art in there. Other than that, I originally used Jodi as a reference for portraits (until I decided to overhaul it lol), and used Penny as a reference for the spritesheet because my character is supposed to be on the shorter side and her sprite tends to be shorter than the others'
64x64 is the only one the game recognizes without additional frameworks iirc
Ah ty
The vanilla beach sprites are horrendous though lol, especially the women - I definitely wouldn't recommend using them for anything
I’ll probably use a male npc with more body size as a reference
Vanilla Elliott you’re my test subject.
[opens abigail_beach sprite] oh. oh wow... yep those are awful
why are they standing like that 
THE LEGS??
For some reason, there's a serious drop in quality with the beach art. I dunno if CA outsourced them or was just lazy that day or what
The closest non mod npc that fits sylvestra would be Elliott on body type alone and even then he’s a bit small
i think they all use the same pose and just add the head of the npc up top or something-
leah stands differently
Is there somewhere that has a list of every vanilla item you can gift
the wiki
I will admit the legs are terrible. But after examining all the variants on sprites I could find, I have concluded that legs are just really hard at that size anyway.
and they all seem to have somewhat different walk cycles
Abigail looks like she has scoliosis
LOOL
The legs are the WORST for me to work on
Tbf I walk different in bathing suits too so maybe that’s a partial reason
The portraits too - Sebastian's ultra-wide shoulders and Clint's complete lack of shading are standout examples, but just about none of them match up with the original portraits
I swear users always find a way to break what should be unbreakable.
held.RemoveWhereNull(); <----
result = held.MaxBy(h => h.salePrice()) as SObject;
NullReferenceException: Object reference not set to an instance of an object.
at DaLion.Ponds.Framework.Extensions.FishPondExtensions.<>c.<GetProduce>b__3_0(Item h) in G:\modded\sdv\dev\main\Ponds\Framework\Extensions\FishPondExtensions.cs:line 97
at System.Linq.Enumerable.MaxBy[TSource,TKey](IEnumerable`1 source, Func`2 keySelector, IComparer`1 comparer) <----
makes me appreciate your beach sprites (i'm assuming those are the one you sent before?)
My goal with Hiria's sprites ended up having to be "can I avoid her looking horrendously misshapen upon a casual glance" because I couldn't do anything better haha

Quill I have a request
clint...only has beard shadow
Yes! She wears a high-waisted bottom and crop tank top style bikini. And thank you 
Can we please be nice while talking about the vanilla portraits, we normally don't use such harsh language with fellow mod authors' art and CA shouldn't be excluded from that! 
Can you make me a thread to picture dump Sylvestra stuff into so I don’t lose it 
/nf
I wanted to keep that one for a diff npc
this one
Or I will mix them up badly LOL
sure
Ty:D
I’ll make non pixelated sprites as test sprites then maybe trace over my own sprites with pixel brushes
Susan's Thread 2: Electric Boogaloo
POTRAITS*
there ye go
electric boogaloo quill you're awesome
I will use this thread like my life depends on it
Is me setting some universal likes as a dislike a bad thing genq
no
universal likes have exceptions, even univeral loves do. different folks, different strokes
like wine and stuff she would dislike
there are people making their npc have no loved gift, including universal stuff
She’s also allergic to eggs so she’d be offended LOL
i don't think it's like, super needed, but mod authors do what they think is nice for their mod
I think this is the first time I've seen Hiria, beautiful work Aba 
Ah, fair 😅 Sorry, Quill!
I was wondering cuz ik immersions a huge thing for people
We should encourage all artists, including CA! 
Sylvestra won’t even accept egg products
a character not liking a universal like is more immersive when they do, imo
Yeah, there's a reject gift mechanic
I am not getting too hung up on gift tastes because as soon as a player has an item mod where the mod author has decided their item is a universal like/love then poof! My carefully planned gift tastes are gone.
(QUILLLLLLLLLLLLLLLLLLLLLLLLL
)
i am guilty of this
(CLAAAAAAAAAAAAAAAAAAAAAAAIRE
)
but in my defense it's easier to do that and then set specific items as not that for specific npcs
How do external item mods work as gifts for npcs?
also i didn't set any universal loved besdies uhhh rainbow rock sushi and if ur npc is offended by rainbow rock u can let me know and i will add
you can set them with a when mod installed condition iirc
the same as normal items
if they don't set a specific one, it defaults to the category
like for example cooking items are a universal like
just to avoid things yelling, iirc? 
Don't worry, I forgive! It makes sense that as an item mod author you'd want to be able to have NPCs like your stuff!
when I set my gift tastes for npcs i admittedly don't remember adding modded npcs because i had no idea which ones would like different sodas
having the same problem now with my wip
i don't actually set anything as a universal like the game does because i add dishes
I wouldn't expect the game to validate IDs in gift tastes, but I don't actually know what the code looks like 
I have decided that I will set the theme for Hiria's tastes (only food) and if someone wants to play with mods that changes that, I will just Not Look lol
Yaaay
you could technically make your npc dislike specific item tags, but i'm not sure everyone uses them
A lot of this is discussed in detail on the modding wiki and regular wiki
Oh there’s a lot of dialogue to write that’s funsies :D
I lowkey love writing dialogue
Yup, dialogue is fairly easy. Studying docu is important.
(Has anyone considered a Scrooge NPC that dislikes everything, but has an extremely rewarding friendship arc? That could be a fun mod with some real challenge to reach the end of!)
so you'd just need to talk to them
You could maybe implement custom quests and some C# to bump their friendship in special ways?
you lost me at C#
- Talking to them more than twice a week gives - friendship
I thought that was where Hiria was going at first but then I realised that allowing meals and ingredients actually makes her very easy to gift haha
if i was an npc i would like any food anyone gives u
However, I do hate gift mechanics in games like these so it's still on my wishlist one day to have an NPC that dislikes all gifts
spawn ghosts around town, lead them to scrooge's house at night, he starts liking things after you collect 3
a plot of a horror comedy
Just a (belated) heads-up but since these are made by me I am just stating that theyre naked because as stated they're a base and bases are for me usually best without any kind of clothes that can obscure the body shape so even someone inexperienced can try and create an NPC without accidentally messing up the body itself so they can go straight to doing the outfit/hair etc. Not sure where the unnerving part comes from as all bases i know are usually like this in any context. 
Stardew quits, and loads the secret Haunted Chocolatier alpha.
Maybe Haunted Chocolatier was the Stardew Valley we knew all along
it's jan 12th and I'm still festive too
"npc that doesn't believe in gift giving" is not a bad idea, i suppose
Let's just remain festive until Halloween!
...what month is halloween again
october
gotta keep it up until Valentine's Day like retail stores
yeah sure i'll stay festive forever
what is a year but a bunch of holidays hanging around
I’m writing dialogue in the order the wiki shows it
Sylvestra panics at monsters in the house except for rock crabs
She loves them LOL
they're a minimalist
gifts are a bad idea
tbh that's how I feel whenever someone gives me a gift most of the time.
thanks, but now I have to store this. 😦
Sylvestra when a mean dangerous rock crabs in the house: “Oh it’s so cute can we keep it? (as it’s being mean)
HeyHey guys, can someone tell me which schedule is used at GreenRain in the first year and from the second year?
(Ah, schedule. I was typing out the dialogue keys. Caught that just in time.
)
yeah... it's like oh! you thought of me! where tf do i put this... oh god
it looks like GreenRain_2 has first priority as a schedule key in year 2 or later, but if that doesn't exist or it's year 1, GreenRain is used
...wait, I'm also looking at dialogue code
Thanks for reporting them! I'm looking into these, which is uncovering fun edge cases like this:
{
"Action": "Include",
"FromFile": "{{LocalPath}}",
"LocalTokens": {
"LocalPath": "{{FromFile}}"
}
}
that does look fun
I might just add validation to prevent using non-inherited local tokens in Target and FromFile, since those have special parsing rules.
so afaict, "GreenRain" as a schedule is only used in year 1, and there just isn't a special GreenRain schedule for other years; I imagine it falls back to normal rain behavior
okay Thank you!
i suppose it's less exciting if it's, already happened before huh
should i igniore "RejectBouquet_NotDatable" since sylvestras marriageable?
and RejectBouquet_NpcAlreadyMarried
i might write smthng for those if i rival hearts her but idk if her dialogue would go funky without it
ofc, can always use a "Weather": "GreenRain" When thingie
mckthingi

yeah, I don't know much about schedule priorities myself (i.e. which key would be used for year 2 green rain), but you can edit them conditionally
@chrome mountain hey there its a meeeee
I would love for my feeesh to be in the aquarium mod
i have some animations for them but im cool with yall doing more and stuff too! i just love the mod
Grinch
hoping to get her gift taste done today
we would love to have your fish at the aquarium. Currently I don't have time to add anything myself and the list of mods has gotten fairly long
you're welcome to add what you have as pull request to the repo:
https://github.com/Gervig/Stardew-Aquarium-Content
Eyvind is neutral to almost everything at first but develops loved gifts as you get to know him.
Depending on how you react in events
Oh, that's super cool!
man im making a spreadsheet of every giftable item to make her likes dislikes
That seems like a lot of work! It might be easier if you give her dislikes by categories instead.
Question, is there a phrase you all would understand as meaning "your own inventory when you're in a chest or similar menu with two inventories, and which is treated differently from when it's the only inventory"
I'm currently calling it "secondary inventory" but I'm not sure that's clear enough
(I'm trying to word my config options better)
yeahh for cooking and artisan tho it needs to be specified she wont accept it
Hmm, I am not sure I am following. You're referring to the player inventory, but only when they have a chest (or similar) open?
Yes
I have keybinds that apply to it specifically when it's the little inventory below the main inventory
I don't think "secondary inventory" would convey that meaning for me because to me that implies that I have two player inventories, which I do not see myself as having. But if you have the description there from your message in the hover box, I think I would arrive at the right understanding.
she denies anything with eggs or mayo, or anything that required either in the process of it
which isnt a lot shockingly
The problem is that my mod can't use GMCM because the formatting I need for these particular keybinds isn't supported, so my options are 1) attempt to name the variable better or 2) put comments in a default config file
(Or a readme which nobody will read)
would her not accepting dinosaur mayo make sense or wouild it not
If she's allergic to eggs then it would not make sense for her to accept dinosaur mayo because it would contain the same stuff she's allergic to in birds' eggs
oh
i was wondering since idk how the dinosaur connection to chickens is
wasnt sure if they were close or not
birds are dinos
That is trickier, yeah. Could you make the name really long so it includes the description?
she hates crabs as gifts cuz she loves rock crabs so much
is there somewhere i can find like a full length code file for dialogue?
Do you mean with all the possible keys in it?
No, but there are a few templates around with many of them. Let me find them.
!npc Probably some in here, if I have remembered the command correctly.
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
what site/app should i use?
Ah ha. That first link to Tiakall's NPC tutorial has a dialogue section where they link to two dialogue templates.
!json these three are the most commonly suggested. I use all three lol
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.
ty! ill test notepad plus
That's a good one to start with, yeah. Very lightweight and easy to just jump into the editing. I started with that.
So I'm working on another NPC and for some reason, only ONE of the tilesheets won't work, but I don't understand why? The name is correct and I made sure it's not supposed to direct to any exterior folder. Can anyone help me out?
I'm trying to patch a map onto @/fireredlily's apartment mod
Did you Load it correctly?
It's saying it can't find it, so my guess is that your Load code block is wrong.
These are the code blocks that interact with the map patch
Should all the speerate code thing use diff files?
Neither of those is a Load block for loading your tilesheet into Maps.
Me? Yeah I have my code separated across multiple files (and each mod uses their own folders)
The tilesheet is already part of the apartment's mod, which is the wild part
pls dont ping rn
I listed that mod as a dependency and I thoguht it'd fix it
does notepad+ have darkmode?
Up to you! Its only purpose is organisation, so if you find it easier to understand your mod having everything in the content.json instead of separated out into different files, you can do it that way instead. I started modding by doing everything in the content.json and then started using separate files as my mod got bigger.
Yup!
its too bright on lightmode
Is it your mod?
FireRedLily's apartment mod is the one that has that tilesheet
Ah that explains the FRL

Every day that I code, there's always at least one moment when I'm internally screeching
You'll get the hang of understanding the templates with time! Is it your first time stepping into modding?
after a while yeah
Feel free to ask any specific questions you have. One of us is bound to understand what's going on
Maybe I’ll do smthng smaller as a first mod. How difficult is retexturing an item?
Right, I have found the issue. She hasn't loaded any of her tilesheets into the game.
Also, she may not actually provide permission for you to use her assets anyway.
Very small amount of code required! You can use https://github.com/lisyce/StardewValleyMods/tree/main/[CP] Duck Egg Fix as an example if you'd like
I retextured an axe :3
Thank you !
Since it's part of the room templates, I'd be surprised if we couldn't use them
I’m thinking about the two cakes thing
We love two cakes!
YAAY I RETEXTURED AN AXE
Send pics!! Probably in #making-mods-art
try vscode, it’s dark mode by default
Fair! In that case, let us ask her. @latent mauve Raven is running into an issue trying to use your FRL_transparentborders.png tilesheet for a room in your apartment mod because you appear to not have loaded any of your tilesheets into the game. Was that intentional?
Loading the tilesheets into the game makes it accessible to other people's mods, right?
i hope my retextures work fine
Yup it puts them into Maps and then any mod can access them just like they can access vanilla assets.
Hi,
sorry if this is such a stupid question to ask (and also sorry if I'm interrupting), but when I write dialogues for events, I have to use #$b# in places where there is a direct dialogue (f.e. /speak event command) and # in places where there is an indirect dialogue (f.e. /message event command), right? I tried the #$b# in the /message event command and it took the $b as a separate dialogue, but when I used only # to separate the dialogues in the /speak event command, the whole thing after # is skipped.
Is that right? And if so, is there a way to unify the formatting of the dialogue breaks?
Can you send the code for the event you're working on? It could be a syntax issue
that sounds right. different cases call for different formatting (see also mail, which is another different format). not much you can do about it, i'm afraid
Here (https://smapi.io/json/content-patcher/73e74366bf7f4d4ebc4298ec562efdb9):
"LogName": "Eleanor - 14hearts event (p2) - Wizard's tower",
"Action": "EditData",
"Target": "Data/Events/WizardHouse",
"Entries": {
"Eleanor_14hearts-p2_pre/e Eleanor_14hearts-p1": "none/20 20/farmer 0 0 0/viewport -1000 -1000/pause 2222/message \"{{i18n:Events.14h-p2.0|PlayerName={{PlayerName}}}}\"pause 1111/switchEvent Eleanor_14hearts-p2",
"Eleanor_14hearts-p2/e Eleanor_14hearts-p1": "none/20 20/farmer 9 33 0 Wizard 7 7 0/viewport 20 20/pause 111/move Wizard 0 14 2/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.1|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.2|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.3|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.4|PlayerName={{PlayerName}}}}\"/pause 1111/message \"{{i18n:Events.14h-p2.5|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.6|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.7|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.8|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.9|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.10|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.11|PlayerName={{PlayerName}}}}\"/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.12|PlayerName={{PlayerName}}}}\"/pause 1111/emote farmer 56/pause 1111/speak Wizard \"{{i18n:Events.14h-p2.13|PlayerName={{PlayerName}}}}\"/pause 1111/pause 1111/switchEvent Eleanor_14hearts-p3"
},
"When": {
"Eleanor_14hearts-variants": "long"
}
},```
And i18n (https://smapi.io/json/i18n/f8cf6e7c0a4345d0b8a8936ee711ac91):
"Events.14h-p2.1": "Yet another morning...#Wait. Something is not correct.#I can feel it in the air...#...but what is it?",
"Events.14h-p2.2": "Hmm...#I sense a shift in the magical energy around me...",
"Events.14h-p2.3": "I know this feeling...#...but I can't remember when I felt it last time...#...and what happened then...",
"Events.14h-p2.4": "Oh!#{{PlayerName}}!#Why are you here this early?",
"Events.14h-p2.5": "You tell Mr. Rasmodius about Eleanor's situation. He listens to you carefully, but he doesn't say anything.",
"Events.14h-p2.6": "So that is why the magical energy is uncommon today...",
"Events.14h-p2.7": "Well, it is my duty to help you find her, {{PlayerName}}.#Especially when she is my apprentice.",
"Events.14h-p2.8": "*...sighs...*#I hope they'll forgive me for this...",
"Events.14h-p2.9": "No.#I may have some minor knowledge about her past, but I can't tell you anything else than things that you don't already know, because that is all I know.#It's her past, not mine.#It is up to her to tell you about it...",
"Events.14h-p2.10": "However, I suppose I know where she might be.#I can feel her magical aura.#And at least some of it is coming from Sprite Spring in the forest.",
"Events.14h-p2.11": "I know you're worried about her, {{PlayerName}}.#But you have to be careful.#The forest is not a safe place, especially for someone like you.",
"Events.14h-p2.12": "I'll help you find her, {{PlayerName}}.#But you have to promise me that you'll be careful.",
"Events.14h-p2.13": "Good. Let's go then. We have to find her before something bad happens...",
Is the problem that you can't get a line break working in one of the commands or just that you wish it was either # or #$b# in both commands, not one for each?
The problem is that I tried this event and on the 2nd dialogue "Yet another morning...#Wait. Something is not correct.#I can feel it in the air...#...but what is it?", only the 1st part Yet another morning... showed while debugging. And then it continued with other event commands. That also applies for other /speak commands in this event.
I noticed that for this event "Eleanor_14hearts-p2_pre/e Eleanor_14hearts-p1", you have {{i18n:Events.14h-p2.0|PlayerName={{PlayerName}}}} even though the token {{PlayerName}} isn't being used in that line of text
You'll need to use #$b# to split the text
Ah, I hadn't used any of them for the base rooms, so I didn't consider that they needed to loaded in for people using the templates. I can adjust that in a new update today.
(it's mainly used for lobby shenanigans)
Ichor said that you have to use them differently for the different commands. He is knowledgeable so I trust his advice.
I have done three tool textures
Yeah, that is because I am too lazy to search and filter i18n keys that uses them, so I applied them everywhere.
also, yes, the transparent borders are okay to redistribute, they are literally just vanilla assets with the background removed
That's valid lol
I can’t figure out the template I was sent
@flat sluice for speak commands to continue to additional boxes (without closing), you have to use #$b# as your delimiter. (it means "next command, previous line is continued, next command"). if you really want to use plain # for this, you can try adding the literal character { to the end of the previous line ($b appends this to make it work). i've never done this and i don't recommend it
Did you get it from one of the modding wiki pages? I might be able to help
I was shown it by barley
(i also can't guarantee it will work. that character may get replaced or ignored or something. i haven't read all the code and i don't care to since my decompile of it is frightful and full of gotos to labels like IL_08a2)
Thanks so much for such a detailed answer! It is obviously not the answer I wanted to get, but I guess I don't have any other options available, don't I?
The Content Patcher documents will explain what each of the bits like "Format" and "Action" mean. https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editimage.md
Have you unpacked your game content yet? That will let you open the vanilla tool spritesheet so you can make sure yours matches it.
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!
trying to figure out where to put the xnb thingy
nvm
what should i do with my image files to make them be retextures?
oh so i should retexture the entire sprite sheet?
There's a way to replace only parts of an image
Just start with one tool for now so you can learn the whole process from start to finish.
The mod Barley shared with you is already set up for only replacing one part of a spritesheet.
i got the basic tools inventory thing done so ee
oh
m, not sure where to look at it first
Look at what first?
the tutorial
Uh, I don't remember there being a tutorial?
HUH
For which thing?
confusions
Can you send us the link to the tutorial you're using?
i think that's where our confusion is coming from
OH i was using the wrong link'
It happens, no worries!
if its editing JUST the inventory slot look what would i do
Find the file called tools.png inside the TileSheets folder and open that up in gimp.
Gimp should hopefully show you the pixel coordinates if you hover over a particular spot on the page. Use that and, if it helps, a grid (set to 16x16px) to find out the top left pixel coordinate for the axe image you want to replace.
ooo
what would i put in to use the entire sheet? i kinda wanna make an entire sprite sheet
If you want to retexture the entirety of tools.png then you wouldn't need a "ToArea" or "FromArea" field at all. You'd just have "Target": "TileSheets/tools" and "FromFile": "godpristinetools.png" (or whatever you called it).
the link i sent is an example mod that replaces one texture (duck egg). it's not a template but you are welcome ot reference it as an example
Nexus why?! It added an extra dot to my version number (1..3.0 instead of 1.3.0) and I have no idea if it'll actually update it on the file page eventually or if I need to reupload it again now. -_-
So for anyone else curious now that I've fought with it: Nexus will not update the version number on a saved file unless you also change something in the description. So that's fun.
im gonna make each set of tools a diff theme
One 🤏 last thing
I can't recall specifically when ichor brought it up, but were local tokens and dynamic tokens exclusive from each other? If not: [Content Patcher] Ignored Voidsent > CHAOS BEGIN > Data/NPCData/BaseNPCs.json > Excalibur: error reading info. Technical details: System.InvalidOperationException: Can't get values from a non-ready token string (raw value: {{ExAlts}}). at ContentPatcher.Framework.InternalExtensions.SplitValuesUnique(ITokenString tokenStr, Func`2 normalize) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\InternalExtensions.cs:line 74 at ContentPatcher.Framework.LocalContext.SetLocalValue(String name, ITokenString value, Boolean ready) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\LocalContext.cs:line 116 at ContentPatcher.Framework.PatchLoader.LoadPatch(RawContentPack rawContentPack, PatchConfig entry, LocalContext validatorPatchContext, TokenParser tokenParser, InvariantDictionary`1 inheritLocalTokens, Int32[] indexPath, LogPathBuilder path, Patch parentPatch, Action`1 logSkip) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\PatchLoader.cs:line 486.
I will double check this one later but I have a dynamic token with 9 different values and I made sure one is always valid.
I'm unfortunately on my phone right now so I can only link my git https://github.com/Aviroen/Voidsent/blob/4216d938d4592e571793cc984201105b02ee4710/[CP] Voidsent/content.json#L49
Here's what the museum looks like with all the patches I've found for museum expansions. Along with my own miniscule patches. I had to edit the patch in Make Gunther Real content pack due to it glitching but now it looks like this.
Beeg
Hey Abagaianye! Quick question, if I am using the beach map as the base map and want to include another tilesheet from a separate map, but don't want to have to reanimate and give all the tile properties to each tile, how did I export the tilesheet from the map I am not using to import it with all that info?
I remembered we discussed it briefly but I think I keep missing it in our DM
suffering casually
im making a tool retexture sheet
im hyped to finish the iridium retexture to do a diff one
That sounds like self torture but I have no idea how that works XD
I'd love to see when you're finished :))))
Did you check I was online or were you just hoping that I backread lol
Yup just click the "export tileset as" button (third one along)
oke
I just know you always be watching
jk I checked if you were online XD
Thank you ❤️ for the snappy reply
Yes please @ me if/when you post a teaser or release the mod
Goat stop pinging her
oke
Sorry for blunt am tryingf to eat melty ice cream
Sorry Susan!!!!
wooo..
You're good thanks for pointing that out who knows how long before I would haverealized
one hand tyuping
THOSE ARE AMAZING
Had to eat quickly because I am overdue to start fasting before my ultrasound
I hope everything goes well!
the other tool sets will be a cuter color palkette
I can't wait for this to be released I will be adding it to my modlist ASAP
WOOO
These emojis crack me up lol
I FINISHED THE TRASHCAN, PAN, FISHING ROD, ANDTHE HOE
GET ITTTTTT
This is the content.json
And this is the objects.json
I am heading to work but in between customers I will check discord
i finished retexturing the iridium
Line 18/19 (and similar lines)? Your brackets around {{ModID}} aren't closed
Is there a mod that tells you the best place to fish to maximize profit?
are you asking because you want to make one? if not, ask #modded-stardew instead, they're the ones who actually play the game XD
If no one has done it, I will make sure it exists
Hey now. I hang out there and I don’t really play the game as much anymore 😜
it's because you're orange 😔
what kind of mods count towards cheeto?
you just gotta make a mod
there's 3 roles, pixelsmith, contentsmith, and blacksmith
for mods involving original artwork, original content, and original C# (?) respectively
one of these days i'll get blacksmith
hh...its so much easier coding wise for me to recolor all of them
does anybody have scripting to use retextures instead of vanilla
I’m only a blacksmith rn but I think thanks to boncher I technically qualify for contentsmith
it feels like a bit of a pisstake though so I’ll wait
???
what
Someone spent a lot of time in #programmers-off-topic working on and discussing an offline tool to do that, I'd try to find the exact post but Discord search is utter garbage. Try skimming back through the history a month or two (or three). Lots of challenges, mainly it's very difficult to do in polynomial time due to the game's bizarre use of randomness in fishing distributions.
Personally I don't see much value in it, since minmaxers don't play with a ton of content addons and the most profitable vanilla fishing strategies can be condensed down to a couple of paragraphs on a wiki page. But I guess if you really want some dynamic calculation that'll work for mods, then no, I don't think the "mod version" was ever done, only some python code to do it offline.
i was sent one but im not sure what to edit\
im not gonna scroll up all the way for that
shrugs
I would start by reading the CP documentation and the Modding section of the wiki so you know how to do things yourself (especially since you want to make bigger mods in the future)
nothing good comes from blindly editing existing files
if you are only replacing vanilla textures, you can just make a CP
would this be right?
the documentation is very comprehensive and the wiki has lots of examples though so it should be plenty to go off of!
I wouldn’t replace all of tools.png if you’re only changing iridium, it will make your mod incompatible with other tool retextures
Yup that looks right for what you want to do. You will need a manifest.json as well.
im retexturing all of them slowly LOL
rn i only have two sets which might(?) be trickier specificlaly
so you are making a complete tool retexture overall
two sets of what?
tools
if i stay motivated yeah
two sets of retextured tools
🤔? so like two different pngs
i have two(?) more left to do
I'd also recommend that you use FromArea and ToArea to specifically target regions of the sheet (because you can choose to leave parts off, or add in config options to selectively change specific tools later)
well. if you really intend to make a complete overall, yeah, your cp may work, with a manifest.json as well as mentioned above
i have to do copper and iron(?)
(if you want)
Right now we are just focusing on her getting any working mod before starting to make things more complex.
fair enough!
it will make the game simply ignore the original file and use yours instead. but be aware that if you have another mod that replace tools textures as well, they may go after yours too
i dont think i use other retextures rn
i would be happy to finish the rest if i can think of a color palette to work with
if you decide to release your mod and make it compatible with other mods that also change textures, going for more detailed editimage procedures may be needed
its not rlly gopnna be compatible
more of a "i did a test you can use it" type thing
i mean i just go in with the Hue shifting and pick whatever looks good
i am not gatekeeping smthng im not happy with LOL
Yeah I'd recommend not aiming to release this
It's just for helping you figure out how to understand CP
if i do then woowie
what we are trying to point you is that most of retexture mods that just do one or two sets of something use FromArea>ToArea and Replace Patch things to make them compatible to other mods that retexture another sets of other things on the same file. that's all
i might release it purely for the sake of like seeing if it works for other people
for now you can do like that as a personal mod
if you open what on gimp? you don't specify it in the images you are uploading
you add fields on the content.json
if you refer to this link I share, it will even have an example at the end of a CP that changes only one sprite in a spritesheet
Aba's been helping a lot already and im pretty sure has got this
What do you need to export?
the edits to the script
You don't need to export those, just save your file as "content.json" inside your mod folder (make a mod folder first)
how does one do that
Which part? Make a mod folder? Go to your existing Mods folder and...make a folder. I don't know what OS you're using.
ill zip it after :D
That has zero relevance right now
You are very far away from zipping being useful for you
i am opening stardew to see if it worked
How can it have worked if you haven't made a mod folder yet? Have you made your manifest.json?
..oh
you need a structure, like a folder into your mods folder with your mod name and a content.json, a manifest.json and your .png inside it
can i ask how to make a manifest
Hello, I'm looking to get crucified and hated quickly.
I used chatGPT to update the "build endurance" mod: asdadasd
not looking for credit of course, but, it does run, and seems to function fine, but like, how garbage is it?
Personal skill level is "hmm yes, I know some of these words"
ohgodthumbnails
something like Mods>MyFirstMod> with all three inside MyFirstMod
You are not allowed to share links to mods with substantial AI generated content (as per one of the pinned messages)
chat gpt is your first problem
okay
https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide.md#readme
this might be helpful susan
I am surprised it ran at all
thats fair, thank you and apologies there, imagine me being smart enough to read (sorry!)
I am too, I tweaked it a bit while giving it the SMAPI "how to make a mod" page and the 1.6 changed effects
smapi load faster 
Yeah its fine, just saving you from the "crucified quickly" part. The channel rules around AI-gen are in the pins somewhere if you want to review, but yeah people here dont like to help with chatgpt code at all
Well, i'll adjust my question.
It's creating a max stamina buff upon waking up, and removing it when sleeping -> updating calculations -> rinse and repeat.
Generic phrase of "we'd have to see" but is that known to cause issues trying to re-apply buffs daily?
i think smthng deff happened cuz my game was running with 1 less mod before. yaay

Idk if it’s what I was wanting but atleast smthng happened!
this may help as well: https://stardewvalleywiki.com/Modding:Content_Patcher
if you don’t have a manifest, your mod won’t be loaded. If something new is loading, it’s not your mod.
that’ll be a later Susan issue then. Mighta moved the wrong folder
That should be fine
im still debating opening tiled again and making a map for my npc
i dont need more maps!
yeah i moved a random foldere
do it
see, but i dont even need a map.
if you make sure the buff is removed before being reapplied, I think it would be good
dooo itttt

I have a mod with a c# core and a CP, and now everytime I generate a new version, I have to change the version number in three places.
I know there is a way to make it so I just need to change it in one of them, but my dumb ass can't find directions... 
is there a way where you only change one of them? I thought since they’re technically separate mods you have to change both
ModManifestBuilder
<PackageReference Include="Leclair.Stardew.ModManifestBuilder" Version="2.1.0" />
would that also do the CP mod?
I made a manifest
so you have the mod folder all set up now?
Yeah I might have been the content into a folder inside it tho so should I move it just into the main one
yeap, that is the third place I need to update every time.
sorry for the ping
if your png isn’t inside your main folder, you may have to change your FromFile to match
Your mod folder should have a content.json and manifest.json in it. You can have your .png file in that same folder or you can make a subfolder called "assets" (just because that's the convention) and pop it in there. And then edit your FromFile like iro said.
Should the file stay a png?
wait, now I saw it... sorry...
So I can just add that into my project file and alter the version there? and use $version in all the other three?
Basically!
now I saw it was different I mean, because I have the CP include
It updates the version of both I think
Confused sobs cuz I have a manifest and eveything I need so idk what’s up
!log If you share the link to your log we might be able to help you read the error message
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.
Ok, looking your mod I got it now and already installed the nuget. thanks a lot!
can you send us your manifest, susan? and a screenshot of what’s in your mod folder
I may have made a spelling error
Yeah gimme a sec for smapi to load to see if the spelling was the issue
Ok smapi thank you for telling me the issue yesyes
(Proceeds to close smapi meaning I have to reopen it.)
HELP I HAVE TWO DECIDES OOEB ON DISCORD
you’re using a c# mod’s manifest rather than a cp manifest
the wiki’s modding section has an example manifest for content packs
I don’t think that’s a command. What are you trying to do?
Trying to get the bot to give me the wiki again lol
[[Modding]]
but I think the general rule of thumb is if you’re pulling something up for your own use, it’s best if it goes in #governors-mansion with the other bot “spam”
Smapi better listen this time lol
the commands has changed seems like
I was taking a peak at other mod manifests simmilar to see if maybe I did smthng wrong, and then his time it should be fine(?)
to pull up a wiki page, it’s always [[page name]] (aka, wiki link syntax)
I don’t think it works on pages inside the modding namespace though unfortunately
[[Modding:Console_commands]]
I stand corrected 
Hmm
anything after the slash will count and will function if typed correctly
so you can even link to specific sections
I can never remember the URLS exactly enough to get them through the farm computer
Smapi be telling all the wisdom
its literally telling me the issue and i fixy it lol
fingers crossed
the fact that took me several minutes to find this manifest page is somewhat concerning
Some of the pages are really hard to find, I think
couldn't find any other reference to manifests anywhere else also
in SMAPI we trust
[[Modding:Modder_Guide/APIs/Manifest]]
Somehow my map patching broke for my main NPC? I'm sifting through the code right now and I think I know what's going on, but it's most likely gonna take a while 😅
it basically takes the string inside [[]] and paste it in the end of https://stardewvalleywiki.com/
I couldn't easily find it either. no reference in the author guide or the 'for modders' in the home CP wiki page
!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.
it is there, but damn...
But it's on the author guide page!
idk if the entire log is nessasary for jsut this one issue
It is.
It is
it is x3
@royal stump hi Esca, related to you mentioning FTM can spawn bigcraftables, how exactly is that done? Based on your docs I'm thinking that it's a forage spawn with the Area restricted to the specific tile coordinate for the place I want it to spawn, and that DaysTilSpawnExpire should be set to zero. I'm not sure if I should also have MinimumSpawnsPerDay set to 1 so that it's there after the mod is installed/farmer sleeps, or if that would spawn a new one on top of it every day. Is the general spawn settings and item settings all I need or do I need to dig into the forage-specific stuff or the timing (if I want it to be permanent)?
i closed smapi but i have the text file\
yeap. what I meant is no easy reference if you are scrolling through it instead of reading it
a log is always important unless you know exactly what the issue is and how to fix it
there’s an example on the wiki too iirc
I passed through it all the times I scrolled it while looking
??
maybe it is just a my end issue
Ah I see. Yeah there's definitely no direct reference to a manifest in the contents table
!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.
Yes that was the one MaxRW shared and then I shared the CP docs one lol
i can barely even read that screenshot btw
Neither can i thats why i highlighted it
I meant a CP-specific one! I’ll find it in a bit
It means your manifest is written wrong
my experience is that, each time i'm like "oh, this experienced modder didn't provide full log but surely it'll be fine" the log had the answer and we wasted time
Oh I thought that was what MaxRW shared lol. I didn't actually open the page xD
{
"Name": "GodPristines tools",
"Author": "GodPristine",
"Version": "1.0.0",
"Description": "Retextures for gold and iridium tools",
"UniqueID": "GodPristine.tools",
"UpdateKeys": [ "N/A" ],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher",
}
I think that page is for c# manifests? I haven’t looked at it in a bit though
oh
yeap´, missed a }
{
"Name": "GodPristines tools",
"Author": "GodPristine",
"Version": "1.0.0",
"Description": "Retextures for gold and iridium tools",
"UniqueID": "GodPristine.tools",
"UpdateKeys": [ "N/A" ],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher",
}
}
OH
at the end, this is why you use a validator or a text editor that will yell at you
you opened it but didn't closed it
Looks like it has both
yup. If you used the json parser that was linked above, it would have told you this btw
im using notepad+ rn
also try to use this to share your jsons from now on
okay
parsing it would usually solve it to you, and if you don't understand, you can share the link so we can have a better view of it
specially useful when debugging long content.jsons
I’d also make the mod ID something more specific than “tools” just in case you want to make other tool mods in the future, but that’s just personal preference
XD im the type to keysmash in a temp manifest
ill probably edit it in the future if i do smthng else w/ tools
just remember that if you release it, it needs to stay the same from that point on
unsupported 2.5 format?
one can always name them "tools2" and onwards, right?? 
me with all my temp manifests being “me.test” or something lmao
what version of CP are we on
uhh, 2.5.0 i think right now?
have you updated to cp 2.5 yesterday susan?
3 am manifests I just start calling my ids smumberood.fhjfjsjfs
there was an update?
yes
yeah, new major feature too
2.5.0 in your format will bork unless you're using the latest version of CP
Poop that means I'm behind too
You should only bump the cp format version if you want the new functionality
hey ive been using 2.4.0 for everything XD
I disagree, I think using the most recent format available is usually a good thing to do
yeap, I just realized it too 
I also need to update 16 mods already since my christmas break
unless there’s a reason not to
i upgraded it just now
it is. no one sane would disagree
not that it matters in this case either way, but theoretically speaking
it is just a lazy solution for now
I meant to reply to sinz lol, sorry
still using 2.4.0 gah
(for my format)
:0
That came...extremely close to looking like you're saying SinZ isn't sane which I'm sure you didn't intend
i don't think it's even been 24 hours since it updated so it's not like you're falling behind 
2.5.0 is like a day old so I think it’s fine to be a bit behind rn 
It shouldn't be done blindly, and only after reading the changelogs as there can be breaking changes you are opting into
again, that only really applies to existing mods being upgraded, this is a new mod we’re talking about
last month someone made a content patcher mod for format 1.23. somehow
and with brand new mods, when it comes to cp, it’s best to use the most recent version
For brand new mods sure
both are kinda right, and irocendar take doesn't goes totally against SinZ take because the use of usually
i think that 1.23 is because people ask chat gpt and chat gpt has no idea what version we're on
we tracked it down to some tutorials! I edited one from the modding wiki, but there are a few on some blogs that have stayed that way
oh nice
I think lemurkat has an old tutorial on their blog with 1.23 in it
or at least, ive seen it do that. maybe it's because of the old tutorials?
for me, chatgpt spat out something more recent than 1.23, but I think we found it switched between a couple versions
if anyone would generally disagree that using the most recent format available is usually a good thing to do, I would be inclined to doubt the sanity of who said it though
the joy of fixing content patcher files by deleting the old one
Using the most recent format, and just changing the version number aren't the same
what CP version does miss coriel's npc creator use 
I mean, you technically can do it with dll's too...
The amount of issues I've seen over the years from people having an ancient content pack that barely still works and then they set it on fire by bumping the version without understanding.
And it's usually end users breaking it rather than the mod author
That or users wanting their mods to work again by messing around in the manifest.json
atp I just beg people not to use npc creators tbh
well, sometimes this tinkerings works
honestly there are some ancient content packs that im sure i could just. rewrite

but who has time for that...
and yeah, i see lot of mod users try and use a hammer on mods thinking "so i just need to update the number" without knowing what anything means
most problems with rewriting ancient CPs is that we don't have permission to upload the updated version with the original assets
i was just thinking for my own sake
I usually rewrite ancient CPs that I want to use for my own personal use though
I CAN SENSE VICTORY RAPIDLY APPROACHING >:D
or tinker with mods assets to make my own personal CPs
i had like. a pasted together content pack which was just meant to be converted xnb mods but the json is so scrambled i hate looking at it, yet it works 
<antecipation bongo cat gif here> "tan-tan-tan-tan..."

were getting close :D
we are all rooting for you, Susan
if it works ill do oc specific personal toolsets for myself
if it doesn't, we will keep tinkering with it until it do
you got too far to give up now
is it capital sensitive for image files?
yet on doing personal CPs, I will yet tinker with Seasonal Rasmodia for SVE to make a vanilla version for me just because
unless I migrate to SVE before I have the time
which it does so im troubleshooting that myself
capitals included
it does count it as a mod tho so theres that!
smapi please 🙏
dont do this to me smapi D:
oh my gopd
OH MTY GOD
IOT WORKS
IT WORKED
🎆
IT WORKED IT WORKED
ah, i dont use slingshots, ever XD
im gonna keep working on the scyth
uhh
where is the scyth in the tool sprite sheet
scythe is in weapons
there’s a chance it’s in a different sprite sheet
weapons
prometheus and Forsy are right, they are in weapons
imma just put it on nexus so they can use it
how exactly do you rearrange the crafting recipes? Moveentries action just tells me that data/craftingrecipes isn't an ordered list, but, as far as i can tell, the order in there is how the crafting menu orders them
why are you looking to rearrange them? 🤔
adding a new one and i want it next to existing similar machines
specifically: a machine that creates a tackle each day, same way the worm bins work, and i'd like it next to the worm bin recipes
remember that once it’s on nexus, you need the mod ID to stay the same, so if you want to change it, do it now
no it's not XD
nexus takes a while
and sometimes can be weird with showing "not available" when it is
do you have your code? I havent tried to move crafting entries before


