#making-mods-general
1 messages Ā· Page 410 of 1
yes for sure
note: do NOT try and use a generic gradient for your mod page header
and i thought it handled sprites badly
and screenshots and anything else
yeah what is going on with the botton right lol
(is your gradient supposed to be... off kilter?)
I genuinely can't tell if the dark region was supposed to all be clipped to one colour or if that was the compression too
pay no attention to the bottom right corner š
now that ive seen it i cant
I desperately need to see the original now
then live desperately
š so mean
Hey so quick question. When the unlock conditions for an NPC are met they are added into the game. But what if at any point those conditions are no longer met? (Let's say you used console commands to change it so that the save doesn't have you flagged for completing the community center for example). Does the NPC stay in the world, or get removed?
depends on how the unlock conditions were implemented
NPCs are never fully removed from the game and there is a version of them that persists in data even if the mod is deleted. This way a player can add the mod back in case they uninstalled it accidentally, and not lose progress on that npc's hearts/etc. (You have to use a console command to kill them)
If the unlock condition is an entire CP patch to decide whether or not to add the NPC to the game, it would function like that.
Because if CP decides not to patch the npc into the game, the game has no way of knowing that an npc is supposed to be there
If it's some other condition like a game state query that the game has access to, it could manifest differently tho
I ran into yet another error... I've clearly made some kind of mistake but I just can't figure out what said mistake is...
Thanks in advance for help āØ
you put {{<ModId>}} instead of just {{ModId}}, looks like
Hey this might be a silly question, but when it comes to placable objects like sprinklers, fences &tc, am I right in thinking that a tile can only have one object on it? I'm working on an 'underground pipes' mod and trying to figure how best to approach it
have you decompiled the game yet? that's generally the best place to check for details like that
well it's true, but not exactly
counterpoint: flooring
and overlaiddictionary, and terrainfeatures, ..
which is to say with the healing power of harmony you can add as many layers of complexity to the world as you like, though you may not end up using objects (or at least, not entirely)
I keep forgetting if objects are a subset of items or vice versa
objects are items
makes sense, makes sense
items do not have a price, stack, or quality
everyone opens it up expecting there to be only two methods farm() and sleep()
but instead they get Game1 and Utility
_newDayAfterLoad
it's the stuff that stops draw and update from being a million lines each
ah yes draw and its twelve cascading overloads
actually i put these in mooded-farmers
It was exactly what I needed. Thank you very much.
Would someone be able to help me find a specific file? Trynna make a simple edit to whats in the starting parsnip box but I cannot for the life of me find which file that is (using stardewXnbHack)
Do note that apparently you only get 2 or so seconds of execution in that event
I added Sleep(5000) just in case
Going to check if it has enough time without it but will probably still delay the closing a couple of seconds for people with very slow internet.
What you're after is the farmhouse starter gift map property in the farmhouse map https://stardewvalleywiki.com/Modding:Maps#Farmhouse_interior
Thx
Is this what joy feels like? 
/hj
they r REAL 
using content patcher, I'm making a map for the Slime Hutch interior, and I want to add a small fishing area, but I can't find how to refer to the interior for the data/locations stuff. the main SDV wiki doesn't have it, and says that the list is just some of the location names. while it lists the greenhouse, i noticed it also doesn't list any location names for coop or barn interiors, which has me wondering if I'm SOL on this. Anyone got an idea of where I can look?
I don't think you can put location data on instanced building interior location right
That may very well be my problem, which means putting the fishing stuff on the map itself ...
Actually maybe yes maybe no
I'm not at my computer and can't check for myself but some things could, like I remember data/events/barn working
i almost want to say it's possible
Data/Locations isn't exclusively used for non-instanced locations such as the town, farmhouse, and such. if you don't add the CreateOnLoad field in your data it won't try and make a new location
I'll try adding the CreateOnLoad to see if that makes a difference
that is the opposite
try and add the SlimeHutch entry without a CreateOnLoad field, just Fish
since the location getFish() method tries to get the data by Name (SlimeHutch), and not UniqueName (SlimeHutch_12031023102380911asdf) it might be able to read the fish data for the matching entry
Thank you for the helpful ideas! and just having someone to communicate with. I think my brain's too tired to figure this out. I tried taking out all the fishing stuff just to verify that the map name I got from FTM's "whereami" command worked, and I can't even load the interior map. FTM's query returns the map name as "Slime Hutch" with a space, and the map replacement mods i referenced show "SlimeHutch" no space, and neither way is working. If you're at all interested in poking the code -- I get weirdly curious, not assuming you'll want to -- https://github.com/KasualTheGamer/SDV-Slime-Hutch-Interior. I'm going to see if a shower and a snack clear the head.
ah i think your issue is that you're using TargetField on SlimeHutch, which assumes there's a SlimeHutch entry in the target Data/Locations -- but there isn't
you want to use Action: EditData , Entries: { SlimeHutch: { Fish: [ {...} ] } }
i'll give it a try
There could very easily be side effects to cabins on other maps, though, so it might be worth doing some experiments to see if you can find any you might need to work around.
So far my tests have worked perfectly.
That's great! What's this all fo, out of curiosity?
You should check if the Farm location type has anything acting specifically on FarmHouse building type
I vaguely recall the mailbox bubble being one of these 
On the subject of crimes, I remember doing this: #933572312203141191 message
So would it be possible for the starting cabins to appear on other maps besides the farm?
iirc having all GameLocation instances implement BuildableLocation was one of the cornerstones of sdv1.6
It's what allowed me to make my prototype TARDIS mod, yeah.
it's just a matter of changing where the starting cabins go, and then combing through the code to make sure nothing is specifically searching the Farm location for any/all cabins
ops
When I get home I'll take a look, my mod will be very interesting, I want to give a different farm to each character in co-op
I sent the wrong copied message
But either way, if both the greenhouses and the cabins work, it will be great.
It's a shame that there's no way to restrict access to the farm map to just the cabin owner, otherwise it would be possible to create a Stardew MMO lol
[game] Location 'SlimeHutch8c97a738-ab92-4392-bbee-637094797505' failed parsing item query 'LOCATION_FISH Town' for fish 'LOCATION_FISH Town': expected four arguments in the form <location name> <bobber x> <bobber y> <depth>
making progress
You could totally do that, though. Assuming these are custom maps, you could have your C# component check when the player warps into it:
- If it's definitely one of your maps.
- If it has a cabin.
- Who the cabin's owner is.
- If the player warping in is the owner.
- Warp them back out if not!
tadaa, fish location data for a building interior/indoors location
I mean just do the check at the warp action
note: you need to add a new entry to Data/Locations without CreateOnLoad, using the exact name of the Building the location is parented to
also your map was crashing because you had several TileData objects with no properties
annnnd if you keep the FloorID tiles you'll be able to put flooring down on your dirt which you probably don't want but also this is clearly a wip
here's the working json file:
https://smapi.io/json/content-patcher/f5a8cc7de6044f24b421f5f938f5a2fb
the working map is up to you, but you also might want to add a .gitignore rule to your copies of the game tilesheets so they aren't pushed to your repo
*/*/\..*\.png or somesuch should do it
I'm trying to use the json schema for CP, but it gives me this warning, what's wrong here?
I wasn't sure if the FloorID was necessary to ensure the slime egg incubator populated in new hutches
And, thank you! I was breaking my head against all of that!
it looks like my FromFile is valid from reading the schema directly:
no problem! fun little problem
which i guess makes it a problem but you can ignore that
have you tried linux separators? \ not /
FloorID is only designed to be used for decorative floors, i sure hope it doesn't affect the slime hutch functionality
it still gives a warning with no separators.
This is a bug atm related to how vscode parses the regex slightly different
That's currently a bug, recent vscode update did that, a PR has been made already dw, you just have to deal with it for now or use a custom schema (I can find it in a sec)
oh ok, that's fucked up
(nice one pillow, found it before me)
i knew i'd seen some schema somewhere in my half asleep discord reading 
Is it possible to add all items in a catagory to a shop using CP without specifying each item? or is that a C# thing?
yeah, that fixes it.
oh and one last note, make sure that the NPCBarrier T TileData actually blocks the slimes in, since currently yours won't
with context tags afaIr
Yeah use item query
Ahh gotcha okay perfect! thank you!
PerItemCondition and then whatever suitable gsq
I like using ITEM_ID_PREFIX to just add everything in this mod to a shop
That's actually a better option for another of my mods, thank you!
curious - Tiled lets me make a rectangle that spans multiple tile units. do I need to making them square by square for the game to work, or will the spanning tile data work?
spanning works, just make sure you've got Snap to Grid enabled
it'll apply the tiledata properties to any tiles on the matching layer covered by your rectangle
Hey folks! I'm trying to make it so when you cast some spells, it does the book reading animation (like when you read any skill book). The Farmer animation is easy no biggie but I cannot find the item animation frames. Brain hurt!
cursors?
I tried cursors, is there more than one page of cursors?
There is, Cursors_1_6.png
God bless
Left middle the book sprites are
Oh ye there 2 aminations, good to know
It's literally called book_animation?? Yo what am I doing wrong XD
???????????
WHY DOES IT WORK NOW
public static IEnumerable<CodeInstruction> Summit_showQiCheatingEvent_Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
{
try
{
CodeMatcher matcher = new(instructions, generator);
// Game1.player.health = -1;
// IL_001c: call class StardewValley.Farmer StardewValley.Game1::get_player()
// IL_0021: ldc.i4.m1
// IL_0022: stfld int32 StardewValley.Farmer::health
matcher.MatchStartForward(
[
new(OpCodes.Call),
new(OpCodes.Ldc_I4_M1),
new(OpCodes.Stfld),
]
);
matcher.ThrowIfNotMatch("Failed to match showqicheatingevent");
matcher.Advance(1);
matcher.RemoveInstructions(1);
matcher.InsertAndAdvance(
[
new(OpCodes.Ldc_I4_8),
]
);
return matcher.Instructions();
}
catch (Exception err)
{
smonitor.Log($"Error in GameLocation_setUpLocationSpecificFlair_Transpiler:\n{err}", LogLevel.Error);
return instructions;
}
}
i added this and while it does permenantly show the cheating background for some reason, i do in fact have 8 health
it even rains!
:(((( i slept and its back to being dark and not raining ?????
summit needs an exorcism
why are the bushes wrong now https://pillow.is-a-cutie.online/kKR06rxrSG
actually i think i can do a postfix to resolve the lighting
So, can you tell me in which class I can find these changes I need to make, as these are things that happen when creating the save for the first time, I imagine it's not in Location or GameLocation, but I have no idea what to search in ILSpy to find.
I've opened a tilesheet in Tiled but one of the animated tiles isn't animated anymore, does anyone know how to fix that?
i imagine you could patch GameLocation.isCollidingWithWarp and do the checks, only allowing them to warp if deemed acceptable
the animations are defined by map
How do I enable the green leaf animations? It's a new map file, but the flowers are still animated
These ones should be doable with just SMAPI's warp events.
Instead of using any game built-in warps, register your own tile action for it
Then u can easily control who actually gets to warp in
Ah! I would do this part of the special warps later, I'm trying to find the greenhouse and the initial cabins.
Here's some examples https://github.com/Mushymato/MiscMapActionsProperties/blob/main/MiscMapActionsProperties/Framework/Tile/HoleWarp.cs
But yeah just use normal action warp rn so it'll be easy to switch later
Thats Z fighting, multiple bushes have spawned there, I found that out testing the Alpha terrain refresh mod
In this case, what I wanted to do first was to put more broken greenhouses on the other farms.
that'd make sense
i hate this so much why wont you work you should work
1.6.16 suggestion: Fix what ever cursed nonsense is happening at the summit
sorry this is just me being angry at harmony
i am literally reassining the ambient light why dont you update
do cp configs print to smapi log in trace, or is there otherwise some way of making a config option report to the log
Because god knows players wont tell me what config settings theyre playing on until after i ask
only with new config changes using "LogName" I think
might be a bit hacky but i think if you loaded an asset it'd log a trace? as in, doing a Load to something like Mods/6480/ConfigKey_{{ConfigValue}} with a fromfile just being empty
Actually I guess ye it would show if you do the hacky method reguardless if its a new config change or not
so the lighting works.. i really hope i haven't been fighting with the content patcher half unsetting ambient light (it was my suggestion..)
it was the null ambientlight AAAAAAAAAAAAAAAAAAA
You are not having a good time at all, I'm quite amazed how hard coded it is ngl
tbf some of it was the content patcher side doing things
(in my attempts to fix it without harmony)
Does anyone know why the green leaf isn't animating in my new Tiled map? The flowers are working but not the leaf
You see that black bar thing
It means whether this is animated tile
Gotta animate it yourself
im just looking at the name of that transpiler method.. have i been targeting the wrong one this entire time
Esca modding plugins have a log to console traction
You could have a trigger action to do that on day started
nvm im targeting the right one just the method is named wrong
you can also ask for patch summary <modid> but goes back to asking lol
It's annoying because its the vanilla tilesheet, I've just opened it in a new map file and the other animated tiles are working fine
why am i still hearing wind when i've skipped the method..
If I need to animate it myself, how
Tiled has a š½ļø icon that opens the animation tool
I would explain more but i am phone rn
The way vanilla tilesets work is that if the tile isn't on this map then it's not animated
i could just copy 10 lines of vanilla code into a postfix i suppose
What does that mean exactly? Like if I put the tile in the Tiled document it'll work?
No it means that if the map you exported the tsx from doesn't have animated leaf then you will not get animated leaf
that was a bad idea, this is not animated
You're making progress though! it's weird to see the summit so bright
1.7 is coming to Stardew! Prepare for modding madness!

How can I create my StardewValley.Farm-derived type correctly, because when I put it here
"CreateOnLoad": {
"MapPath": "Maps/Mix_Farm_Island",
"AlwaysActive": true,
"Type": "StardewValley.Farm"
},
It creates the broken greenhouse, but the problem is that it tries to create other things on my map, like the main house (and it gets buggy, I can't enter it), and what I want for now is just the greenhouse, so I created my own custom class and put it here.
"CreateOnLoad": {
"MapPath": "Maps/Mix_Farm_Island",
"AlwaysActive": true,
"Type": "MultiFarmsCabin.MistFarms"
},
But I got an error
System.Exception: Invalid type for location Mix_Farm_Island: MultiFarmsCabin.MistFarms
I hope 1.7 adds fish juice
okay yeah, i support that
um we already HAVE fish juice 
Carp joice
Does anyone know what the refresh_bundles command/syntax actually is? Got someone who's trying to get rid of the SVE items in their bundles.
You need to use assembly qualified name, and if you do this you also need spacecore save serializer to not explode people's saves
(also do you really need a custom class)
(if possible I recommend achieving what you want with patches alone)
Shouldn't this change the spring outdoors tilesheet?
{
"Action": "EditImage",
"Target": "Maps/spring_outdoorsTileSheet",
"FromFile": "Assets/Maps/spring_outdoorsTileSheet.png",
}
The FromFile is literally the entire spring outdoors tilesheet but magenta (to test if it works)
Patches:
loaded | conditions | applied | priority | name + details
------- | ---------- | ------- | -------- | --------------
[X] | [X] | [ ] | Default | EditImage Maps/spring_outdoors
But why aren't you applying? I only have 3 mods installed, this, content patcher, and cjb cheats
omg I forgot patch mode š¤¦
nope, didn't fix it
And how could I create a broken greenhouse in other maps, without using StardewValley.Farm in the farm Type? I just thought of making a class similar to this Farm, but without the other details, just with the detail of creating the greenhouse.
how would you repair it?
i know I'm a bit late but I also wanted to posit that I don't think the config load idea would work as the asset won't actually be requested by anything to trigger the load. I would go with EMP or BETAS (the BETAS version also let's you log as yourself, too, not under the BETAS name)
Just like the normal farm, when you repair one you repair them all.
Luckily we do require BETAS already, I had been planning to check the betas docs just in case there was a funciton for that
it will require enabling BETAS's advanced functions
I see
which will require a minor alteration to your manifest that will affect nothing else
i require people to opt in to logging functionality so that someone can't just print to the screen under anyone's name they want
and the manifest is the only way I can do that and guarantee it's the actual author that opted in
(this is an author side enabling though ofc, users won't have to do anything)
Do you guys know how soon the next update is coming out? The one with the event changes?
months to years away
unless ca gave a more concrete date during the concert but I didn't see one reported
š okay im trying to see if I need to ask for help switching my event stuff for the vanilla overwritten events
I dont have much energy to fix anything right now so if it comes out within the next few months I'm for sure gonna need help lmao
my recommendation is adding a map section using the broken greenhouse tiles, patch it out once the CC bundle is completed and put a custom building that uses the greenhouse interior as an instanced interior (not literally the vanilla one) on the map with C# or a framework like Buildings Included
you donāt want to literally reuse the vanilla greenhouse (and the associated code) because itās not an instanced building so your farmās greenhouse and the vanilla one will open into the same location
it would be better to pretend the update doesn't exist until a release date is announced
Not really, I did the test, and he created a different greenhouse for each farm, I dug in one and entered the other, the ground was not dug.
So each greenhouse is separate
When I used the StardewValley.Farm class
interesting⦠I remember someone testing multiple greenhouses a while ago and got that problem
I think the inside is the problematic one
But hm since u be in C# anyways what if u just add the broken greenhouse
And then do the upgrade yourself
This is probably the most insane timing I've ever had
I know he didnt mention a date but that's very ironic
Post is down for moderator review lol
I don't wanna be in the subreddit staff's shoes rn
well cat's out of the bag now, there are already news articles
LMAO HIS RESPONSE
Ya someone posted on tiktok so it's over LOL
the fact that there's a news article
and he directly said not to mention it anywhere else
honestly peak comedy to me
I had another idea, do you know if it's possible to create a mail event when someone completes the greenhouse package, either through the center or through Joja, so when they complete this package, they give everyone, except the host, a special item that can be used for Robin to build a greenhouse, so the person can use it to build their greenhouse
But where do I put this ccPantry, would it be the email name, or a condition for it to be active?
Do I need to create a TriggerAction to activate the email?
The mailflag already exists, so you would just need a trigger action to activate your new letter, and if you want it to only apply to the farmhands and not the host, that would need to be part of your conditions.
But where do I edit?
Data/mail
Data/Triggers
Hello, sorry, does anyone remember where the tree seeds are in the base game? I need to see what they look like to make one for a tree. Itās the only thing Iām missing to upload the mod. Or if you know where I can see a variety of tree seeds in 16x16px, that works too. Thanks.
you can either do it via Data/TriggerActions or just lock a custom greenhouse behind PLAYER_HAS_MAIL
To target only the farmhands, would !IS_HOST work as a GSQ? I'm not super familiar with how Not statements work in GSQ
I'm not sure if I understood correctly... Because the idea was, I don't know, to create a "greenhouse ticket" and for the person to receive it via email. To create this email, I would have to create a letter, where the person receives the gift by mail, and for the letter to be sent to the person, I would have to edit the Data/Triggers, so wouldn't I have to edit both files?
! means not yep
Data/Triggers is not a real asset, hence me mentioning Data/TriggerActions
the other suggestion is for case where you don't care about having a mail at all
all buildings have a BuildCondition
Question: what, if anything, happens if a BuildCondition becomes false during construction?
Yes, I already have a greenhouse mod that I created, but if I don't put a unique item in the game to limit the number of greenhouses, the person could create a lot of greenhouses, the idea is to be able to make just one, and therefore a unique item, that a player can only get once.
I was trying to think of how a voucher system would work and if it could be done by just having the item in inventory and removing it on purchase, but if that breaks things because the condition fails once the item is removed, it would need a different condition
you can use build condition for that too, that's how stables work
i think game only checks for it when you go to build menu
as far as I know I can build as many stables as I want in the game
Data/Buildings Is there such a rule?
have you unpacked the game
stardewxnbhack?
or ILSpy?
first one
content or c# ?
content
you can see the Stable entry in Data/Buildings.json in the unpacked content
it says "BuildCondition": "CAN_BUILD_FOR_CABINS Stable",
Maybe that's just me. I can't use pre-alphas or alphas or whatnot
the stuff I need to change is almost all related to the new content, not the new code. Sure, new code = new bugs, but that's like, 2% of the work I have to do 
I should check the alpha one of these days, I keep delaying because I have just one more feature I need to deploy to the main branch before switching I swear
So yeah, my strat can only ever be to wait for release, then work very hard so get something out quick
how does the game decide to render the hud or not on a certain map?
You can maybe put it in StardewValley.targets too
yes this shall help
I don't bc it gets annoying when i build other ppl mod
So I specify it in my own csproj only
One question, is it possible to build just the cabin or do you need to have a registered player to do it?
(Just an update for the 1.6.16 pre-alpha pinned message.)
You can join the Stardew Valley 1.7 technical alpha!
This is a very early technical preview of the next Stardew Valley update. This phase is meant for mod authors who want to provide feedback and suggestions early in the process, when larger changes are still in scope. Anyone is welcome to join (including non-authors).
However, you should know:
- This is an alpha branch, which means frequent updates directly from the game's development branch. This version may be less stable, change without warning, break SMAPI or mods at any time, or corrupt saves. Don't play a save you care about in the alpha.
- There's no estimated release date. The actual release could be years away for all we know. Don't plan mod releases around 1.7.
- New game content (if any) isn't included in the technical preview.
- Please don't reshare this info online (e.g. Reddit or Twitter). We'd prefer to avoid any media attention, since there's no release date or guarantees this early in the process. Feel free to share it on Discord or in DMs to anyone who might be interested though.
See...
- the mod author migration guide for the technical changes so far;
- the 1.7 alpha discussion thread for instructions to join and discussions/feedback.
@lucid iron Is there any way I can use ccPanty in When do content patcher?
PLAYER_HAS_MAIL Host ccPanty,CAN_BUILD_FOR_CABINS {{ModId}}_FarmhandGreenhouse
I hope whatever content there is, is not just more stuff shoved into year 1
I use the vanilla greenhouse myself
Panty?
ill leave the typo, but it is ccPantry oops
panty...
they belong to Lewis
"Greenhouse":{
"Builder":"Robin",
"BuildCondition":"IS_MULTIPLAYER, !IS_HOST, PLAYER_HAS_MAIL Host ccPantry, BUILDINGS_CONSTRUCTED Here Cabins, CAN_BUILD_FOR_CABINS Greenhouse"
}
isnt that the main greenhosue
but also you don't have to ask me in particular there's other ppl around
Unofficial updates are only for mods that dont load or crash completely, not bug fixes, right?
it depends on the license
Im looking at unlicensed code rn :') So the only rights there are those granted by the GitHub ToS, but also, its distributed on nexusmods with modification permission granted so idrk how that interacts
It doesnt set the itemgrabmenu source for its modified fishing treasures correctly, so someone reported that my fishbot update, which now checks for source so always enabled doesnt loot normal chests, isnt looting chests anymore, but its because of this mod
oh it's aloe's mod 
ik she's currently busy/hiatus so assuming you cannot get in contact i'd probably just harmony this mod
note that Item Extension is allowing to make some changes to fishing chests but on the content pack side
(in case this matters in the decision process)
I think harmony for compatibility is fine, harmony to fix other mods bugs is a bit weirdge, so ill leave it at a PR for now
step 1) be level 25 (farmer role)
step 2) have a published mod
step 3) DM bouncer to ask for role
step 4) ???
step 5) profit
Actually step 6 is to not play for a year and then get obsessed with it again for a month or two
i'll have you know i am currently loading into a save
to play
not test
pls don't take my cheeto away
lmao
i escaped cheeto hell
...
mostly
we don't talk about all the houses i need to draw
š¤Ø
Void! you're void again
see i have FUCK farm for when i get bored of cheetoing and i have my expansion wip for when i get bored of FUCK farm. its foolproof
Monthly mod stats time!
Mod compatibility
78.5% of SMAPI (C#) mods are compatible or have a workaround, up from 77.6% last month.
Unique mods by type
August was another busy month, with 473 more mods. That includes:
- +312 Content Patcher;
- +55 SMAPI;
- +42 Fashion Sense;
- +49 Alternative Textures;
- +5 Farm Type Manager;
- +4 Json Assets;
- +1 Custom Music;
- +1 Producer Framework Mod;
- 0 Better Artisan Good Icons;
- 0 Dynamic Game Assets;
- 0 TMXL;
- -1 Custom Furniture;
- -1 Shop Tile Framework;
- -2 XNB;
- -3 Mail Framework Mod;
- and +11 for frameworks with <100 content packs.
Content Patcher packs
We have 11,990 Content Patcher packs.
The top five Format versions remain...
- 2.0 (3,547 ā 3,640), 2.3 (827 ā 829), and 2.4 (600 ā 620) for Stardew Valley 1.6;
- 1.19 (563 ā 561) for Stardew Valley 1.4;
- and 1.3 (484 ā 482) in old unofficial guides.
Open source
- We have 3,586 tracked C# mods, of which
- 2,272 mods (63%) have a source code repo, with
- 1,204 (53%) in a multi-mod repo and 1,068 (47%) in a single-mod repo.
Web costs
And finally, web hosting costs for the SMAPI.io site, update-check server, and API rose a bit to US$250/month. (The graph is always a bit behind due to billing cycles.)
See also
- Stats for ā July 2025 ⢠September 2025 ā
- Full mod dump (77 GiB)
- Download all open-source mod repos
- Dynamic view of mod dependencies
And that's it for this month!
(How bad are the bandwidth costs for downloading the mod dump, by the way? Ever since I moved over to Linux, dumping everything myself has been... problematic with the lack of LINQPad.)
-2 XNB;
that's a relief
real omg 
Bandwidth + storage is around US$47/month, but that covers all storage (including uploaded SMAPI logs and JSON files). I don't think Azure provides a breakdown of costs by blob structure unfortunately. It's there to be downloaded though, so feel free to grab it when you need it. (Just maybe don't program thousands of bots to download it individually.)
(Hundreds of bots it is, then. Got it!)
Joking aside, thanks. That's reassuring!
is there a way to check if the player picked a cat or a dog? i'm not worried about checking for modded animals, this is just for dialogue
Yep, the PLAYER_PREFERRED_PET game state query (which you can check in dialogue using the $query command).
oh awesome i missed that, thank you!
Iām in this image and I donāt like it /lh
Nevermind, he won't talk 
-2 xnb
+4 Json Assets
Nature giveth and taketh
would english say something like "he jokes but doesn't have the heart about it" or something? It would work in french but i'm unsure how english would say that. For someone that is trying to act like things are ok but they aren't
thatd be kinda close to "He jokes, but his heart isn't in it." though i usually only hear that when talking about being unenthused, not trying to pretend like things are ok
I don't think the saying is that but I'm pretty sure there is one
hmm, funny how we may have similar ish expressions but with still a bit of differnt context
Honestly it wouldn't suprise me if it was ripped straight from french
not 1:1 but Iām a fan of āhe put up a smile, but it does not reach his eyesā
currently i have "he smiles feebly" which is close enough, i wanted to have something to reinforce the idea, but to be fair SDV rarely use % so maybe short is best
I'd say Selph's quote is the closest you'd get ngl
that is ok
he's joking, but there's something else behind his smile is more the kind of idiom I might use
theres also putting on a brave face but that's more of a generic thing than relating to jokes or smiles
Hello!! sorry for interrupting im just popping in for some quick help jhdsajhdfei im making a new crop, and seeds are all good and set up at pierre's but theyre being sold at 4x instead of 2x markup and ignoreshoppricemodifiers only bumps it back down to 2x D: just wondering if anybody has any insight
im going to strangle that man
reasonable crashout
I guess that means u put base value of 27 or 28?
Yeah but do you actually want something to sell for exactly base price i mean
THIS FIXED IT OK
FALSE ALARM
yes !! i was just trying to fix it going for 4x instead of 2x!!!
so if i can get it to show base price first
then problem fix
yay
that is pierres price modifier
okay, so the problem was mine was selling for 4x, not 2x
hey! would this work to have Krobus say "You haven't? That's fantastic!" when the query of not killing any shadow people is met?
"4_*": "...Have you encountered others like me, in the caves? I'm sorry if they were hostile towards you. You see, we've learned to fear humans... there have been too many... unpleasant encounters.$2#$e#You haven't... slain any of my kind, have you..?$3#$query PLAYER_KILLED_MONSTERS Current Shadow Brute 0 0#$b#You haven't? That's fantastic!$1",
are there other modifiers that i need to exclude as well?
i think you may need to quote Shadow Brute
bc the problem was that there is an extra unnaccounted for 2x price mod on it
you need a |alternatetextiffalse after too
got it, it showed up in red when I wrote it so I wasn't sure, thanks :)
I thought people just.. added their stuff to pierres shop and didn't change any modifiers
Gotcha, how would I do that?
$query PLAYER_KILLED_MONSTERS Current Shadow Brute 0 0#$b#You haven't? That's fantastic!$1|Oh.$s"
but with whatever text you want krobus to say instead
tysmmm! :)
it's explained on the dialogue page
i wasnt going to change the modifier, i just wanted to see why it was going for 4x instead of 2x, and what was causing the extra 2x to happen! they are set at base price 55, but were selling for 220!!
Oh.
sorry if i was being confusing!!! either way its fixed now :D
Hello, I am new to mod making and made my first mod for ease of use with farming tools. It does have issues with character animation when changing directions though. Would I have to create new sprites/animations to fix that?
can you just set the farmer to those animations?
So I did that with the Axe and Pickaxe, where I wait for the animation to finish before changing directions. (Earlier it would lock the character into the tool use animation and the actual tool would clip to a different direction if the mouse was moved.) This does not work with the hoe, watering can, and fishingpole because I am using the Game1.player.UsingTool boolean to determine if the character is currently in the tool use animation.
(Sorry for Interrupting)
So... @twin wadi
My NPC does have a Dialogue.json and it's listed in the content.json, yet when I try to talk to him it does nothing at all...
huh whats going on?
Ah! I answered to your message in #1411302934834319390 , I just didn't want to spam with @
ohhhh i didnt see your message there
unless you meant if I need help with the GMCM mod specifically, then nevermind haha
i can help, as long as its an error i know how to solve ahaha lemme backread a bit 
okie thank you
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.
sure thing!
(also im sometimes on a diff tab so pls ping or else i might not see
)
I just saw I got an error in SMAPI too, one sec. I'll upload that too
ohh alright!
@twin wadi here are the content and dialogue.jsons!
oh! no it isn't!
Then it may be the issue
The SMAPI error is gone now but he still won't talk...
A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.
- Load up a save (with Content Patcher installed)
- Type
patch export <FILEPATHOFTHING>in the SMAPI console and hit return - Look in your
patch exportfolder in the game folder for the relevant json file or image - If it's a json file, you can share it via smapi.io/json. If it's an image you should just be able to look at it.
With the Announcement of Stardew Valley v.1.7 update, is there a specific place to follow to get the latest changes or changes for SMAPI for it?
(Im late for bed so no ping pls)
okie
There is a thread but only for technical modding change
It may be in pins
For technical changes theres this thread (https://discord.com/channels/137344473976799233/1387907186713301072) or I think theres a page on the wiki?
(Sleep well!)
(Thanks)
Thanks Yeah I see it on the wiki appreciate it
ah nevermind, when I left the house it showed up again
good night!
(I turned off the Ping I hope it didn't ping anyways)
for some odd reason it doesn't work
could you send the log file here anyway? if we see why it doesn't work, you can try again once it's fixed.
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 6 C# mods and 2 content packs.
was just about to do that haha
the error i got when trying to export the patch didn't save into that so, I'll have to copy paste it...
oh, you've still got errors in your schedule and dialogue json files, so they won't be loaded
Ohh
patch export <pathofyourdialogue>
[Content Patcher] Couldn't load asset '<pathofyourdialogue>' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.
patch export <assets/Dialogue/Yapping.json>
[Content Patcher] Couldn't load asset '<assets/Dialogue/Yapping.json>' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.
patch export assets/Dialogue/Yapping.json
[Content Patcher] Couldn't load asset 'assets/Dialogue/Yapping.json' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.
the patch export won't run because your files weren't loaded as game assets, and your patch export filename usage won't work because it expects a Target asset name, not a FromFile filename
ahh
once you've fixed the issues in the json files you'll be able to load them as game assets, and then you can patch export the game assets by target name if there's any issues left to troubleshoot
but for now let's look at the json files
''learn coding'' they said, ''It'll be fun'' they said
hahaha
programming isn't about having fun, it's about making the computer miserable
which one should I check/upload first?
or well we lol
both
parallel processing
okie dokie
the content and dialogue.jsons are already in the chat (Just in case you didn't see)
oh right, assumed you'd made some changes since. let's see
only removed the . after the nugget but that was all
the issue is that your NPC Dialogue Patch change is something of a black hole
for map making, is there a way to make a touch action run only once?
(what I mean by this is for example when using a touch action like TouchAction Emote, is there a way to like make it trigger only once)
firstly, you're targeting the Dialogue, Schedule data, and Schedule strings assets with a dialogue fromfile, instead of just the Dialogue asset
ohh
secondly, you're using Load instead of Include for this change, so it's trying to add a Content Patcher json file as the dialogue and schedule asset contents
you can either use an Include action here to apply all the changes inside your dialogue file, or keep it as Load and remove all the CP behaviours (everything but the {} value of Entries) from that file so it's a valid dialogue asset
alrighty I'll try switching it with include!
continuing from that, if you go with Include you'll have to note that you're using an EditData change on some target Characters/Dialogue/{{ModId}}_<Skott>, but you haven't actually used a Load action to provide that asset yet, so there's nothing for your EditData to edit
what people generally do here is load a blank json file, usually named blank.json with the contents literally just {} , and Load that as a basic game asset to edit data into
your content.json might then look like this:
https://smapi.io/json/content-patcher/d4025c2c135f435fabe6082f5c7e87b8
where you've loaded all your {}-like game assets as blanks, and then included your dialogue changes
did you.. actually make a blank json file
this is why we don't rely on luck š
I'm so tired lol
also as CP says, Include changes don't use a Target field, since they aren't changing a game asset. they're just including another CP file
sorry that was a load-bearing comma
Anyone know if any map other than the pirate night cave map can use Action DartsGame? Or is it hardcoded just for that map
in your blank.json:```json
{}
in your content.json:
```json
{
"Action": "Load",
"Target": "my funny target",
"FromFile": "blank.json"
}
ahh
there's an example in the content file i linked above
only a map with type IslandSouthEastCave, so.. effectively just that map
only a location* with that type sorry
Ah ok. Do you know if there is a workaround
well you can make your location that type but thats very not recommended bc then that breaks many other things you probably want to not be broken
Okie
If I did ever wanna do that, how do I change a location type 
the Darts game also rewards you walnuts when played, so reusing it elsewhere will have side effects actually it only rewards you if currentLocation is Locations.IslandSouthEastCave
its in its Data/Locations data
Ok
you really, really dont want to do it willy nilly
Oh ok I wont do it
Yeah I probably wasn't gonna do it, would probably break stuff
@ivory plume hello pathos how goes i want to add menu options to lookup anything
like this
lol yea
unfortunately it means i gotta go and refactor all the hardcoded colors too
interesting that the tile action is limited to the islandsoutheastcave location but also has safeguards for the minigame being created elsewhere. i suppose there's also the minigame debug command
Yeah, but for my map
It is interesting that is is so strictly limited to the ginger island map ONLY though
oh omegalinc since you are here did you see this #making-mods-general message
see what in here?
it's not so unusual or unexpected, it saves on checking tile actions on locations when the game knows for sure that there's only one Darts minigame ever used, and that's on one specific location
oh yeah
someone asked me how they could translate your mod (this one https://www.nexusmods.com/stardewvalley/mods/29329)
just funny that it then also doublechecks to avoid rewarding you outside of that location when there's no simple way of doing so without debug commands
yeah
atm it's not possible (without painful methods) because you didn't use i18n in this mod
Who r u talking to
did you not make this mod 
make what mod lol XD
i kinda assumed cus it says OMEGAlinc
this one
chu just told you whaty about it
are you willing to add translation support
oh yeah I could
alr 
Yeah sorry I dont sometimes see pings
I'll work on it soon š
Yes I added it!
Hm
I do
and I did infact misclick lol
Now it's in assets
And it still has errors
this one is looking for just blank.json instead
u should prob fix the Target on Action Include stuff too
do I change it back to load?
well no, the fromfile is still a CP file. you'll just break it more incredibly
oof
Hi! What do you mean by add menu options to it?
Sure, that could be interesting (particularly if other mods can register themes or something).
(Reminds me of the Chrono Cross menu options.)
with one flavor based on letterbg and one based on menutiles + IClickableMenu.drawTextureBox
some of the letter bg are a little disaster hence need to also config the colors 
maybe i do that in a second PR tho, and do bg that look ok out of the box first
the reason why i need this is because im using an interface mod with fancy smancy letter bg so lookup anything is unreadable
I'm kinda stuck on ideas for professions for a magic skill. I want them to be cool and give you incentive to try the other branch later on, but not so cool you get FOMO in your single player game lol.
The SMAPI errors are fixed, but unfortunately he's still being stubborn and won't talk
Does he have gift tastes?
Yes he does
ahh but I might have a small error in it, I'll try something and see if the issue persists
Actually, does your Target for his dialogue and stuff actually have his name as <Skott> with the angle brackets?
in the content.json it doesn't have a target at all, since its an 'Include' action instead of a load
and in the included file?
could you try running patch summary mymodmanifestuniqueidhere ?
and then share the log here, of course
Is your NPC actually called {{ModId}}_<Skott> in the Data/Characters entry too? The angle brackets are very unusual.
welcoming our new villagers <div> and <a href="json.smapi.io"> š¤
the mod Id in data/character is {{ModId}}Skott.VinoNugget
and the DisplayName is Skott
that one worked, is ther a site from the governor bot too?
Then your Target needs to be Characters/Dialogue/{{ModId}}Skott.VinoNugget because it needs to match what his internal name is.
Although you don't really need the "VinoNugget" in there because that's what the {{ModId}} token is for. It will add whatever your mod's unique ID is from your manifest. So if your unique ID was VinoNugget.Skott (for example) then you're currently making his internal name VinoNugget.SkottSkott.VinoNugget.
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnāt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 6 C# mods and 2 content packs.
hmmm
i should mention here that mymodmanifestuniqueidhere should be your actual mod manifest unique ID
You need to actually put your own mod's mod ID
feel free to run it again and re-send it
oh lol i just copypasted it hahaha
i'll remember to write it out as patch summary my-funny-and-cool-UniqueID-value-from-my-manifest.json-file-goes-here-š„š„š„ in future
With which bit?
Generally the coding of the mod but right now I mean applying that syntax to my files
plus, I now got a schedule error but the reason for that is that it's the template from the wiki still.
Can you link me the wiki page that has the template on it?
I'll fix that now so you can see what it should look like
Hello! Aviroen here.
Below I have constructed a ROMANCEABLE NPC template which are all standalone.json(s)
This is assumed that you understand Content Patcher to some degree.
"What does standalone mean?"
It means it can be it's own separate json like "NPCNAME.json" or "Dialogue.json" or "MarriageDialogue...
I don't see any errors
Angle brackets in this context mean "this thing is mandatory". So you replace whatever is contained within the angle brackets and the angle brackets themselves with whatever the words inside the angle brackets are telling you.
ah wait
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...
That's the one, sorry!
In this instance you will have followed the template's instructions to set up a Dynamic Token that looks like this
{
"Name": "Skott",
"Value": "{{ModId}}_Skott"
},
So when you have bits like this "Target": "Characters/schedules/{{<NPCNAME>}}", you replace it like this "Target": "Characters/schedules/{{Skott}}",
Ok I found a couple of nowiki tags in that second link so I'll fix those
No need, I'm working on replacing the jorts cat template with the full on template
Well yes there is because you aren't the only person using the tutorial lol
true
Thinking it through helped thanks š
I was gonna ask a long ass question but I answered my own question

(thank you Aba, I thought I got them all
)
No problem! I know they are so easy to miss lol
I'm currently trying to understand how to make a custom data asset for CP mods to target... I'm staring at examples and not getting it bahaha
have you seen this wiki page?
have you ever made an NPC? know how you have to make your own Characters/Dialogue/MyNpc? exactly the same principle and result
Only done it in CP before ahaha
Waaah this whole page is awesome
ah, well there's nothing stopping you from having a CP component if you're using C#, other than that it's explained in the link above
what are you frameworking
Uhhhhhh
I'll tell you as soon as I confirm with my co-conspirator
Because we haven't really talked about this anywhere outside of DMs yet ahaha and I just wanna make exttra sure I've got the green light to talk
Also I kinda wanna make it work first just to make sure all our ideas don't go kaput
Ough I feel that
I'm trying to redesign some stuff right now because we're both new to Stardew C# modding in different ways
providing an asset is a good start. better in most cases than doing your own content packs
something that i feel is important but don't have the words to articulate is providing entry points(?) to other game systems
that is stuff like exposing Condition for game state query, places to put tractions, use ItemQuery instead of asking for hardcoded list of items, etc
i guess i would call that composability
Out of curiosity, were you one of the first framework devs to do that, ichor? Because I've been using Secret Note Framework as my mental example of asset-providing frameworks this whole time
i like your fancy words sir ichor of the tower
that's a great question, but honestly i don't know
i think aedenthorn started it probably
it feels impossible for it to have been me
been doing it since 1.5 psure
Oooh that makes a lot of sense
the kind of custom asset approach had always been possible, but it wasn't very popular before 1.6 bc of the landscape
i hope you've been using a recent release of SNF for your mental model. i did the asset invalidation kind of poorly in the early ones and had at least one edge-case race condition
like it was commonly understood that you need the JA/DGA for items, and then the PFM for artisan machines, and the MFM for the mail, etc
SPU did it in april last year, but I copied it from someone else, so definitely earlier than that
Oh I don't think I retained any information for long enough for that to be an issue ahah
dont remember who i copied from though
now that CP does all of those it becomes a lot more attractive to offload all the grunt work to it 
i think i just copied from the wiki the first time i had to do it
and honestly i have at least a little regret about how nested trinkets data model is
yeah, once you start removing content pack formats it starts to really grind when you have even one more
(in my defense i looked at Data/Machines and went surely ppl can deal with it)
JA, PFM, MFM, etc. all had their own packs so you had (e.g.) SVE with like ten bundled folders. then most of them vanish and now i long for FTM not to use its own packs anymore 
(editors note: people cannot deal with Data/Machines either)
machines...
also jokingly longing for FTM to have a name that describes what it does
the real farm type managing was the friends we made along the way
forage.. type mod
is it not about transing your gender?
the world's your farm if you think hard enough
oyster type manager...
forage, terrainfeatures, monsters. take it or leave it
i need to make the hero image/thumbnail for this danged mod and i can't. i don't want to graphic-design-is-my-passion it but i have nothing. try again tomorrow, i suppose
honestly the thumbnail is the part that hangs me up the most
i would play with oyster type manager
halloween puzzle dreams looks terrible
cant go wrong with scroll generator over darkened screenshot
false. i will never use scroll generator
i didnt say you would. just that if you did, you couldnt go wrong with it
i choose funny shape with gradient overlay and drop shadow and slight rotation, title in bold all-upper white text with stroke
though fsr i had it in my mind that this must obviously be some sort of framework mod
maybe even sprites. maybe even related to the mod.
if its not a framework mod i think one can go wrong with just the scroll generator
the only thumbnail ive ever put effort into was BETAS and i think that was worth it and means i never need to put effort into such a thing again
-# i think the scroll generator is wrong in every case. the results are unpleasant
i hand make all of my thumbnails with love <3 even if that love is cropping an in-game screenshot into oblivion to make it fit nexus
unless you count edoM rorriM, whose thumbnail is a screenshot of the title screen, which took weeks of grueling effort
i'm telling kdau you said that and he's gonna be upset
fix the keming and the letter baselines and i'll reconsider my position
what if you just hand-draw your own stardew scroll
whimsiless.
agreed, whimsiless behaviour (/lh)
I have been diagnosed with lack of whimsy so I support ichor's position on principle
Submitting my bid
what does it mean
Actually mighty tempted to just do this for all my thumbnails from now on.
eagerly awaiting exploding trucks mod
this is how dolphin lures me
let me guess. this one's unlockable bundles
thats obviously chu's take on RTF
I'm working on the schedule right now and I'm confused about what exactly would go into the <KeyIdentifierIni18n> field...
where are you seeing that field name?
That's in Avi's NPC template
ah
(in the future, youāll probably get answers more quickly if you include the context of what youāre asking, vino)
I am also not sure what Avi means by that because it should be a Strings asset key, not anything to do with i18n
oh they use it in three places, one correctly and two I think incorrectly
I assume it's just because she calls her string key the same thing as her i18n key
one of them is inside an i18n token, which makes sense
ahh sorry! I'll try to remember that
oh right itās just because this is a template, not a tutorial
so she gave code that works if they match I think
That would explain why I couldn't find anything on google
(or in my other installed NPC mod)
In general if you se "< thing >" on a guide, it means you should put in your values like "mything"
It's for if you want schedule-specific dialogue. You edit Strings/schedules/yournpcintername to add a key with whatever dialogue you want in it (via i18n) and then in the schedule you refer to that key. So if in your strings file you've made a key called "SkottLaughs" then in your schedule you'd have \"Strings\\schedules\\{{Skott}}:SkottLaughs\"
ahh I see, Thank you!
(I have
ed avi into maybe attempting to explain that at some point, we shall see)
Flipped a table upon her?
Drat, I have gotten my item drops wrong
Oh because I want Condition not PerItemCondition
Hmm or maybe both
Poop no that is not better
Hmmmm
????? How did I just get quartz
Ah ha ha because I forgot a comma
Success! "PerItemCondition": "ANY \"ITEM_ID Target 92 296 399 18, RANDOM 0.8\" \"ITEM_ID Target 22 404 16 20, RANDOM 0.2\" \"ITEM_ID Target 257, mushymato.MonsterVariety_LUCKY_RANDOM 0.01 @addDailyLuck @addPlayerLuck 80\"",
recipes that are unlocked on a skill level up; if a player installs a mod after reaching the required level, will they stil lrecieve the recipe or do i need to send a secret trigger action to make sure they have it?
you should get em
awesome
Does anyone know of a way to display the āor ā symbol on a map over an item of interest until the item is interacted with, similarly to how it is when doing vanilla quests?
I want to make sure that players read a note left on the ground in someone's house, but I know that vanilla tends to be pretty sparse in terms of interactable map strings, so lots of people may not be going around clicking on every note they see.
I have spacecore, meep, and betas as required framework mods
Unlockable Bundles can have bubbles if you're using that. Otherwise I don't think there's anything
dang yeah, I'm not adding bundles to this currently
perhaps if i use this item sprite instead of a map sprite it'll look obvious enough
When using CP to patch a map via json, can SetTilesheet refer to any tilesheet in maps folder, or is it only restricted to those already saved to the map file?
in the case of wanting to add a sprite from springobjects to this map that doesnt have springobjects yet
Seems like it might take only the tilesheets that are currently on the map file, so i might need to make my one tile patch a tmx file and then overlay it into the map ? 
Only those already in the map, yeah
And yes you're correct about how to do it instead
Woo
HE FINALLY TALKS!!
Thank you all for the help! 
alright another question about something i never do, is there a very easy CP condition that can be used to set gift tastes for npcs that are invalid until you meet them? i.e. SVE apples, etc.
I know I can set the same conditions as it takes to meet the npc, but I dont want to hunt that down for every npc I add to gift tastes. Would rather run some CP condition that only returns true if the npc actually exists
"Relationship:Apples |contains=Unmet": false? Although I would've thought that their gift tastes entry would exist in the game before they are unlocked anyway (except in the scenario where the mod author didn't add their Data/Characters entry until after some conditions were met).
yes, that scenario is sometimes the case for modded npcs
Would CP throw an error if you try to assign a gift taste to a character that hasn't been loaded/doesn't exist in the game yet? It just adds an entry to npcgifttastes, doesn't it?
if that's the scenario I'm 80% leaning towards that condition throwing a warning in the console because e.g. Apples doesn't exist
It does because it's a text operation to add gift tastes
Not overwriting an npcs entire entry
you could low priority add your own gift tastes
seems like the perfect opportunity to kick the can down the road until the next update overhauls the gift taste data
might as well
alternatively I think potentially using fields instead would be fine
Welp, SVE does use a CP condition to add Apples
if it's causing compatibility issues (even just warnings) I'm sure you could mention it to flash to change to using builtin conditions in character data
it's what they're there for, after all
by they I mean the conditions, but probably flash too
Probably will just wait for gift tastes to be refactored; dont think anyone will notice that apples from sve doesnt have a particular favorite dish from cornucopia
Just curious if anyone knew a quick workaround since it's a common issue for other npcs
SVE is due for an update here soon so if thereās something you want changed let me know!

the man himself š
Woah
though I think if you just remove the check specifically for apples in the condition Aba posted it'd work and instead put Apples in the contains
Wonder what sve's gonna have in its update
I think asking for conditional NPCs to be refactored might be a big change though when the only benefit is easier gift taste editing; the other option is adding the items to the gift tastes on sve's end (which is generally what I ask from npc modders), however, not sure if you want to add modded items to your character's gift tastes
I think I'll try this
that sounds like it would work
though the contains may need to be Apples:Unmet
or just every possibly relationship type
I donāt mind adding other modded items to gift tastes
Do you mean I wrote it incorrectly button?
Just give me a list and Iāll add them in
"Relationship |contains=Apples:Unmet, Apples:Friendly" etc for every friendship type
I'm on mobile so I don't wanna type it
Alright! I'll dm you in a little bit then. It would give you more control over their likes and dislikes anyways as the character owner
Not incorrectly per se just a variation that I think would throw a warning if the data for apples was not launched in yet
Patched
Your way checks the relationship with Apples specifically so CP goes "who the hell is Apples"
Ah right that's what you meant by "that condition throwing a warning". I'm so slow today.
My way asks CP if any of the relationships the player has are Apples and CP says nah ur good
Yep I follow now thanks ^_^
If Apples had the data patched in but just not unlocked yet yours would work
good because I'm 
I added gift tastes to Apples and Lance and it required some extra stuff, but it was really just adding the same conditions that unlock their giftability to their gift taste patch
"HasSeenEvent: hostPlayer |contains=7775927": true
},```
It was this for Apples
ah you said you didn't want to do that, I am good at reading today
Ridgeside also has some NPCs like that, specifically ones that are NPCs before they become giftable NPCs
Does anyone know if it's possible to make SMAPI save the last 10 logs instead of saving only the last one?
nope, outside of using external toolsto backup the log prior to launching smapi (or manually)
mods can't really do it because the log gets wiped prior to mods instantiating and trying to do it by detecting when smapi is closing and backing up is risk prone
I really wish spacecore context tags ingredients meshed well with love of cooking's choose-your-ingredient. (not directed at anyone who may or may not be in chat
just that it feels like the kind of thing that would be sooo serendipitous if it did)
if LoC just adds those context tags would it work out of the gate? thonk
I'm forever at this crossroads of "Well I could add an option for players to use any similar modded ingredient in any recipe ever, but would that cause people blaming me for random ingredients disappearing from their chests or not..."
people would blame you for stuff anyway wouldn't they 
serendipitous for whom 
unfortunately the main roadblock has always been that SpaceCore.CustomCraftingRecipe and StardewValley.CraftingRecipe have absolutely no inheritance in common. none. no overlap. completely incompatible
which means i pretty much have to write a second separate recipe resolver
i'm sure people can say the same about my cooking menu and the base game crafting menu, though it does at least meet the bare minimum inheritance to be considered a menu
and there's a public bool cooking = true for reflection's sake i guess
sometimes if you're making something better, or just plain different, it's easier to drop all the baggage and start new
although looking again
hm
@2468 who do we appreciate
do your spacecore recipes generally show the correct description
Oh please don't worry I know how much rewriting would have to go into making that work
It's just something I dream about
or do they show the uh. DispayName
oof I dont know if the recipe description thing was ever resolved
[sic]
ah that's why
// Why are we using displayname here? I dunno, the old code returned the display name...
LOL
They actually do return the recipe description
Seems like it was fixed at some point
(Butter any being the flexible ingredient in this case)
i guess it's fixed in some contexts but not others
(SpaceCore.Framework.CustomCraftingRecipe:StardewValley.CraftingRecipe).Description takes from SpaceCore.CustomCraftingRecipe.Description which is overridden by SpaceCore.VanillaAssetExpansion.VAECraftingRecipe.Description which returns the DispayName
starting to get dizzy
it would be funny to ping chu to do it while i'm sitting here with the repo open and a pr waiting to be merged
But seriously if it's a hassle, don't worry about it. If LoC ends up not being able to juggle this feature, I probably just won't code in the scorched earth config option that replaces every ingredient in all of our 530 recipes with a spacecore context tag ingredient 
That would be like at least 20 hours of modding saved right there
unfortunately, peace was never an option
only haromany is an option no
parsing recipe fields done š„³ now the recipe resolver
I love tokenisable translations
"Jodi4Hearts_Jodi_HaveDinnerWithUsBringFish": "Anyway... I came by to ask if you wanted to have dinner with us tonight!#Or tea, whatever you call it. Your {{Lowercase:{{GrandparentName}}}} was always picky on that point.#$b#Now, [...]"
It's so beautiful I may cry
loving my best friend (break), and spending time with them when they are still around
New quote added by atravita as #6608 (https://discordapp.com/channels/137344473976799233/156109690059751424/1381336155139604641)
So what did i win
Someone please say a lifetime supply of yarn
Even if it isnt true
3 Some bronclies
do building skin textures support the {{season}} token and change with season? I can't remember if that's what I was having issues with or not
They are just loaded targets so they do
oh perfect thank you
A lifetime supply of yarn!!!! š§¶
I remember you having an issue with paint masks and seasonal changes?
Ahhh it was paint masks not skins, thank you
your timing in impecable, I was just switching over to here too
I'm attempting to use tokens so I don't have to load each texture individually, this should load from Assets/Exterior/spring/TardisPlus/texture_0.png right (and it's derivitives)?
{
"Action": "Load",
"Target": "{{season}}/TardisPlus/texture_0, {{season}}/TardisPlus/texture_1, {{season}}/TardisPlus/texture_2, {{season}}/TardisPlus/texture_3, {{season}}/TardisPlus/texture_4, {{season}}/TardisPlus/texture_5, {{season}}/TardisPlus/texture_6, {{season}}/TardisPlus/texture_7, {{season}}/TardisPlus/texture_8, {{season}}/TardisPlus/texture_9",
"FromFile": "Assets/Exterior/{{Target}}.png"
},
Yes I think so
I thought the reason why they werent loading into the game and patch export wouldn't work on them was because I messed up in the load part, nope I put the file extension at the end of the building skin texture 𤦠I have a rubber duck alternative but it certainly isn't working
there isn't a better way to parse warps besides this right
You could write them on one line each and then combine them all into one line using multi line cursors at the end
what would I use for that?
Open a new document in a new tab, write the desired warps, then put your cursor at the front of the second line and press ctrl alt down to put a second cursor at the front of the third line. Continue with the ctrl alt down until you've got one cursor in front of every line except the first. Hit backspace and they'll all collapse onto the first line. Then hit space to make sure they're spaced correctly.
i have a faint idea of combining lists with a delimeter but it's foggy in there
I do this by muscle memory so ctrl alt down might be not quite correct. It might be ctrl shift down instead or something.
ooooh yeah that'll def help with me fucking up warps, thank you aba
Multi line cursors is such a helpful thing to know how to do when you need to do the same edit to a bunch of consecutive lines
you can also hold middle mouse and drag to place many cursors quickly
I only just found out about it yesterday, it is a bit useless when you need more cursors every other line though
Is there a way to get what song Sam's band plays for his heart event as a conditional?
i think you could use PLAYER_HAS_DIALOGUE_ANSWER Current number where number is 76, 77, 78, or 79 for poppy, heavy, techno, or honkytonk entries in Data/Events/Temp, respectively
you'll find the numbers given as $r dialogue question answer responses in Data/Events/SamHouse:44
Thank you! I'll try this.
maybe you could also check for the event fork IDs in Temp as events-seen, but i'm not sure if they count
if it works it'd guarantee you were actually at the show and they played the song, otherwise it's basically just checking your/their choice of song
i suppose if it doesn't work you can seenevent the actual event and also the dialogue answer
Yeah, I'll test it out.
I'm pretty sure has dialogue answer will work, Elliott's 2 heart uses the same thing
(which I proceed to
for RWE)
So I have a clickable menu to upgrade your spellbook, similar to tool upgrades, but I want the wizard to offer them. Difference is when you approach Clint for upgrades you're approaching his shop, so my implementations keep trying to interrupt the Wizard's dialogue. Thoughts?
Why not have the wizards book open a dialogue to choose between wizard build menu and book upgrade, it may be better for compat with mods that change the wizards dialogue and it may be easier than interupting the wizards dialogue too?
Creating a tiledata object to open the shop on is the only way without a special patch or C# to trigger a menu instead of dialogue
I did consider that. Now that you mention compatibility you're dead on I think I will just do that. Thank you, bobo
You can make the wizard do it but the correct way is to queue up a $action to his daily dialogue after exhausting the normal daily dialogue
Would that only trigger once a day, or as much as you like?
Hello guys! I am new to this entire everything! haha. Um... I am trying to udate a mod for personal use, it uses CP for the most part, but theres some notes in the JSON that are confusing me, and im trying to convert the TMXL file into the CP,
Anyone think they might be able to help me understand some stuff?
You as the C# mod author is responsible for pushing this dialogue back onto his stack whenever it is consumed
!json Post jsons
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.
!converters you could always use tmxl2cp
These community tools help update mods to newer formats or frameworks:
- Convert to Content Patcher from Custom Furniture, Better Farm Animal Variety (BFAV), Custom Music, JSON Assets, More than Necessary (MTN), SAAT, Shop Tile Framework (STF), TMXLoader, or XNB.
- Convert to other frameworks:
- Other tools:
I think I'll definitely skip messing with the dialogue then š
I did see the Pillow thing, I just dont know hw thisi would work with the existing Content Patcher folders? Yesterday was the first day I evere even installed a mod, let alone trying to edit one
I can't contact the creator so I can only do it for personal use but The Robin Romance mod from Soapierbean (My A key seems to be having some issues lol)
I sent a message on Nexus but just a matterif they answer or something
I think there's an alternate one these days
There are but they dont seems as fleshed out
Dateable Robin 1.6 and Hitme's Robin I believe they are
I know Robin Romance adds an entire new NPC Veronica, and also adds Robin into the festival with a bunch of new dialogue in general as well
Problem with old npc goes beyond just fixing the tmxl dependency
And permissions are closed on that one
well from everything I can see, the TMXL is only there for the spouse room and furniture and the dialogue. And yes, I reached out to Soapierbean, but Ive been told it would be fine as long as I didnt distribute a fix, and it was for personal use.
If you are fine with all that and understand that your update is only personal use then take a look at the startmodding guides linked earlier
Im just trying to understand some notes in the JSON since i havent touched any of this before. I have a guide specifically telling me how to convert the spouse room stuff. but the JSON has a note about spouse room not having the required buiding layers, and I was wondering what exactly that meant, and if thats why the spouse room was kept as a TMXL file
More building layers were added somewhere along 1.6 I believe, maps now support many layers as long as they're named the same as the standard layer, but suffixed with a number
so its pssible to havce to few layers?
A higher number will always draw over a lower number or a layer without a number
oh wait that means it might have too many layers originally as well huh?
I'm going to assume the original mod used too many layers so required a dependancy
I definitely think im biting off more than I can chew to start off with lol
Yeah so the TMXL files in the mod are specifically the TMXL of the spouse room, I think it was a .png file for the furniture, and a .png file for festiva, which I believe applies to the dance festival
Thats everything in the TMXL folder basically
Again it's not just the tmxl bits that need fixing
The cp stuff is likely targetting old fields too
NPC changed a lot in 1.6
As far as I know the mod was updated for 1.6 base.
tmxl didnt have overlap with working with 1.6
never? the 1.24.1 TMXL made it sound like it originally worked with base 1.6?
that was released in march 2023
It had some game breaking crashes
Ah. I think I saw the person made a newer version of TMXL but its not ready yet. I saw a new version on Nexus actually got hidden 2 days ago. So i need to really go through the Content Patcher stuff too even if I do this?
the update barely worked
That one still has the game breaking crashes
thats 1.24.3alpha, there ws an even newer version apparently but its not ready yet lol. Yeah moon told me about the crashes with .3 so I starting looking into what I would need to do.
!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!
The spouse room stuff is normal npc deal now
this is not entry level stuff to learn is it lol
Honestly it seems more intimidating than it is
Hold on! Ive been doing a little more digging! Can you guys explain this a bit!
"This mod requires Content Patcher & TMXL Map Toolkit (needed to add Robin's spouse room; as of 1.6, without this mod, you'll get Abigail's spouse room instead). It seems people have run into various issues installing through Vortex, so I've disabled the option. If you are having issues, make sure to delete any remnants of this mod in your mod folder, then download and install manually. I don't know why this mod has problems with Vortex, so I'm unable to correct it."
This is a note in the before you install of the Mod. It says as of 1.6.... so... was this mod updated for 1.6, but never properly converted the stuff for the spouse room?
Is there a resource to listen to the different sounds you can add to events? I'm trying to draft an event, I have the audio wiki with descriptions open, but I'm not sure how I would go about actually listening to one of the sound effects to see if it would fit in the event https://stardewvalleywiki.com/Modding:Audio#Track_list
I heard this mod might help
Thanks!
When using the When in the Content Patcher, I need to check the farm name.
When FarmName=FourFarms or EightFarms or TwelveFarms or SixteenFarms
What's the best way to perform this check?
Like this?
"When":{
"FarmName: FourFarms|EightFarms|TwelveFarms|SixteenFarms": True
}
``` << like this?
Or do I have to repeat the code for each FarmName?
last example would be what you're looking for
So, I found FarmName there, but there is no example, or saying whether or not it is possible to check multiple names
There's only 1 farm name in vanilla
You have to create your own cp token to check multiple names
What I want to check is the name of the selected farm, if the farm is one of the vanilla ones or mine, the correct thing is for this property to check its name
Vanilla farms, for example, would be: Farm_Standart, Farm_Beach, Farm_Forest, Farm_FourCorners, Farm_Hilltop, Farm_Riverland, Farm_MeadowlandsFarm
"FarmName":"Farm_Standart, Farm_Beach, Farm_Forest, Farm_FourCorners, Farm_Hilltop, Farm_Riverland, Farm_MeadowlandsFarm"
But the real names
Thank you very much
so like i am adding new npc and i have no clue about this thing + the spawn point ( X and Y )
i want her to be around mine entrance and adventurers guild i need help š
Home Region as far as I know just controls things like luau friendship
so i dont need to change that?
it's separate from their Home
ohh!
you don't need to no
thanks
Hello! I'm having some issues with an interactable tile not taking me to a map in Tiled. I'm able to load into the map with debug warp AidenHouseInterior, but in game it fails to find or load it. Here's the only property for the Object Building tile Action: Warp 19 6 AidenHouseInterior . The thing is, I have a walkable trigger in the same map that loads into AidenHouseInterior fine, could it be the layer it's on or the fact theres another warp to the same location + tile?
if the Interactable tile is set as an action warp in tiled, needs to be on the Buildings object (not tile) layer, any other layer including Buildings suffixed by a number won't work
you can have any number of warps where the destination is in the same location and X Y position, so it won't be that
also there must be a tile painted below the tile data too on the corresponding texture Buildings layer
There's a building tile under it. Heres a SS of what I have going on in my Tiled
I have the pipe at the top of my map take me to the map Mountain perfectly fine. Could it be that I'm incorrectly naming my map location even when the same name works in debug warp AidenHouseInterior?
You could try add the ModID before the location name? It's possible that SMAPI and the debug commands are able to infer the ModID automatically
warp is fuzzy search, so yeah it'll do that
if your location name has your modid in it you need to write it
don't assume correctness based on debug commands for anything, a lot of them do fuzzy searches
I assumed since they had another working warp though that might not be the issue
have you double checked that the green pipe is actually painted on the Buildings layer and not accidentally on Back?
actually I might've misread, is this pipe you screenshotted not the one that isn't working?
It's the warp into the house that's not working
Oh wait good point, the door is the selected tile data not the pipe, I also thought it was the pipe
Maybe I shouldn't have brought up the pipe oops š
does doing a patch export of your map have the tile data in it?
The fuzzy search is a tiny bit wonky in my experience
It does trigger on partial strings
But only some of them?
the actual tile data won't be fuzzy searching
Or maybe if itās ambiguous itās weird on me?
Oh yeah for sure I just mean debug warp
Like debug warp wiz is pretty reliable but I couldnāt get it to trigger for some modded locations unless I got the whole thing right I think
Adding {{ModId}}_ infront of the name in the tile property didn't work either
debug warp could be fuzzying 2 locations rather than a single location
You need to add your actual ModID not {{ModID}}
yeah if it's a modded location there's good odds they have multiple locations with the same substrings
also to be clear this will only help if your location data actually uses the modid. does it?
(Tokens are a Content Patcher thing and not supported in Tiled)
The target map does. I did get some errors in my content.json about incorrectly formatting the some test warps should I remove those if I'm doing it in tiled? https://smapi.io/json/content-patcher/06f1a90d231245f99449a1f70a0647b6
Spellbook Upgrades are in three tiers. You start with Novice, then Apprentice, Adept, then Master. Upgrading the spellbook costs a little change and special components. For Apprentice, I'm using Frozen tear and Fire Quartz so you've at least stepped in the mines a bit. For Master, I want to do dumb end game stuff so Dragon Tooth and Prismatic Shard make sense. But I'm not sure where to put the middle point. Was gonna do Solar/Void Essences, but you can just grab those while you're doing Apprentice.
Apologies for rant
What about winter items? the player has usually done a decent amount by then but usually not progressed to ginger island for the dragons tooth
Or even like iridium bars or desert materials? Starfruit could also be an option due to needing to get to the desert to access
i meant the one with the warp, not the target map. also im pretty sure those errors are actually just schemas not recognizing tokens properly? i think you can ignore them



