#making-mods-general
1 messages Β· Page 374 of 1
i noticed when u try to enter the farm it warps you out of bounds since its so small
you can change the entry points
Oh yes, I see. Thank you!
ive got another dumb question sorry. so for some reason my custom npc is not spawning in the location id like him to <:3? he always spawns @ the railroad. im pretty sure my json is valid because i checked it multiple times with jsonlint and notepad++ plugins and such, and smapi doesnt spit up errors at me when i load the game but he just does not want to cooperate?
the display name for the custom location is 'Eni_Map" and i tried it with the mod id as a prefix, same result. eek
is your location named shmegaman.Enigma_Eni_Map or just Eni_Map
I presume the former
if you changed the Home make sure to sleep one day for it to take
oh that could be it ...
also don't use CustomLocations, it's deprecated
I believe CustomLocations will also prepend Custom_ to your location name
[[Modding:Locations]]
[[Modding:Location_data]]
o dear
okay ... thank you for the help πββοΈ
(the new method is simpler and more capable than CustomLocations, it's a straight upgrade and more in-line with your usual CP patches βοΈ )
sigh im expecting my map to blow up in my face
good luck 
Hi bluebs!
how are you always there to notice when i half-write and delete a message
atra is always watching
unbelievable powers
@teal bridge hello! do you know if the mod Reciprocate has any big issues with Pen Pals? sometimes when i load up a save, the reciprocated gifts no longer spawn on me like they did in my last game session. i saw your mod page said you were okay with pings here, sorry if this is the wrong thread.
60 tiles to the right, and 40 tiles below from the top-left corner, facing downwards (2)
oh in town specifically
mod is working but for some reason there are 2 impassable tiles in the bottom right corner to the farmhouse that make it impossible to reach the mailbox
is that the spot behing the cc?
check buildings layer
for invisible tiles
(requires content patcher to run)
Cc?
apparently sitting beside a bush
community center
if you're doing any sort of character/map modding, i'd suggest you unpack the game content and explore in Tiled yourself
I'm doing an npc
you do, in fact, have invisible Buildings tiles ([16]) on the bottom-right area of your farmhouse entry
"MapName": "Town",
"TileX": 60,
"TileY": 40,
"Direction": "Down"
?
Down
Im just following a guide

ill walk it rq
i have no idea what the context or your goal is βοΈ
what guide is this?
uhh i tried to add map strings and my game just decided to freeze and not let me click anything... did i miss something.
https://smapi.io/json/content-patcher/1ae4f23844a04155b379a9d5a94875b1
here's my default.json just in case? https://smapi.io/json/i18n/7a287330819242729be76a6b6da692c6
I mean 60 40 down
What does down means

presumably the facing direction of the character after using the warp
if this is warp data? i have no idea what i'm looking at
but really what guide are you referring to
its a map coord
I'm asking because I don't recognize that syntax
does town have...up and down?
Idk
up/down/left/right is for the character, not the location. please explain what you're doing lol
...
we may never know....
so...
post a log shrimpy π¦
I can't remember...do you need to load an empty.json for this to work? Also yes, log is needed 
probably also your map file
oh
yeah
that's my fault
i closed the game and tweaked something so i was about to open it again
(is this a krobus reference)
you don't need to load a blank.json, it's already targeting the existing asset Strings/StringsFromMaps
map message actions load from that asset by default
Nod nod. Thank you, I'm not very knowledgeable on this subject so I'm gonna lurk now 
uhh in the meantime you wany my map? do i just send the tmx in here
oh i might be wrong but iirc, you dont need quotation marks for the message key?
lemme double check
nvm
disregard that
you might need multiple tile data rectangles even for the same thing, im not sure but that's how vanilla does it
it's fine to have multi-tile objects, so long as they conform to the grid
ah okay
Log Info: SMAPI 4.1.10 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 24 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
i was confused because vanilla had multiple
it's just saying "no translation" when i click on a tile that i stuck a map string on
that's just what happens when it's exported, since all tiledata is applied to the individual tiles ingame
exporting tiles won't rebuild larger tiledata objects
what does a patch export strings/stringsfrommaps show? or a patch summary?
how's your i18n set up? the i18n syntax seems correct at first glance
i dont see CP editing StringsFromMaps in that log
.. did you include your strings patch?
"LogName": "Intro event CTs",
"Action": "EditData",
"Target": "Characters/Dialogue/Lewis, Characters/Dialogue/Wizard, Characters/Dialogue/Marnie, Characters/Dialogue/Linus",
"Entries": {
"{{ModId}}_Arrival": "{{i18n:{{ModId}}_Arrival.{{TargetWithoutPath}}.{{Random:Neutral,Fem,Masc}}}}"
}
},```
 if i have this set up in this way, will the randomization choose the same result for all targets? would i need to patch separately to achieve that?
"Action": "Include",
"FromFile": "Data/Strings.json, Data/Locations.json"
},
```
its
it should be?
yes they will, but you can put |key={{TargetWithoutPath}} to give each NPC its own RNG seed
patch summary and export π
ooh cool thank you
{{Random: Neutral, Fem, Masc |key={{TargetWithoutPath}} }}
Can someone help me with my mod Iβm trying to add a new town but I need help with the content.json
Did you make the tmx?
Yes?
patch summarized https://smapi.io/log/43446626b8fa4ba08f4f3b1d099c0420
Log Info: SMAPI 4.1.10 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 24 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
sure
it would let me erase them
if you actually clicked with the Magic Wand tool, it'd be limiting your changes to just the selected tiles, so if you clicked something other than the invisible tiles you wouldn't be able to erase those
try using the Same Tile tool (S), selecting the invisible tiles, and then pressing Delete
aint that so
so what's your mod folder structure look like? clearly the i18n itself isn't being applied
wuh
now i don't know the nested-folder style of i18n
are your folders in the i18n folder?
yes
but i feel like this might not be right lol
dun do that
you cannot nest inside a nest
one folder deep only
so i18n/default/strings_maps.json
Oh you know what
im just dumb
π
i managed to confuse myself bc i knew you could slap things inside a whole folder called default.json and name your actual files whatever, but i uh. put them inside yet another folder.
its a relatively newly allowed i18n format so you are forgiven this once
however if you ever make the mistake again your cheeto is truly dusted /j
π
Is there a good map modding tutorial for beginners?
Specifically focused on the coding part?
i found this tutorial super helpful! https://stardewmodding.wiki.gg/wiki/Tutorial:_Map_Patches_and_Warps
Tiled is understandably one of the most unintuitive/intimidating programs to use when making maps or patches for your mod. This tutorial aims to break it down into very simple steps with pictures! This tutorial will use the example of making an NPC house to teach you how to make a map patch (for adding a house to an existing map) and write the J...
THANK YOU SO MUCH iβve spent my entire Sunday trying to find a good tutorial
:0 it works (interior map)
...and then the mistake
... π€ is there no way to flip doors
Ahoy, I've got a couple questions about patch priority 
- There's no way to override another mod's Load action with my own Load if they left it on the default Exclusive priority, correct?
- If I need to override another mod's EditData action (specifically to a specific location on a sprite sheet), and they have theirs set to update OnLocationChange, do I also need to put OnLocationChange on mine or will the patches obey load order without it?
- nop Load exclusive default sucks for that reason
- naw your change will just be forced to happen too
my sleepy brain nearly typed "do exclusive exclusive priority" 
let's say we have some abigail sprite mod and 2 different mods editing the Characters/Abigail asset
Okay, thanks... I guess the only way to override an Exclusive Load is directly editing their json, then... which could get messy 
if one mod that makes abigail hair green when i enter CC while the other just changes her jacket color
smapi still has to apply the jacket color change again too
cus it doesn't do anything about partial edits of asset
depending on the usecase sometimes you can bonk the data referencing the asset instead
Oh? I'm unfamiliar with this terminology "bonk" 
e.g. change abigail's TextureName in Data/Characters to MyModSpecial.Abigail so that you get Characters/MyModSpecial.Abigail texture loaded
you will have to elaborate on the usecase though, sometimes you just cant
and sometimes its bad idea for config reasons
Ah, I'm reasonably sure I can't do that because my change is just cosmetic at the end of the day (but one that requires horizontal sheet extension which is only possible via Load) and all the actual mod code still exists in the parent mod
So if I changed the asset name all the other code referring to that asset would need to be reproduced on my end directed to the new asset and that is like several times more complicated
could you merge the two into a content pack? i know thats a thing in other game modding, like skyrim or fallout but im really new to getting into the grit of modded SD
You can but itβs often just as much or more work than editing them each
If the edit to each of them is as simple as changing the load priority in particular whereas merging would involve a lot of art fussing
ahh yeah that makes sense. i, too, would prefer editing a line or two over art fussing.
does something like Wyre Bash or LOOT exist for stardew?
that depends, what are those? 
tools to check load order, comparability, and edit files. make bached packs to ease load order, clean up mods/files with deleted meshes etc
compatability with eachother, not with current game mode
Those are utilities for Skyrim modding, one is capable of mashing together otherwise-conflicting patch changes to some types of data and the other is a masterlist of load orders to resolve conflicting changes to the same records
But the key difference is that there's nothing like Content Patcher's default Exclusive priority there, load order is king when it comes to conflict resolution
Content Patcher kinda is this tbh
I don't think these are really as possible in stardew beyond content patcher? if you have two mods both saying "we want these (different) images to be used" at the same priority level, there isn't really a way to combine them other than very specific cases
It's just happening at runtime instead with some limitations as a result
I'm just kinda mystified why Load still defaults to Exclusive 
yes load order is really what i want to be able to manage without doing it one by one!
Me too 
But i think it's a backwards compat decision
Since all Load were exclusive pre cp 2.0
Mm, perhaps, but then conflict resolution still exists in the form of load orders there
mod load order isn't as sensitive in stardew as it is in some other games, and theoretically with patch priorities isn't really relevant either, but it's still tricky
idk how a tool would help though tbh
Meanwhile the documentation has suggested not leaving it on default for a while, outright saying it can cause compatibility issues iirc
But yeah if u can suggest to original author to change load priority that would solve a number of things
Ig it also depends on why need horizontal extend
It has open upload permissions so I can just upload the altered json itself but I'm gonna have to be vigilant about updating that file the moment it receives any updates 
thats fair, with what ive been learning today it seems those tools aren't quite compatible with the coding of this game. and really i just don't want to have to peruse a list thats way longer than it has any right to be(158) for load order 
There's people out there in #modded-stardew with 1000+ mods
Most people edit manifests to change load order
what i aspire to be
Adding a false dependency usually sorts it out
Many mods are only add new
!loadorder
When two mods edit the same dialogue or images, whichever edit is applied last "wins" and is the one you see in the game.
If the mods don't set edit priorities (which most don't), that order is mainly determined by the order the mods were loaded by SMAPI. You can change that mod load order to influence the edit order.
So u only have to deal with load order if u were using several mods that edit same target for whatever reason
One example is way back pelican town + recolors
Those r both targeting tilesheets
im using two that involve gifting, so its not targeting a tile, but i do want to change load order to see if it fixes an issue that's not an error necessarily. i will try this, thank you π
If u need detailed help feel free to post in #1272025932932055121
thank you! i didn't want to go there till i knew what my issue was and you have set me on the right path ^.^
hii, i'm a bit confused on the one-time dialogue token, mostly on the <letter_id> the wiki includes in its usage - will i need it in the context of gifting a certain item for the first time?
i've looked back and found this message (#making-mods-general message) when using it for gifting dialogues, and i'm a bit confused :<
the letter ID in$1? just put something in there, doesn't matter what, but make sure it's unique
{{ModId}}_CoolGalFirstTimeReceiveClay
ohhh, i see now, thank you very much c:
Does SMAPI still only work on .NET 6? Or can I use .NET 8?
SDV is (still) NET 6 only
you can target NET 6 and use newer syntax
Do u want a showcase?
someone else already put it there but thank you 
is there a way to see a log of executions that do not show up in SMAPI? i was looking at the mod Debug Mode but it seems item and ease of movement/time related as opposed to action
log of executions?
we may need specific examples
like SMAPI shows when most mods or even the game does something, like loading an asset or appended an item, even gifting an item. but for somethings it doesnt show anything
!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.
those messages are all just voluntarily generated by the game/SMAPI/C# mods, so there's no way to just force more of it to happen
that said, some of them display more log messages in verbose mode; you can open Stardew Valley\smapi-internal\config.json and edit the "VerboseLogging" setting to enable that
the full log would have trace level stuff from various mods
worth checking that first
(oh, right, that's probably more helpful if you're not already checking the log file
)
do i make the extra file for the settings inside the smapi-internal folder or the mods folder?
i love this dicord. I have been googling and using the wiki to try and figure all these things out and you all point me in the right direction so fast β€οΈ
I'd recommend doing what chu linked first, but if you've installed SMAPI (on PC at least), there should already be a config text file like this
it has niche settings like verbose logs, displaying trace-level logs in the console, etc
i can acess the raw one and i made the parsed one, is the raw what you meant chu? or is there another one?
ohhhh i see the trace button that adds that to the parsed one now, nice
thanks
, i got the issue resolved
Hey, sorry if this is a dumb question - if I want to create a certain variable for each player, would the easiest way be to make an array of the variable and tie it to the player's id, or is there a way to append the variable to the player object itself?
@frosty hull hello do you know if ShopMenu.ShopCachedTheme exists on the phone (it's a class)
You are in c# i assume? Put it on player modData
Yep! Okay, gotcha! Thank you!
Hello, i have check it, but not found anything π
Oof ok
On PC this class caches ShopThemeData
It's used for qigemshop and lostitemshop
Does that exist at least?
left: PC, right: Android
How does qigemshop work on phone then 

for ref it look like this on PC
the special theme is through shopthemedata which should be somewhere in gamedata dll
mystery
well what ill do is just copy the class from base game 
this is for my mod livestock bazaar which reused ShopCachedTheme for stuff
can someone point me to a guide for making custom npcs?
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!
thank you :D
good luck
i get the feeling i'm gonna be working on this for a while until i figure it out, but i want a project π
Woah, it worked! :0
Gotta check what I did wrong the first time then, lol, thanks!

Do you mind if I use this to make a CP version with credit?
go ahead
Thank you! :D
i declare this officially MIT licensed
Thanks! 
Any advice for making furniture items?
I want to start doing that but idk where to exactly start
Find a mod that was published after March 2024 which adds new furniture items via CP and look through its files to see how to do it. Use this page for reference.
do you want to add furniture via CP, or just with AT? π€
Content patcher
then yeah, what aba said is where you'd want to start
It also looks like we have a tutorial! I have not vetted it for accuracy but it was written for 1.6 so it should be good: https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Custom_Furniture_With_CP
https://www.nexusmods.com/stardewvalley/mods/26505 this one can be recent enough
(i made it)
(I did not give AT as an option because I have an agenda to remove AT furniture from the world xD)
Thanks guys
agreed, AT is for having 5 color schemes for the same furniture item, not for making a chair into a sink
Yes it is great for alternate palettes for the same piece of furniture
(Sorry chu, but it is!)
as a happy home designer person, its wayyyyyy better than scrolling thru a dozen alternate palettes of the EXACT SAME ITEM in the main list π
If a cutscene has no preconditions, will it always play or never play?? Wondering how to set up a cutscene that is started not by entering the location
i believe cutscene triggering in classic sense need a precondition
but i'm unsure
the best way would be to have something like G false
which will make the precondition always not working, letting you free to trigger by other means
in current version if its an event id with a number then it will always play
if its a string id then it needs the trailing / after the event id, but don't need to actually have any preconditions and it'll always play
if it is a string id and it doesn't have a / at all, then it wont play and a different source is required to start it
in an upcoming stardew version then numbered events lose that exception and for them to auto-play they would also need a /
I have a bunch of events that I'm midway through writing that I keep triggering when testing other stuff because they start simply by entering the location. They are string IDs with a trailing forward slash as SinZ says.
I hope I remember to actually add preconditions before I release the mod lol
i would say that you can always put precondition like G false but then
you may forgot the events existence entirely
and 3 months later be "why didn't i see this event???"
if you want it to delibrately not start then don't give it preconditions at all and don't have the /
and it'll be a manual script
So if I have a building tile data Action: PlayEvent I should instead use a string ID? I'll have to look those up π€
you should use string id anyway
A string ID is literally just a word rather than numbers. Something like {{ModId}}_ADescriptiveName. (Always use your mod's ID in the ID as a prefix, as with all IDs in the game. {{ModId}} is a token that is automatically replaced with your mod's ID as it is in the manifest.)
Oh! thats what it is! I was just putting that in without knowing what it was called lol
Just out of curiosity how do number ids work? Like how were those id decided upon?
Nexus mod ID and hope, I think
people generally just used their nexus mod ID as the first 4 digits, then another 4 digits from 0-1000
ahh then the 0-1000 is just whatever works for the modder?
back in the olden days ppl tried their best to avoid conflicts here yes
no one ever made a json assets for events right
must have been a bit of a nightmare
nowadays you can just call your event sebby and immediately collide with 100 others βοΈ
blueberry entering a βοΈ phase after the
and π eras
overall the conflicts were rare i believe
the convention mostly worked
thanks have been wondering that for a while.
so with the vanilla events was there a convention ?
if anything
took over from βοΈ π» π
π π
he is my sun and my moon and my stars
in what sense?
well there was no nexusmods id for the start
yeah but
i'm pretty sure vanilla events generally just clocked up from 1
with some outliers, of course
do you want to know if CA followed rules of sort?
yeah
what surprises me most about vanilla events is abby's Journey of the Prairie King event is number 1
sdv nexus mods id is 0 obviously
Hmm okay well new problem has arised then. If to have the curscene only accesible via tile action (ie removing all / after ID and having a playEvent on the tile) then I can't have ANY preconditions for the cutscene. Like the cutscne plays after interacting with the tile but then checks if you have 1 wood in your inventory and if not won't play π€
which means it's entirely possible that CA seriously wrote JOTPK before most of the game
if true, priorities
its named abbygame
ha interesting history
so yea the event was first
I need to one day beat jotpk ;-;
i mean if you install calico desert bus you can have it replace jotpk. it still counts if you beat it 
just depends if you find it easier to beat JOTPK or drive a bus for 8 hours
there are ways to do that
let me a min to finish a dialogue then i'll search an example
Oh thank you so much!
I think id rather the bus tbh
I feel like the desert isn't 8hr away is it
i mean if it was just 5 minutes away wouldn't emily go there more often than never
"Lumisteria.MtVapius_Faycombe_FairyStatue/Tile 15 7/t 800 2000": "Plums/18 6/farmer 15 7 0 HeliaDiamantiVMV 13 22 0/skippable/
move HeliaDiamantiVMV 0 -6 0/pause 200/textAboveHead HeliaDiamantiVMV \"{{i18n: FairyStatueOverheadHelia01}}\"/faceDirection farmer 2/move HeliaDiamantiVMV 1 0 0/move HeliaDiamantiVMV 0 -5 0/
speak HeliaDiamantiVMV \"{{i18n: FairyStatueHelia01}}\"/pause 200/speak HeliaDiamantiVMV \"{{i18n: FairyStatueHelia02}}\"/pause 300/
speak HeliaDiamantiVMV \"{{i18n: FairyStatueHelia03}}\"/pause 300/faceDirection farmer 0/move HeliaDiamantiVMV -1 0 2/move HeliaDiamantiVMV 0 5 2/
end",```
AND
it took 8 years for the whole town to go there for a festival smh
i have PlayEvent Lumisteria.MtVapius_Faycombe_FairyStatue true true as a tiledata on back layer
both are important
Ah so the event starts when you stand on the tile? :0
yes
I didn't consider thattttt!
and the preconditions ensure it will trigger only by this way (specific tile) and other preconditions (here, the hours)
there's one to click on a tile too, if you don't want the walk on
So I can have that tile be the one you stand on to interact with the tile with the item and BAM yes OKAY !! This is groundbreaking for me thank you!
the wiki has some details so don't hesitate to search for stuff like "tile" on the event page, and "playevent" on the map property page
to see if the arguments at the end (true true) need to be different for you
Thank you! I'll go play around now :0
have fun
Does anyone know if "Summit" is a valid value for "EndSlideShow" when creating a custom NPC? My co-author of the mod says "Summit" works fine for the latest version of CP, but I keep getting yellow error of "failed converting entry" when I use it. When I change Summit into MainGroup, the yellow error disappears. I checked the modding wiki and only found Hidden/TrailingGroup/MainGroup, but no mention of Summit.
only those 3 values are valid, and i'm not sure what a Summit value would do given there's only one endslideshow
Your co-author perhaps has been missing the warning in the log about it?
what a shiny tag aba 
I know! I don't even know how I got it! I haven't been particularly active here the last couple of weeks because of being busy IRL.
I just asked them and they say they hadn't tested it actually and it's a solution offered by their friend.π
I'll use the MainGroup then, tyvm!
is it possible to give a character different dialogue on a stormy day than a rainy day? say i want to make them comment on the thunder
sure, on a secondDialogue/rainypatch you'd just use a When entry for the Weather token, checking for a value of Storm
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#Weather
Both CP and GSQs can check for storm
So you could possibly even do the check inside your existing rainy dialogue using $query WEATHER Here Storm
i'll probably come back to this once i'm ready to put it all in game (god knows i'll definitely mess it up lol)
good to know it's possible though
a simple normal/rain/storm dialogue patch might look something like this:
https://smapi.io/json/content-patcher/f662ee512dea4cdbad64bf23cc69a782
you can make it as simple or as complex as you like from there
Trying to add an object. I've followed the tutorial and looked at some files.
My content.json has an include fromfile to this file
https://smapi.io/json/content-patcher/3795fe06a79940a3ad03fdac70d3e54c
Problem is my objects aren't working I dont think. I player_add Shmoky.GP_Ticket, and I even try just player_add Ticket. But neither works... Wondering if its how I'm doing my objects :////
Looks correct at first glance, but Iβd try checking whether your items actually exist in-game. Have you tried, for example, spawning them using CJB? Alternatively, does your log say anything?
item definition seems fine, it shows up ingame with a quick test mod
it's possible you were using player_add incorrectly?```diff
player_add ticket
-[Console Commands] There's no item with the qualified ID ticket.
player_add (O)Ticket
-[Console Commands] There's no item with the qualified ID (O)Ticket.
player_add (O)Shmoky.GP_Ticket
+[Console Commands] OK, added Ticket (ID: (O)Shmoky.GP_Ticket) to your inventory.
Ah that might be it yes!
if you're not familiar, qualified IDs include the item type code in parentheses, e.g. (O) for objects and rings, (S) for shirts, ..
alternatively, you can use debug f returnticket, short for debug fuzzyitemsearch, to search for loose matches
alternatively again, just install CJB Item Spawner hahah
Yes there they are haha!
In Monday mayhem, every time debug fin gave me a clothing item I didnt expect, I had to wear it
Oh! I did wonder what the (O) meant and object makes sense. I thought it was the quantity and was confused why it was and O and not zero
also you should change the Name fields to be identical to the item id
Anybody else getting bug reports on nexus that look written by AIs? I assume by non-English speakers, but the AI isn't able to translate back any meaningful information so it's just really frustrating
Gotta redo those sprites now eww
true, it's weird having abby peeping over the spawn box
Trinket 
you've seen spenny. now get ready for babby
There is a character in kpop demon hunter named Abby just because he has abs
Well his name actually is Abs. "Abby" is his nickname. π€
(it shouldn't be needed however?)
(even if it's technically not needed, since the item still loads, it's still expected imo. especially with a non-unique name like Ticket)
Okay, onto the next problem (I swear I run into them too often)
Location https://smapi.io/json/content-patcher/87c76003bf24487d92de122a7068b7b7
Event https://smapi.io/json/content-patcher/eea322f116294c479e94edff17382fbb
This event won't load at all in Prairie Station. The location works perfectly fine, and when I change the Data/Events to Railroad instead of {{ModID}}_PrairieStation it works perfectly as it should. I have switched it over to Shmoky.GP_PrairieStation also and that didn't work... I swear that just is the location but alas apparently not π
i mean, it is some expectation somewhere that names are to be unique and matching id?
oh also playSound and playMusic dont like trainLoop for some reason in cutscenes
i am not remembering any specific convention about names themselves, only id
did you load an empty json first
π« even events have to be blank loaded?? Well that solves that haha! Thank you
Rule of thumb is if you are introducing a brand new "asset", you'd need to Load it first before you could Edit it.
OHHH!! Makes sense! Gotta do that from now on thennn
So blank load, schedules, dialogue and events in new locations
did you see a command console pop up when you run the game
as a separate window
you probably missed the launch config step when installing SMAPI
I wonder if it's possible to mod starter value to be like harvest Moon back to nature
vs code dev spotted
I'd lock in to .NET dev if I could set up an environment which doesnt require bloating my main pc with vs code 22, Rider is an option but I don't like doing 2 IDEs
what are the differences between vs code for .NET and something like Rider or VS code 22(purple one)?
is your mod a DLL mod or a content mod
(also that's not what I was referring to)
(the launch option thing)
did you write json
just unzip your debug/net6/modname.zip, and move the folder to your mods folder
NVM THIS IS FOR MODS AS IN C# WRITTEN MODS
@finite willow You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
then it's a content mod
they're not making a dll mod
yeah mb. sorry
you can get stuff like extra npcs and items using jsons those are called content pack. On the other hand there's also the way to tinker around actual game code using c# with class libraries and the smapi library
your content patcher unique ID is incorrect
ContentPackFor needs to use the unique ID of Content Patcher, don't add your name to it
You only add your name to the unique ID of your mod (so the top level UniqueID field). Anything under another field, like ContentPackFor or Dependencies, is referencing another mod's uniqueID and has to match exactly so that the code knows what mods to look for.
Yes, Pathoschild.ContentPatcher is what you put always for content pack mods
That is the uniqueID of the Content Patcher mod.
Is that the official wiki?
Looks like the getting started/creating mods page on the official wiki
I'm at work so I can't do VC, but it looks like you're working on an NPC? Have you seen the tutorial?
!npc
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!
Slight confusion because Pathos username on example and also on content patcher
Dang. If it was the modding wiki I'd go in and edit that to be a little clearer.
Yeah, the wiki is still needed for the very first steps, so clearing that up might be helpful
Gotcha
Also to save yourself future pain, it's "Elliott" in the code, two Ts
That gets me every time
Fair enough, though if you can make a retexture, you can make a new NPC
Replacers tend not to be popular but if this is a personal edit or you're not worried about popularity, go for it.
Is this your first time installing mods in general? In that case, Iβd recommend giving the starter guide a read. You just throw the whole CP folder into your mod folder.
I'm impressed and also scared you're jumping into making mods before even installing a single mod and playing with it
!gs I recommend following this guide, pick a retexture mod on Nexus and make it show up in game before doing anything else
If you would like a guide to setting up mods for Stardew Valley, check out the getting started guide! https://stardewvalleywiki.com/Modding:Player_Guide
It will show if you haven't added any patches to your mod, yes
Content patcher assumes that you're using it to patch content, so when you're not patching content it yells at you :P
Okay why on earth isn't trainLoop playing?? Does it not play for cutscenes??
https://smapi.io/json/content-patcher/074c6fca507341e28a7815b02318ab92
such a sweet comment was left on one of my cats but idk how to do this how do I do this?
I'd go look at one of the mods that adds pets as a new animal- skellady's raccoon mod is one.
(See Modding:Pets on the wiki for the format. It doesn't have an example currently though, so looking at an existing mod would probably still help.)
Hello, if i edit/recolour a furniture catalogue but also want to add new items there, is it possible? There is still space on the spritesheet.
Its not advised to add to vanilla tilesheet
(Custom furniture should have their own texture to avoid conflicts with other mods or future game updates; see Modding:Furniture for more info.)
Its not really more difficult to add furniture with a custom tilesheet
Editing image to recoloring is fine
all right, ty
some fields are optional if both images are same size if i remember well
try finding a small mod doing something similar and see how it's done
a basic portrait replacement
Same over here (except I'm playing with mods and even had a look at some files already- πππΌ)
sometimes SMAPI just gets stuck or thinks its waiting for input or something. i usually try a Ctrl + C and sometimes it gets it going again. sometimes it also just closes SMAPI. either way its not bc of your mod list or anything.
try not clicking the SMAPI window at all while its launching
Ctrl + c is the console shortcut for "kill this thing right now"
I thought we had a command for the smapi select thing
sometimes the "thing" is whatever task interrupted it and not the entirety of SMAPI itself. i have used this many times. the success rate is not great but not terrible
Does it say "select" in the window title anywhere?
!mapmaking
If you want to make mods that add or edit maps:
-
Use Tiled to edit .tmx or .tbin files.
-
Refer to the Maps wiki page for details on how maps work in Stardew Valley.
-
Content Patcher allows you to create custom locations through editing Data/Locations
-
Vanilla Maps can be edited via Content Patcher as well: EditMap
you donβt need to censor your windows version number, itβs okay
try clicking on the black window and clicking enter?
try running without Cauthen then
and see if that works
does anyone happen to know if its possible to have Central Station tourists that have portraits? this is probably a question for pathos himself but... figured id ask in general first 
i shall investigate
Jinu in the Casino is one of their mods that lists BETAS as an optional dependency for central station portraits
Hey, does anyone know if it's possible to add another type of cow or chicken to the AlternatePurchaseTypes of the existing cows or chickens? I really thought you'd just be able to make a new, unpurchasable animal and then add it to the AlternatePurchaseTypes so it could be added to the rotation but for the life of me I can't get it to work.
you totally can, but have you considered making it a skin instead
um, can someone help me debug this
my event didnt explode (which was unexpected) but my map patch did. https://smapi.io/log/cdde18359f9040f29bea252ee8834b0d
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on macOS Unix 15.5.0, with 14 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
empty TileData somewhere
ah okay
if you add a new subanimal you have to duplicate all the fields, including product, and it won't be compatible with mods that edit them
yup you're right! thanks button
Including product? Does the game have an internal exception for how the Brown Chickens make Brown Eggs?
no, what I mean is you have to copy brown eggs to your custom chickens as well
while with custom skins you don't have to worry
If I wanted to make, say a Purple Chicken that lays Purple Eggs but can show up when I just purchase a chicken, is that possible?
if you're adding a new animal with new product then yeah that's totally how it works (AlternatePurchaseTypes)
(I just have a skin agendaβ’ and try to redirect people to using that if they just want to reskin an animal)
Skins are great, don't get me wrong. But at this point I'm just trying to figure out what all the options are.
anyway if you need help with your code post what you have
(also tbh from a player perspective I never liked the alt purchase system, just let me buy the blue chickens directly damnit)
"Action": "EditData",
"Target": "Data/FarmAnimals",
"TargetField": [ "White Cow", "AlternatePurchaseTypes" ],
"Entries": {
"HighlandCow":
{
"Id": "Highland",
"Condition": "RANDOM 0.9",
"AnimalIds": [ "Highland Cow" ]
}
},
},```
This is what I've got to just try and add my Highland Cow to the Cow rotation, but it won't show up no matter what I do here
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 3 C# mods and 0 content packs.
the problem is that AnimalPurchaseTypes pick the first entry in the list that matches
your entry is after the vanilla Condition-less entry, so it never matches
you can use MoveEntries to move your entry to the top, and this will make it so that whenever the player buys a cow 90% of the time they get your highland cow
That's why Blue Chickens are first, got it
the better solution is probably to targetfield deeper and edit the default entry to add your cow
Can I just add "AnimalIds" to the Targetfield?
you also need the id of the default vanilla entry
If the game doesn't provide a name, is it just "Default"?
it does have a name, and it's "Default"
Okay, awesome
What goes under that, is it "Entries"?
I haven't figured out how to edit existing models like this before
on my phone so cant write it out but you can scroll down to the Caviar example: https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_New_Machines_(Or_New_Rules_To_Existing_Machines)#Use_TargetField_to_perform_targeted_edits
what does it mean when your mod is in moderation review?
most likely that you accidentally put a zip inside a zip and now its triggering the virus check
I don't think that is what happened (it said a person put it in review) but if the page is viewable to other people does that mean its no longer in review or can it still be in review?
In review or in moderation?
moderation review
the moderator shouldve attached a message
that tells you why it was put under moderation
am I allowed to show the screenshot of the notification?
idk but feel free to dm me
mine was put under review a couple weeks ago so im curious xd
okay
you should be allowed to put the screenshot I think?
Quick question...
Does anyone have an example of GitHub actions CI for their mod? I got pretty far on my own, but I can't find a way to make ModBuildConfig skip the search for my game installation.
Is the game actually a dependency for building?
dotnet build --no-restore -p:ContinuousIntegrationBuild=true -p:EnableModDeploy=false -p:EnableModZip=false -p:EnableGameDebugging=false -p:BundleExtraAssemblies=false -p:GamePath=/placeholder/game/path -c "Debug"
I think dh did some stuff to do with github actions? @blissful panther
The game is a dependency for building yes
I know there was talk about making reference assemblies
Makes sense. Is there a list of which dlls are needed?
I need some assistance with my map mod I followed directions on how to make it but every time I try loading it into Stardew Valley content patcher gives this error
Could you upload your log instead of a screenshot? Just so it's easier for us to read :3
!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.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 12 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
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.
you should upload it and share the link same as you did with the log
all of your patches should be inside your Changes field between the [ and the ]
not just copied and pasted at the end of your json
OH
the error is bc the } on line 5 was signalising the end of your json, but then there was more stuff after it
Thank you
I've been having some issues with this mod I've been editing; it's been doing some funky stuff that I don't understand. I went to validate the JSON and it did tell me there was an issue- but I don't understand what the issue is.
AH! i see, thank you. And, I'm not certain about this, but I believe for whatever reason the code is ONLY using lines with _(character name) at the end.
I don't know what's up with that.
this looks like it's just an i18n file, it doesnt matter that the key name is, only how you're using them
what's your dialogue CP patch
Do you mean the error codes I'm recieving? Sorry, I'm a bit new at this. I know you're talking about content patcher.
what Selph means is that the game isnt the one using any of the lines here. the author of the original mod used them in specific places
simply adding more lines to this file wont do anything on its own
and whether or not they end with _characterName or not doesnt matter, bc the name is meaningless. the original author could have called them asdf1 through asdf10 for all the game cares
unless this is dialogue that is Loaded directly
so you need to find in the original mod where this dialogue file is used, whether its i18n or otherwise
help i edited pelican town on tiled and tried putting it into the game but nothing is changing, i looked up a bunch of things and tried changing what could be wrong but nothing is working π
i put it in assets folder for my mod and its in the sdv mod folder. i also have a content.json and manifest.json
i tried watching different yt videos
so i could see how they did it but it wont work
welcome aboard
we're gonna need some troubleshooting done. do you still have the game open with your mod installed? if so, travel to the town and type patch summary into the SMAPI console, send it to https://log.smapi.io/ and link the result here
it'll give us an idea of whether or not your mod's been loaded and applied, and maybe what went wrong
also if your youtube guide was released before about march 2024 it's likely out of date hahah
idk if im doing something wrong but when i type patch summary it doesnt work
dang i dont know a thing

help i cant really find any recent ones
theyre all old
!log in that case, just share your log file as-is 
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.
yeah we generally don't recommend trying to use video tutorials, they're hard to keep up-to-date since youtube doesn't really alllow for edits and amendments
hii, what would adding commands (such as $b and $k#$e) look like in a one-time dialogue command? would the following be correct, for example? :o
(dialogue after nth time are as follows)Another earth crystal? ... Thank you, these will help me stablize some mixtures...$1"```
i'm having trouble figuring out when the next command separation would apply... :<
Not like that, one second
Actually I'm gonna have to check the decompile to see how that behaves tbh
thank you for looking into it c:
what happened to your 2yr old memory of the game
Also, whatβs $k
You can use #$b#
yeah, that's what i was kinda thinking as well, that's unfortunate
$k is kill
The dialogue parser is weird tbh
will $k#$b will function essentially the same way, perhaps? :o
i'll be fine with removing the dialoguekill command, otherwise
I wonder if the GSQ query syntax would work instead
The | one
And use an $action to set the flag
Or maybe it searches for #$e# specifically and you can use $k
Hi, is there a command for the page of mod requests/suggestions?
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your ideaβmodders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
yippee thank u
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 1 C# mods and 0 content packs.
ah, that'd do it
you haven't installed Content Patcher hahah
err actually, is AerynAndSerelia your own mod?
are you writing your mod in C#?
thats the only thing that i was pointed to when i started π so yeah
where did you get a content.json from without doing content patcher
do you want to be doing it in C#? bc you absolutely dont need to use C#
i put it in another folder cuz i was trying to test my mod but lwk forgot i need content patcher
if theres another way i would want to tryt that then
ah yeah, to be clear, content.json is only going to be loaded by Content Patcher, and for a single mod (you can make multiple interacting ones if you like) it's either going to be a content pack OR a c# dll of your own making
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.
so im confused what was even in your content.json if you're making a C# mod
Iβm still confused about how your mod got both content.json stuff and c#, if a tutorial told you to do this could you link us to it please?
i watched different videos π like a lot of different videos so that could be why
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itβs easier to start with making content packs, since you don't need to learn programming.
OKAY
specifically the wiki tutorial for content patcher
you donβt need to avoid it, itβs good for things that actually need it
i want to make a character and then edit a map !!
both are Content Patcher capable
ohh okayokay
ohh, i hadn't thought of that, actually, thank you for the idea :>
C# is basically for when you cant do something in Content Patcher, most of the time
!npc
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!
otherwise, if you can do something in Content Patcher, you should probably just do it in Content Patcher
OKAY that makes more sense, i didnt understand what i was looking up
that said i commend you for getting your C# attempt to actually compile and run
even if it is going to be discarded
okay thank you sm
i'll look in the content patcher then
π yeah
if i add multiple dialogue for a specific heart level, will it pick a random one or is there something else i need to do to have it random? say the character is on 4 hearts, there's 5 possible dialogue for 4 hearts, and it picks a random one each day
Please show your code
uh i haven't written anything yet give me a sec
you cant add multiple dialogue for a specific heart level with the same dialogue key period, so that i18n randomisation is what you need to do
oh i should specify i want it to be location specific
the same principle applies
Same principle apply
damn
in JSON, if you try to add two things with the same Key inside the same section anywhere, it does not work. keys must be unique. one will be used and the rest will never even make it into the game
Button r u the one who made BETAS?
i am
is it possible to do location, heart level and day of the week instead? i don't need it to be completely random, i just want to have more than 1 option for dialogue so it doesn't get boring
It's basically the same principle tbh
like i want to combine these
when crediting another creator for a mod that you edit do you just say like "original base by so and so" or something like that?
You can't
The keys listed on the wiki are the ones that exist
Do try read the wiki page. For the location, heart lvl, and week key u can add some randomization on each
You basically use the same i18n trick
And uses CP token on the i18n key to kinda combine those
Smth like "Saloon2": "{{i18n: saloon-2-{{DayOfWeek}} }}"
this is too complicated for me rn i think π
Then do a break and return to it later
Could also probably look at an example, if anyone has a nice one handy
I think you could try looking at Realistic Writer Elliott
atarted decompiling today baybe six hours on the fucking grind lets goooooooooo
this is funky
the farmer is no longer restricted by the binary of a bool. they're still restricted by the slightly lesser binary of a 3-value enum though
also ive started to make my sprites
ternaries are more flexible than binaries tbf 
if decompiling the game is taking six hours then I think something has gone wrong
when are we getting hexadenary gender
bro im on the first session of decompiling
i know ittl take like 6 month to a year
??? my decompiles take like thirty seconds what is going on over there
I'm a bit confused, why would it take that long to decompile the game
on the bright side there is nothing stopping you from force assigning an int to the enum that doesnt have a definition for it
yeah I've never had it take longer than a minute
I'm assuming 6 mths to a year of understanding and comprehension
ah, I see
well you dont need to literally read every file and class
Please. 255 genders are enough
well i know button
you need to understand repatble things until something clicks
im just saying ive made progress would syaing i"ve began tracing the files be more clear
as male i find this offense
I forgot enums were 1 byte ngl
i want to make a chillis mod
They aren't!
They be an int by default
But you can make them a byte if you're hungry
then why 255 genders
It's enough for anyone I would think /jk
a googol probably
.... hmmm
peak enby is when you learn the Overflow Gender skill
...and does this imply there could be gender overflow-- dammit button
My gender exists as a quantum superposition actually
Gender ought to be flag enum
My gender is watching line distribution videos for virtual kpop bands
my gender is "why are you asking so many questions. suspicious"
We're going up up up it's our moment
is burger a gender
it is if you lay between two halfs of a bun
pfft
missed opportunity to have one answer be simply "you may not"
absolutely do not do that
Uh, you dont want to load the whole thing
Thinking of the scientific study that accidentally had "UNUSED" as a gender
for starters, that is not where most character dialogue is stored
Still don't do that
in almost every case, if the asset already exists in the game's content files, using Load on it is incorrect
EditData is better
hi @ivory plume , wondering if you're interested in a PR on Data Layers for UI peek-through? alternatively it could be Toolbar-style flip top/bottom position, but that'd be a little more in-depth if you wanted the buttons to remain aligned, since the legend info would need to then be drawn above the title scroll, etc
just noticed it's a little difficult to check collisions in the topleft of some locations
i mean your example isnt an example of editing someones dialogue
so you're kind of asking "aside from being incorrect, is my example of editing dialogue correct?"
the Target isnt something you can say "well besides that" bc the Target is the most important part
I have been researching all day, what is an I18n? My head is throbbing π΅βπ«
maybe second behind the Action, depending on who you ask
!i18n
So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!
-
How to make your mod compatible with other languages: stardewmodding.wiki.gg
-
The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".
-
If you're converting from an older version of the game, there's a converter for ease-of-access.
Not to be confused with
{{DynamicTokens}}since these require the specific{{i18n:<KEY>}}modifier
(i18n = internationalization = translations)
i18n is short for -
(i18n is long for i)
Sure, that looks good!
also, Coop, EditData does not take a file
you'll want to look at the CP documentation for EditData
Can u do a keybind for the controller users 
yes, i was. EditData does not take a file
Load takes a file, so FromFile is correct
EditData does not, so you do not use FromFile. you use Entries/Fields as a dictionary
you'll want to take a look at the CP documentation for EditData
Button brought up EditData because that's what you'll need to use
cool! if the alpha pop-in on changing data layer view mode is an issue it'd need the Opacity field made public/internal, so let me know if that'd be breaking style, otherwise i'll push the PR in a moment
or if you need a new config option added for enabled/min-opacity
That is 100% the option I'd select
Thank you! I finally found the I18n folder- but it seems to have nothing in it about the mod I mentioned earlier. I was told the file I uploaded looked like an I18n file. I'm sorry, I'm learning a lot of this from the ground up.
so if I edit someones mod who allows you to do that should I put both of us in the author section of the manifest or just myself?
like if you make a recolor
I've been just having myself as the Author, and crediting them on the mod page itself with a link back to the authors mod, adding the author to the manifest may cause confusion and send people over to them for fixes relating to your mod
i would just add yourself
oh okay ty!
"Entries": {
"Elliott": "Whatever Other Name"
}
for a string to string dictionary it is this simple, actually, and Fields is interchangeable with Entries
Fields matters if you want to edit things that are not top level
keep in mind that if you change Elliott's name in Strings/NPCNames, that will not edit direct references to his name in dialogue
yes, his name displayed on the dialogue box will change. but if (contriving an example) Leah says something like "have you seen Elliott lately?" it will still say Elliott because that's baked into the line she says
it will also ofc not change it if a mod uses Elliott's name directly instead of the tokenizable string
which may still happen in dialogue regardless of whether or not you change all the vanilla dialogues
when you recolor a mod how does saying that mod is required work do you need to say its required or do you just thank the person and say to check out them too?
what do you mean by required, does your mod need theirs to function because you're recoloring their asset
idk
would your mod not function without theirs installed, the same way your mod depends on content patcher
like if I took this mod https://www.nexusmods.com/stardewvalley/mods/25216?tab=description and turned it into a spectral version does this work as a credit or do I need to also say their mod is required?
I would give them a shout out but that rabbit sprite looks vanilla
so what I put works good?
def vanilla, except there would be custom assets if they added other poses right?
Yeah possible, I didn't open up the file to check
they roll their own spritesheet which is mostly copied from vanilla
no new poses, the separate sheet is probably because the vanilla wabbit sheet can't be used as-is
sorry, I'm asking because attribution is always required, but I'm confused as to whether your mod strictly depends on theirs because you patch the loaded asset name or whether you took the archive, replaced the PNG and redistributed it
if the latter then your mod doesn't actually require theirs, so just attribution is fine (per perms)
(it's just technical pedantry is all lol)
okay ty everyone!
Hi! when I run my mod that edits the moutain map i get the error that it shouldn't climb directories for the custom tilesheet, that's fine and all, the issue is I don't want to have multiple copies of the tilesheet each in a different folder, is there a better way than adding the tilesheet along side each map when the maps are in different folders?
@uncut viper Sorry I took so long to continue inquiry about BETAS. If possible would like to suggest.
- Trigger Action Action to make npc play animation.
ActionName <NPC> <loop> <frames>
Some use cases that comes to mind...
On tile action, step into a place NPC salute or start dance (loop?)
On dialogue, NPC shows off dance move or skate board trick - GSQ to check NPC facing direction to determine the animation to play
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
The issue is it's a custom tilesheet not a vanilla one, referencing vanilla ones is fine, my map uses them too and they work perfectly, I just don't want multiple copies of my custom tilesheet that's all
U should load ur tilesheet and reference it
You only need the tilesheet to be in one location in order to Load it into the game's content. If your issue is wanting the tilesheet to be present when editing your map, there are several options for that. One is to have a working folder in which all your tilesheets are present and which you move the map to in order to edit it (you'd have one copy of the tilesheet present in that folder and one in your mod folder in a separate folder from the maps). Another is to symlink from your tilesheet folder inside your mod folder to your map folder while editing.
don't I still need a png file in the same location as the tmx though if i load it like that?
While editing in Tiled, yes, you do. But you don't want it there when in game.
when editing the map I have the tilesheet with it just when testing in game I don't
ohhh okay gotcha, thank you, so I'd just load it like any other png?
{
"Action": "EditImage",
"Target": "Maps/Mountain/custom_tilesheet"
"FromFile": "Maps/Assets/custom_tilesheet.png"
},
(I know that's probably not the right way writing it, consider it psudo code, I'll grab the right way when actaully doing it)
Yup basically.
Brilliant, thank you!
Just tried changing it and now I get an error saying it can't find the tilesheet
[Content Patcher] Unhandled exception applying patch: (CP) Paved Valley > Include Maps/Mountain/Mountain.json > Paved Valley: Mountain.
StardewModdingAPI.Framework.Exceptions.SContentLoadException: (CP) Paved Valley loaded map 'Maps/Mountain/Mountain.tmx' with invalid tilesheet path 'zzz_pavedvalley_onlypath_tilesheet.png'. The tilesheet couldn't be found relative to either the map file or the game's content folder.
I'm guessing I've gone wrong somewhere in here:
{
"Action": "Load",
"Target": "Maps/Mountain/zzz_pavedvalley_onlypath_tilesheet",
"FromFile": "Maps/Assets/zzz_pavedvalley_onlypath_tilesheet.png"
},
{
"Action": "EditMap",
"Target": "Maps/Mountain",
"LogName": "Paved Valley: Mountain",
"FromFile": "Maps/Mountain/Mountain.tmx",
//"FromArea": { "X": 22, "Y": 61, "Width": 16, "Height": 13 },
//"ToArea": { "X": 22, "Y": 61, "Width": 16, "Height": 13 }
"PatchMode": "Overlay",
"When": {
"HasMod |contains=FlashShifter.StardewValleyExpandedCP": false,
}
},
The tilesheet is in "[CP] Paved Valley/Maps/Assets/zzz_pavedvalley_onlypath_tilesheet.png" and the map is in "[CP] Paved Valley/Maps/Mountain/Mountain.tmx" is that helps
i can maybe consider it for some future version, but it wont be soon and it wont be likely, as that would definitely fall under "much more difficult than it sounds"
Your tilesheet Load target is incorrect. It needs to be just "Target": "Maps/zzz_pavedvalley_onlypath_tilesheet", because it needs to be Loaded to the same place that the Mountain map is, which is just Maps/.
you need to load it to Maps/ not Maps/Mountain for your tilesheet
(as in, load it with that prefix. not literally just Maps/)
Oh gotcha, I thought it had to be in the same directory as the .tmx itself, I'll give that a go now, thank you both!
The game can't see where your .tmx file is
all tilesheets must always* be loaded to Maps/<tilesheet> to be properly usable
*not always dont worry about it
Gotcha, always load where map is loaded, not where map is stored
Good morning everyone!!
Was wondering of where exactly all the player data located, their skill levels, professions and such
player data? thats stored in the save π€
Just want to make sure I am understanding the Content Patcher docs correctly, when I want the tilesheet to change with the season I just add {{season}} into the "FromFile" section and not add a "When" condition
are you talking about like, the code for the skill levels and professions? can you be a little more specific
I'm not much familiar with this part of the game, but yeah, just need a way to manually swap some values for some in game testing
I suppose it should be there, thanks
Thank you for considering it π
If you're looking to change your level in game (for something that only triggers at specific levels lets say), I'd recommend CJB Cheats mod if you don't have it
Ohhh right, okay then, thanks too
yay! my npc is spawning... teddy spotted in 4k π
wait his face is "breathing" - need to remove breather thingy haha
this has been bugging me, just where are these trees located at?
Those are in springobjects
gotcha, ty
I'm looking for a way for a Content Patcher pack to output something like <MapName> Loaded" to the console when a map is loaded/reloaded, I want to easily see which map is loaded when required mods are present instead of going to each map manually, I already have "LogName": "Paved Valley: Mountain", in the "EditMap" section but it doesn't output that to console when it loads like I thought it would
Iro's right!
You can see the current workflow I have in place: https://github.com/AlanDavison/StardewValleyMods/blob/master/.github/workflows/manual-release.yml
And the little companion script for it: https://github.com/AlanDavison/StardewValleyMods/blob/master/Build/verify_project.py
The workflow pulls in the required reference assemblies from another repo, sets that as the game path for the build, and builds from there.
And the one tiny csproj related change just to dump the version to a file: https://github.com/AlanDavison/StardewValleyMods/blob/97e2eb8a92da4cd547065731f42b45477358db96/Directory.Build.targets#L18
I am working on a fully drop in replacement action, though.
Summary: The short answer to your question though is that you just need the reference assemblies in place to pass as the game directory.
This happens in the trace, so you can upload your log to the log parser and track it there.
Is the trace hidden from view within the smapi console then? if it is, is there a way to enable it so that I don't have to upload the log to the log parser?
Although on rereading your message I'm wondering if you want to know which .tmx file was present in the FromFile field for any particular edit and that you cannot see.
The text file that website directs you to contains the log, trace messages and all, so you can read it directly. You can also make trace-level messages appear in the console by editing Stardew Valley/smapi-internal/config.json and setting "DeveloperMode": true, (which is all that actually does).
the alternative installer "SMAPI [version] for developers" just toggles that setting too, incidentally
for more information I'll re write because the wording may not have been the best, my mod that adds pathways around the valleys uses content patchers overlay feature, I also want it to support various mods like SVE, Ridgeside, and East Scarp, some of these areas are heavily changed from vanilla meaning I have different tmx files to overlay, e.g. vanilla_Town, SVE_Town etc. To make sure I have the code right at a glance instead of going around all the areas, when a specific map loads, I would like it to output something along the lines of <MapName> Loaded when a map is overlayed, so it would be like SVE_Town Loaded
I'll give this a try, it may be what I'm looking for
No, it won't do that
you also can setup a user config file that sets DeveloperMode to true separate from the smapi install
or an environment variable
It will show you when the target is loaded or edited but it won't tell you what tmx file you used to do it with
(I'm pretty sure, anyway. I've never seen it and I look at trace logs pretty often.)
smapi and by extension content patcher in the asset pipeline don't edit individual tmx files (and the vanilla map isn't a tmx anyway), you are editing an entry in the asset pipeline (Maps/Town)
Each "EditMap" function will have a different "LogName" in it, each with the actual map name in it, I'm hoping it would output that
the trace logs will say that the content pack edited the given asset in the pipeline.
Content Patcher verbose logs (enabled via smapi config and optionally filtered to just content patcher) can get more details, but I'm hazy on it because I never use it
but even that verbose log wont say that you edited sve town, as there is no concept of sve town, just town when sve is loaded
This is what it looks like. I'm not aware of any situation that LogName is used outside of the patch summary or errors/warnings.
the verbose logs will say the exact patch (logname) that edited the specific asset
I just tried it and got the same, I think verbose logs are what I'm looking for
Oh, will it? That will be what they are after then. Ah, right, I thought developer mode and verbose logging were the same thing but I see in the config they're not.
I'll have a browse through the smapi config and add verbose logs to the new config I made
I should have a look at verbose logging, I've never examined it before.
verbose logs enables extra logging to happen in the first place
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Logging#Verbose_logging:~:text=Players can enable verbose
I am seeing a LOT more logs when enabling dev mode and verbose logs, this is going to be fantastic for figuring things out
its for stuff that is otherwise too verbose or expensive to bother logging in the first place that you need to opt-in to it ever happening
tbh I haven't touched verbose logs in years, pretty much always a better option
verbose logs are exactly what I needed, I can easily see which specific edit is loaded
which patch summary would say
Are SMAPI logs generated on the fly or only when SMAPI closes?
real time
real time
thank you, I thought it must've but wasn't sure
Why are you wanting this instead of checking the patch summary?
I didn't know what patch summery was, I thought it was the console log but I've just found out it isn't
it's formatted so much nicer too!
Ah I see. Yeah it shows an overview of the whole mod (or mods if not filtered to a significant mod) including its tokens and all its patches. It shows which patches have been applied.
Also handy for seeing which mail flags and CTs you have
In fact, that's what I use it for the most. I just filter it to a nonsense mod so it doesn't clutter the log with any info about patches.
That's perfect bc I'm having issues on my steamdeck where a mod just stops fully with no errors
is it only for content patcher packs or for any mod? C# included?
patch summary is a content patcher command for content patcher packs
gotcha , wouldn't work with the mod issue on my steamdeck, oh well
verbose logging probably wouldn't either
This is a list of all the troubleshooting commands for CP: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/troubleshooting.md
Very helpful, thank you
A fair number of C# mods come with their own troubleshooting commands so it might be worth checking the documentation
Other than that, the only other command I know of for exploring C# mods is harmony_summary.
(You can also just enter help to get a list of all mod-provided commands!)
Gotcha, I'll have a look at UI Info Suite docs in a little while to see if I can solve my issue
The more I learn about SMAPI and Content Patcher, the more I absolutely love them
what do these mean 
!paths
See here for images of all NPC pathing tiles:
nope, wrong thing
π gelp
They are what the game usees to spawn foragables, grass, debris etc
anyone know how to remove pond quests for certain fish via modding? I can't really find any tutorials for this =[
ohh okay thanks π
yeah
wait can i know specifcally what the question mark does
Have a look here (https://stardewvalleywiki.com/Modding:Maps#Tile_properties) it's about 3 quarters down the page, under "Paths Layer"
okay TYSM
are you already familiar with using Content Patcher? have you unpacked the game content? if so, you can open up Data/FishPondData.json and note the PopulationGates field on some fish data entries, which can be set to null with CP
Why aren't these tiles being place? if I modify any other area they get placed, this specific spot however does not, the rail tracks are on a custom tile sheet along with the edge of the paths on the Back20 layer, same as the edge of the paths, making edits on the .tmx file works and loads in correctly so I'm not missing anything in the code
not really, iv just been editing an existing mod for my own enjoyment. This mod doesnt have any pond data, seems like the game itself filled in the blanks
When placed directly on the Back layer, in game it just turns into the void
Your patch mode may need to be Overlay
It is, which makes it more confusing
{
"Action": "EditMap",
"Target": "Maps/Railroad",
"LogName": "Paved Valley: Railroad",
"FromFile": "Maps/Railroad/Railroad.tmx",
"PatchMode": "Overlay",
"When": {
"HasMod |contains=FlashShifter.StardewValleyExpandedCP": false,
}
},
oh, what's the mod? i'm no expert, but i'd assumed a fish needed some PopulationGates entries to have pond quests
Is your tilesheet png wrong perhaps?
Can check what the tile id is in game with lookup anything
And then compare with tiled
Yep, the paths are on the Back layer, and I've tried placing the rails on Back20, Buildings
Thought I had lookup anything installed, give me a min to install it and I'll come back with more info
You need tile lookup on
Thats the 2 tiles in photoshop, transparent backgrounf but clearly has visible parts
fish bonanza i cant find the code where they put the pond data seems to only have the fish location data and of course custom fish item data
It says tile ID 49 which matches with Tiled
Try patch export ur tilesheet
Patch export includes the rails
you right
it doesn't actually include any fishponddata edits at all
can i add the pond data in any of the files or does pond data need to be its own json file?
tried exporting the only other tilesheet with the same tiles on it incase there was a mixup but the game couldn't find it so the wrong tilesheet isn't loaded
the wiki doesnt really specify where pond data needs to go
It's also possible it's loading from same folder which doesn't go through content pipeline
okay it works with the tile sheet removed from the folder, the rails show up. but not when its actually ther
Maybe restart game just for good luck
What season are you checking in?
Ah that's what i suspected then cool
it was in the same folder but I restarted the game fully twice thinking that was the issue, weird?
spring, only have a spring sprite for now
quick answer: it doesn't really matter, it's best you add new changes to the content.json file to keep things simple - you'll notice there's an {} entry in that file that calls Include on the other two data files, and that's how they're applied
i have a question about smth, i edited the town map but i cant walk in the section i cleared. i have it on the same layer as normal pathways (back) for the player but it doesnt let me pass through, idk if theres a barrier cause i cant really tell. i got rid of all the other layers that could be stopping me from walking in
If you haven't already unpacked the game's data files, there are instructions here: https://www.stardewvalleywiki.com/Modding:Editing_XNB_files#Unpack_game_files
They usually have specific examples for data formats, e.g. it'll have a Data/FishPondData.json you can read. Here's the first entry as an example for where PopulationGates goes & how it looks:
{
"Id": "Lionfish",
"RequiredTags": [
"item_lionfish"
],
"Precedence": 0,
"MaxPopulation": -1,
"SpawnTime": -1,
"BaseMinProduceChance": 0.15,
"BaseMaxProduceChance": 0.95,
"WaterColor": null,
"ProducedItems": [
/* trimming this part out because it's very long */
],
"PopulationGates": {
"4": [
"(O)829 3",
"(O)832 1"
],
"6": [
"(O)834 1"
]
},
"CustomFields": null
},```
Possible invisible tile
how do i get r id of it plz π
check tile properties for 'passable'
Erase it in tiled but first check what flavor of not passable it is
when i checked its the type: grass and spawnable: t
theres no passable
that i saw
it's pretty straightforward to try and add new fishponddata edits into the same file, you'd just want to go to the Changes: [] list and add in a new {} entry that'd probably look something like this at its simplest:
{
"Action": "EditData",
"Target": "Data/FishPondData",
"Entries": {
"Kehaan.FishBonanza_Butterfish": {
"Id": "Kehaan.FishBonanza_Butterfish",
"RequiredTags": [
"item_kehaan.fishbonanza_butterfish"
]
}
}
}
all of those 0/-1/null fields should be their default values, so you don't need to rewrite them here unless you're setting it to something new
i believe that's the correct RequiredTags format, correct me if i'm wrong
Make sure you're on the buildings layer and then hover over the tile. Down the bottom left it will say [empty] if there's no tile in there. If there's a number between the square brackets instead it means you have an invisible tile on the buildings layer.
go nuts with the eraser tool
I SEE IT
π
im gonna erase everything now
thanks everyone i have never done this, it sucks π
ill try this thank you soo much =D
no worries! play around with it, follow examples where you can, and come here if the whole thing explodes and falls into fishy pieces
How do I remove a small bush from a map? I've removed the tile on the Paths layer, however the bush is still there and I can't chop it down
for just one bush, you could use this:
https://www.nexusmods.com/stardewvalley/mods/6304
There's a BETAS traction u can use
It's for a many cause they're in the way of my pathways
rtf?
!rtf
Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).
rtf.
Rtf
Ahh gotcha, so theres no way to remove them from the map when making changes without another mod? Is that the same case as a a user who starts a new save with the mod enabled?
If they start a new save on a map that changes the bushes its fine
But for players installing on a pre existing save need rtf
Since the paths have already been generated
Okay gotcha, I'll kep that in mind when I make the mod listing
i added this at the end of the content.json file
{
"Action": "EditData",
"Target": "Data/FishPondData",
"Entries": {
"Kehaan.FishBonanza/american_lobster": {
"Id": "{{ModId}}_American_Lobster",
"RequiredTags": [
"Kehaan.FishBonanza/american_lobster"
],
"SpawnTime": 3, "ProducedItems": [
{
"RequiredPopulation": 3,
"Chance": 0.4, "ItemID": "812",
"MinQuantity": 1,
"MaxQuantity": 3
},
{
"RequiredPopulation": 10,
"Chance": 1.0,
"ItemID": "812", //812 is fish roe, will produce roe for your particular fish
"MinQuantity": 1,
"MaxQuantity": 5
},
],
}
}
}
its all errored up now =[
!json - post your file contents to https://json.smapi.io, and share the link after βοΈ
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.
you can explode them iirc
Unfortunatly not, not without a mod, just tried it
I usually play with destroyable bushes, it's just for people who add it to a save already made
most people are familiar with RTF
there's a mod that allows to remove bushes mid save with trigger action
if you dont mind a dependency then BETAS can help as Chu mentions but otherwise yeah people who change modlists md-save are probably used to and/or expect weirdness
but it's a bit advanced stuff
especially if they knowingly install a mod that changes the entire town walkways
not exactly a tiny change
I'd rather not add another dependancy, but I will add a note to the mod page
defo not a tiny change at all
You can make BETAS an optional dependency
Since it's just a trigger action that fires one time
Compared to rtf u get more control over which bushes to yeet
yeah in that case you just link them to mods that help with that
am i stupid? just to add, i've been following a tutorial... i have quite literally zero idea what i'm doing aside from that
i followed the entire tutorial and didn't skip any steps though so idk what's happened :,)
i have this in the content thingy if thats what you mean?
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
Your npc internal id shouldn't be Keith
You Load your Portrait as Portraits/Keith, but your NPCs internal name is cheembs.KeithMod_Keith.
too many things happened

