#making-mods-general
1 messages Β· Page 534 of 1
Text editors that detect {} pairings are generally better at it than eyes, super easy to overlook em
mhmm. Which is why I like that one
ok, no weird yelling anymore. Thanks!
Error preloading content pack 'Purchasable Dragon Teeth'. Technical details:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at /home/maria/.config/Stardrop/Data/Selected Mods/Purchasable Dragon Teeth/content.json. This doesn't seem to be valid JSON.
Technical details: Invalid property identifier character: {. Path 'Changes[0].Entries['Lassa.BuyableTeeth_DragonTooth'].TradeItemAmount', line 24, position 40.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in /home/runner/work/SMAPI/SMAPI/src/SMAPI.Toolkit/Serialization/JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentPack.ReadJsonFile[TModel](String path) in /home/runner/work/SMAPI/SMAPI/src/SMAPI/Framework/ContentPack.cs:line 76
at ContentPatcher.Framework.RawContentPack.TryReloadContent(String& error) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\RawContentPack.cs:line 80
at ContentPatcher.ModEntry.GetContentPacks()+MoveNext() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\ModEntry.cs:line 460
hmm
hang on, let me get this in my own editor and I'll see what's messing up
I love it when troubleshooting a mod because you added a tiny feature takes more time than actually making said mod 
oh did you delete the comma when you deleted the bracket after {{ToothPrice}}
missing quotes around {{ToothPrice}}
oh no it's still there in this
ooh. That might be it
Ah, good eye
Definitely that!
That makes look that bracket weird xD
Is there a use for wall furniture outside?
Okay I think it was showing you as needing one less } earlier because it was trying to pair one of the tooth price { oddly until you put it in quotes. Add another } before the ]
<Insert plug> As far as I know, only for putting paintings on the cliff walls and such with Smart Building. 
Also good eye!
(what you didn't see was me really REALLY carefully counting all the { and } LOL)
so possible, thus it makes sense to make wall art as outdoor furniture. :))
Definitely with Smart Building, yeah. I think there's another lax placement mod that might accomplish the same goal?
Error gone. :3
Alrighty, thats all i needed π
thanks
I coded the Rose Decorations as inside and outside, i can imagine garlands on cliffs could be cool π
What mod would I need to do console commands for children and spouse stuff?
Sometimes the map tiles doesn't necessarily agree, but...
Yeah, you need the extra } before the ]
You're right. <3
does patch reload work on content files?
-# actually, is there a difference between buyable and purchasable
love it π
I think it just didn't work because it didn't fully loaded the mod
More a grammatical thing. If there is a difference in usage of those two words
I have been looking into tokenizable strings, more specifically localized text, but I need some help with understanding how to actually use it
It'd probably look something like [LocalizedText StringKey]I suppose but what is the practical use of this? And what exactly does {0}do as a placeholder token? Could anyone here show me an example, maybe? 
I've never used one with values, but here's an example of a simple one from mine:
in practice, this one waits until you have been told his (late) husband's name to actually start using it.
also use it for gender a lot
it's vanilla stardew's equivalent of SMAPI/CP i18n stuff, so it's used in a lot of fields like display names (as of 1.6+, anyway)
"0": {
"Name": "House Plant",
"DisplayName": "[LocalizedText Strings\\BigCraftables:HousePlant_Name]",
"Description": "[LocalizedText Strings\\BigCraftables:HousePlant_Description]",```
and if the string it's pointing at says something like
`"Some_Key": "The price is {0}."`
you could load it with something like
`[LocalizedText Some\\Asset:Some_Key 500]`
to end up with the text
`The price is 500.`
(though I've never actually used it myself, so I'm not sure if you can nest placeholders to get i18n'd text there and such
)
also you can do this to make it capitalized~
IIRC Chu knows more about the {0} stuff. I never had occasion to use it, so I didn't figure it out
like 90% of my usage is Gender
the GENDER BLOCK
wait LASERS IN ON A TYPO
Ohhh, so your token within the i18n token ends up being either true or false and thus creating two new keys which are the name/or not
Yeah, it's LIKE using dynamic tokens, but you use strings instead and don't need to pass them through to the i18n
abigail's pronoun is not "The", rip
i love the gender block
You can also use it for stuff like... I have a mention that someone with occupational pain should go to Harvey for it. But if you have RSV, it's Harvey or Philip
gabe can i dm u?
oh and one more question: to make this work, you have to create a new patch that edits in the new strings for your mod?
Or I have a generic mention of a mail carrier unless you have Ayeisha, then it's Ayeisha
(ah, apparently the game does use LocalizedText's {0} stuff in the world map, and combines it with the EscapedText token so it counts as one argument)
"ScrollText": "[LocalizedText Strings\\StringsFromCSFiles:MapPage.cs.11064 [EscapedText [FarmName]]]"
//...
"MapPage.cs.11064": "{0} Farm"
//ultimately giving you something like "Standard Farm" in the current language
The example I followed was a patch to Strings/ModID. I am not sure it's NECESSARY for it to be that and can't be just to Strings, but it's how the example I followed did it. (And I've loaded a blank for it as well) I generally just prefer to do it following an example that I am certain works, you know?
in theory you can use them to target any asset, but it does need to exist (the blank load) and it should be namespaced behind mod ID, e.g. Mods/{{ModId}}/MyLocalizedText or any such thing
e.g. just loading/editing Strings would work but be confusing to read, and possibly bump into other mods doing it
I figured there was some reason for it
Yeah, since you'd be making your entirely new string file, you'd need a blank, but that's the smallest of issues here. I am more concerned about everything else regarding this topic
Thanks for sharing your example, that helped me for what I am trying to do, but I still do want to understand the other stuff
Well I was replying to this question. Maybe I wasn't understanding what you meant by it
No no, you understood correctly
but I feel as if have just opened a can of worms with those tokenizable strings
you can but i'm currently occupied so i might not reply right away
There is a nonzero amount of worms, but once you've got a hang of it, it makes stuff like gender swap bits much cleaner.
bumping this if anyone around has any insight
Hey uuuuuuuh can somebody help me? So, I've been modding a few artisan goods and just found out someone had the same idea for EVERYTHING I'VE DONE
I didn't know until now, I'm scared the person will think I'm copying them, I'm not, I swear, what should I do???? I was almost finishing it
!twocakes
If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.
tldr: don't worry about it, no ideas are 100% original and someone out there will enjoy your mod
Aaaaaaaaaaaaaaaaaaaaaaa :(((( Oki oki I'll try to drink some water to calm down my mind
I love that we have a command for that
I'm not sure if it's the issue you're having, but you only seem to be updating IsHoldingBomb when a button is pressed
should i be updating it more often? i figured that would only change if you pressed a key so i only should check it then
I guess it wouldn't necessarily change, yeah; I don't see any other behavior-affecting issues, though
a few methods have benign logic quirks, but nothing that would make it draw incorrect red/green that I could spot 
(e.g. IsHoldingBomb is updated by the method twice every time, once inside the method & once using its result)
yeah i'm sure my methods are very messy π
do i maybe need to suppress normal bomb-holding draws?
if you're seeing any change from your renderedWorld draw event, that's probably not the issue, though I'm not sure what it'd look like exactly
and w/e you do in that event should show up over most/all vanilla draws anyway
Anyone know about modifying location data of the farm cave if you've replaced it? Not sure whether I should be either...
A. Targeting the Location Data of the FarmCave normally using something like
"Entries": { "FarmCave": {
B. There's something special I need to do in addition to that after loading the FarmCave map file from the custom map
it should be the same location
since you're just replacing the map π€
not actually changing the location in the data
No I am actually changing location data afterwards, adding fishing areas to it
i meant changing the location name
you may want to use "Fields" or "TargetField", since "Entries" will reset any fields you don't touch to defaults
but if you're loading a new map over the original "Maps/FarmCave" or w/e, Data/Locations shouldn't require any special changes for that
It was that, I was using Entries which was removing the rest of the location data of the farm cave except the info related to the new Fishing Areas section
hmm yeah a couple days ago i was seeing the red square get darker as if two red squares were being drawn on top of each other (but there were other issues with that code, like it drawing even when not holding a bomb)
If it cheers you up, I also had the same conundrum when I made a mod that had a similar concept with one that was previously uploaded way earlier (i only knew about the modβs existence when someone asked me about compat) and I initially felt terrible at first. But know that this community follows the !twocakes rule β the more, the merrier 
(have you seen how many butters we have
)
π i'll admit i gave up on making a mod i made all the sprites for
If anyone bugs you about it, shoo them off
because another one came out that did almost the same thing
nah, i don't want to step on anyone's toes
and it got too big for me to manage anyways
after a period of Aggressive Shooing, I haven't got any "hey what about Law and Order" compat in ages.
/animate APTIsaacI false true 500 16 16 17 17 18 18 19 19/extendSourceRect APTIsaacI 0 32/textAboveHead APTMarcus \"Do it Isaac!\" Am I using extendSourceRect correctly?
I'd like to make Isaac fish at the Ice Festival, and while he does the animation and Marcus says the text, he's still only 32 pixels high so the rod isn't included
FWIW, this is the code for the vanilla villagers
Oh, it's hardcoded for vanilla villagers
/extendSourceRect Willy 0 32
You need to do bigger animations through Spacecore
Ah, thank you!
Perhaps I'll make the optional spacecore dependency mandatory, then
Yeah, in his schedule fishing animation I've managed to get around it through using Willy_Fish, but this perhaps is another hurdle....
Bigger schedule animations are easy with SpaceCore too, I have Bill fish with it
You can also do SFX for it, like Clint's hammering
Do you know which spacecore event command it is? I'm looking through the documentation and can't seem to find one to temporaily extend the source rectangle of a sprite in an event
Wait, hmm. Oh, fishing uses an EVENT
Yeah!
Hang on lemme have a look at mine
I've figured out schedules okay haha
Sorry, I misunderstood
It's no problem!
I might use a temporaryanimated sprice and just chop up a new sprite rq that's just the bottom of the fishing rod
Yeah, I did it with a temporary actor
You can just set the size of a temporary actor
addTemporaryActor Willy 16 64 44 25 2/
So I had Willy fishing in the same scene like this
Then animated Willy, correct?
Yeah
animate Willy false true 500 8 9 10 11/ like this
Ayyy! Thank you Voyager
Does anyone know if I could trigger an NPC to go to the GI resort on demand? I wanna see if some portrait changes are working correctly on the island bathing suit mode, and that kinda needs them to go to the island and enter the changing room and come out. I can't just clone the NPC there, it doesn't activate it as far as I can tell? I'm trying to avoid skipping days till I luck out on finding a day when they actually go there.
Edit: I gotta go to be as it's getting late, but I'll check back tomorrow if anyone might have something. Maybe it's not even a thing and I just have to wait the game to trigger it.
Does this fix the issue you mentioned (see message I replied to)? Also @urban patrol this doesn't break anything for you does it?
Are you still having this issue? Can you send me the relevant maps and patches?
nic will have to test it cus i dunhave a dungeon setup rn
Remind me in 19 hours to check on this
You're a meanie...but okay, kittycatcasey (#7061734) (19h | <t:1770575648>)
it was occurring mainly when i was actually reload whole map but we stopped doing that
i'll test that new build! for this do you want a zip of the whole mod or do you want me to try to isolate just the monster spawning
@tame burrow Sorry to bug you again, but have you been able to sanity check that test build to make sure it doesn't break S&S? (original message for ease of finding things: #making-mods-general message )
You can just send the whole thing if you're comfortable with it
https://github.com/nbeymer99/DeadBoyDetectives and the link to the repo if it's easier to view certain things. the spawns should be on the DungeonDoorOverride.tmx, which is being applied by MMAP
@next plaza forgot to ping
Sounds good. Let me know when you've tested the build
i need the SMAPI alpha apparently haha [SMAPI] - SpaceCore 1.28.4 because it needs SMAPI 4.5.2-alpha-casey or later. Please update SMAPI to the latest version to use this mod.
π
uh oh yeah it broke my setpieces [SpaceCore] No valid spawn tiles, using spawn group 'handwrittenhello.dbda_DollHouseSpawns.Setpieces'?
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.22631.0), with 21 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
(i actually have two logs in there now? that one is latest.player-2, but i can get the other one if that's the wrong one)
Hi! I'm working on a mod and want to show actual item icons + stack counts in HUDMessage (like vanilla pickup popups).
In 1.6, HUDMessage(string, Item, bool) seems removed, and using:
new HUDMessage(text, 1)
only shows the achievement star icon.
Is there a new API for showing item sprites (e.g. ShowItem field or something similar)?
Thank you very much for any help!
oh i actually know this one, hang on!!
try
Game1.addHUDMessage(new("your string here") { messageSubject = ItemRegistry.Create("(O)460") });```
but replace (O)460 with your item obviously
omg ty!! let me build and test
It worked! tyvm!
woo!
Hello, does anyone know how I can get a BigCraftable (aka a machine) to spawn using Farm Type Manager? When I try I just get stumps!
now what 
are you using a qualified item id (e.g. (BC)39), or just the numerical item id?
stumps are on the objects sheet, and item ids likely default to objects (e.g. (O)39), so the same id may give you the incorrect type of object with the same index/id
FTM doesn't actually recognize qualifiers, just unqualified IDs or internal names (plus the "category" field for something similar)
BCs can be spawned with its forage section, e.g.
"SpringItemIndex": [
{"category": "big craftable", "name": "39"}
]```
<https://github.com/Esca-MMC/FarmTypeManager?tab=readme-ov-file#item-settings>
if you're getting actual stumps, though, you might be using the "large object" settings
I somehow managed to add the config menu api to my code
Are there any nifty things you can do with the menus?
Ok, so i was using the large object section by mistake. I have fixed that. I seem now to be close, but i still can't get it to spawn:
with RegisterComplexOption you can basically draw custom menus yourself, though I wouldn't know where to begin 
- terrain types and coordinates use "or" logic, so
"IncludeTerrainTypes": ["All"]makes them spawn on any random tile they can; you should probably delete that and just use the coordinates - make sure you haven't slept on your test file, since
"LimitedNumberOfSpawns": 1means it'll only spawn once
oh, and "StrictTileChecking": "None" could make it fail to spawn if another object (e.g. random forage) gets in the way, so "Low" might be safer
only one "O" or "BC" can exist on a tile
What about this? (Sorry, didn't see the ping for a bit)
Does anyone here have any experience modding a game purely through dnspy
also, does 'making mods general' mean we're allowed to discuss non stardew games in this channel?
Just stardew modding
ah, kk
you can get away with modding other games in #programmers-off-topic πββοΈ though of course if you're looking for support you probably want a dedicated server for that
unfortunately the game I'm looking for has no real modding support, even though it does have a discord modding channel
the textures and sprites are all packed into asset bundles, and I'm struggling to navigate dnspy, so it's kind of fighting an upstream battle lol
same errors :/ https://smapi.io/log/ea93c5f452bc4e63ac1911164df7bfb2
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 16 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Are the set pieces at least working again?
spacecore thing aside, your GSQ should be "Spiderbuttons.BETAS_PLAYER_HAS_QUEST Host handwrittenhello.dbda_NightNurseDebrief"
nope :( still a blank map
Were they working before today's test builds?
oh yeah i wrote that without looking at documentation and haven't fixed it lol
yep, although i haven't worked on them since trying and failing to do the setpiece monster spawns
So this works as it did before?
I'm running into an unexpected issue with a Dynamic Token in CP, and I think I might be misunderstanding how the When check should be formatted.
My intent is that the YesAbby value only applies when the player has seen all 3 of the events listed. So if the player has only seen 1 or 2 of the events and not all 3, they will see the NoAbby value.
However in my most recent play session, I've only seen 1 of the 3 events, but the YesAbby value is what I saw. Can anyone point me in the direction of what I'm misssing?
/*CT dialog for Caroline - saw at least 1 Abby lesson*/ {
"Name": "AbbyVideoGamesCarolineCT",
"Value": "{{i18n:Caroline_YesAbby}}",
"When": {
"HasSeenEvent |contains=31032033, 31032027, 31032037": "true"
}
},
/*CT dialog for Caroline - did not see an Abby lesson*/ {
"Name": "AbbyVideoGamesCarolineCT",
"Value": "{{i18n:Caroline_NoAbby}}",
"When": {
"HasSeenEvent |contains=31032033, 31032027, 31032037": "false"
}
},
The way you have it set up currently works as an OR, not an AND. You want three separate When conditions each checking for a different event using their own |contains
i.e.:
"When": {
"HasSeenEvent |contains=31032033": true,
"HasSeenEvent |contains=31032027": true,
"HasSeenEvent |contains=31032037": true
}
thank you! I had that approach in other DTs but messed it up for this one.
(As an aside, are these custom events that you created or vanilla ones?)
Also, if you reverse the order of your dynamic tokens, you shouldn't need conditions at all for the NoAbby one, since the last valid DT value is used
Custom, and if you're about to tell me I need to change the formatting because of the new convention with adding your mod name to it, no need! This is now a personal mod.
The new convention is almost 2 years old now π but I understand
Whatever gets the job done, for personal use
"HasSeenEvent |contains=31032033, 31032027, 31032037": true
is the same as
"HasSeenEvent": "31032033, 31032027, 31032037"
and both are doing the check of "Does the contents of HasSeenEvent, and the set of 31032033, 31032027, 31032037 overlap at all"
hmm doesn't seem so? is this the build from like a month or so ago?
the convention is more that they don't need to be numbers anymore so they can have descriptive names, and by extension the modid prefix is nice but your sanity would improve with them having real names regardless of a prefix
I'm not trying to start an argument folks. This mod had 20-something events in it, with i18n'ing, before/during the new convention. To me, not worth it to change. For others, I'm sure it is!
have fun, though that would take under 5 minutes to cleanup and not staring at very simular numbers for the rest of your time working on the mod
such numbers are puny for find-and-replace-in-folders in your text editor πββοΈ also hi lenne
Technically no, but the code should be identical. Does this build work? #making-mods-general message
If not, then you might need to get it working with that again before we continue
yeah i really hope i didn't break it, forget about it, and then leave it for a month haha
ugh okay yeah this on my end, because it's the same error. in fact i probably know what it is, and it's invisible, passable buildings tiles i added. i'll revert my map to an old version and test the new build you sent like two hours ago with that
uhhh okay no it wasn't that, idk what the problem is? i literally haven't touched this since it was working ugh
ok, reverting my files to january 17 fixes it with the old build. i'll try the new one next. whoever recommended i use github like 9 months ago, thank you for all the times it's saved my life lol
this works! i'm so sorry for the trouble, i had no memory of changing things without testing them
is there a convenient linked list of vanilla item ids somewhere in here?
it's recommended that you unpack the game content and refer to the Data/Objects asset
patch export Data/Objects in the SMAPI terminal will also create a file with any modded items you have installed, too
ty
blueberry you're RED i thought you got kicked or something

I'm not sure which console commands you mean specifically but if you mean the ones that start with debug, that mod comes pre-installed with SMAPI, called Console Commands.
If your mod folder doesn't have it anymore you can just reinstall SMAPI to get it back.
Interesting, shall try ty
So did this fix the previous issue you had too? With the paths tile data spawning not working
Ok so, tried reinstalling and I do have some console commands, but it still doesn't have the commands I need
What are you trying to do? Are you trying to test a mod you are making?
Yes (kind of). I'm trying to see how my NPC sprite looks in-game, so I need to summon the toddler girl so I can compare the colors (they're supposed to be the same colors)
If it's not on the wiki list of console commands, then the game does not come with any others, and any other console commands you may have remembered from the past wouldve been from other mods, which I don't know of any off the top of my head to suggest, sorry.
If they're on the wiki, then Console Commands allows you to use them.
Ok I got it to work (yay!)
How do I tell the game that I want to reference the sprites, not the portraits, when they're both named Abigail.png?
Wait that might be a dumb question
Hold on
Is Lookup Anything showing that the tile property is present on that coordinate?
Figured out my problem(s) I think, thank you button! 
do you have snap to grid?
No, I mean the mod Lookup Anything. It will show things like what tile properties are present for that tile.
You can see from the screenshot that the tile object is correctly aligned because the x and y values are whole digits
https://www.nexusmods.com/stardewvalley/mods/541
It's extremely helpful for troubleshooting. You have to enable tile lookups and data mining fields in the config but then you can hover over the tile and press F1 to get a screen like that.
I couldn't find any TouchAction tiles in my game to show you so I had to use an Action
You are off by maybe 1 pixel
well, I say that as a fact, but I mean maybe you're just barely off mark in the debug
Are you sure it's 5 5 in Tiled? I just opened the vanilla Island_Hut.tmx and it's 5 6 there
Or in Tiled
WAIT
I think I got it
You don't have anything on the building layer there
But it's a TouchAction, it's not meant to have a Buildings layer tile
Ah, touch. Alright, hm.
I just noticed your grid is on so I counted and that's definitely 5, 6
Yeah it's 5 6. Vanilla was on 5 5
I am unsure what this is meant to be showing us?
I recommend getting Lookup Anything
So you can see what it's saying about that tile
And then we can see if the issue is that the TouchAction is not being added to that tile or if it's there but not working
That's the offset layers tool
That icon is called "Offset Layers"
That's what it's supposed to do!
That would explain it
no, and i promise i double-checked that there was nothing on the buildings layer where they were supposed to spawn. here's the zip with the now-working maps, and a log: https://smapi.io/log/d57043b821d24700bede38e0f58aa54e
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 18 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Finally finished with so many fixes for my mod it was a battle
Hey, anyone got a good way to enable or disable a patch when a given mod is also active? Making a map patch that's specific for when Stardew Valley Expanded is enabled, as the patch that normally is used (affecting a part of the secret woods) doesn't get placed correctly afterwards
You can put "When": { "HasMod": "<mod's ID>" } on your patch.
Is there an opposite for that? I already got that part set up, I don't want the original patch being enabled too is the problem
(Couldn't find a "False" or "Not" condition)
"HasMod |contains=kabulla.bakery": false,
"When": { "HasMod |contains=<mod's ID>": false }
That's for a different mod, but just change the id
You can also do that but "true", that format works for either
Gotcha, thank you, I appreciate it; yeah just wanting to make sure my mod is compatible with some of the bigger mods
someone commented about an error they're getting
seems like it's either a problem with other mods or just from updating with old version animals
kinda doubt i can do anything for them yeah?
seems like it's something UI info Suite is trying to do
uiis2 works on my machine π€·ββοΈ
loads fine using snes v2 + uiis2 + jerky + ah + snes ah, all animals in one barn
if it's an issue from updating from an older version it's more than i can be bothered to test hahah
yeah i feel that it must be that
cuz i didn't test that either lol
thanks for checkin!
that was very fast, did you already have them installed?
nope, just had a coffee 
haha
arg can't believe i'm stuck on loc design issues again
irritating that there's no comprehensive way of replacing craftingpage instantiations with custom cookingmenu instances, and definitely none that gives a possibly limited set of recipes / material containers with chest instances
and of course i absolutely refuse to try and intercept bettercrafting limited recipe crafting stations 
Are we likely to have playerControl in events without requiring c# at any point?
Is there a good way to track how many times a player has died? (Say if one wants to trigger an event or letter if the player has died 3 times in the mines)
you can kind of use playerControl in events, its just hard to exit it again
Does anybody know how to make the layer of water to stop flowing on the bridge? I try to add a bridge on the town's map (beside the one to the beach) and I already use Replace as the patchmode but it seems the water in the original map is unaffected.π₯²
Either layers shenanigans, or a Water property that wasn't removed, I'd say
you can't place the bridge on a Back+ layer, it needs to be Buildings. use the Forest map as reference 
Oh it works, thank you so much!
Well I refer to the forest map and successfully get the bridge above the water. But when I tried to walk to the left/right on the bridge, I walk into the riverπDo you have any idea how to fix it? I look into the vanilla map but don't get how it prevents the player from stepping into the water.
you need passable tiles on BACK layer on the water surrounding bridge
look at how the vanilla maps are doing it
What kind of passable tiles should I choose then? I checked the vanilla bridge in the forest map but only find the water tiles on the back layer and nothing elseπ€ There are no tiles on the other layers surrounding the bridge either (unless they are transparent? But I can't see it)
you can use invisible Buildings tiles on either side of the bridge if you like, some bridges in the game do this. otherwise there's a very specific water tile the Forest map uses on either side of the bridge that happens to have both the Passable and Water tile properties, which makes an impassable water tile on the Back layer
if you imported the tilesheet as a new tileset from image, these properties might be missing in your map, but you'll be able to see them in the Forest map tiles
What happens if a patch has an update rate of "OnTimeChange" but then it doesn't have any time-based conditions? Will it still check the conditions anyway? Let's say the condition is DaysPlayed.
Can i not run a query check when setting a price for an object?
I have configurable prices for the crop that serves as base for the recipes and wanted the prices for the cooked objects to be the price of the crop * (value) or + (value), like so "Price": "{{query: {{Northern Heart Melon Price Token}} + 1000 }}" or so "Price": "{{Round: {{query: {{ {{Northern Heart Melon Price Token}} * 1.2 }} }}",
Oh yeah, I think I see it. Let me fix it
yes
CP doesnt really know which conditions are time-based and which arent afaik. it only differentiates between non-changeable and changeable ones I think?
non-changable are ones like HasMod
That is what I suspected but it's good to have it confirmed, cheers. Time to be ruthless to my mods list.
Internally CP does know if a token is changed or not during update, but it doesn't change the fact that it gotta go call update context
So no performance cost for invalidating and then reloading the asset because it's not going to change any time during the day, but still an unnecessary performance cost for calling the update context?
Yar you may recall when sinz was trying to get me to do some immutability optimizations
That is to reduce amount of update context calls
points the nerdsnipe cannon
hey is there an easy way to subtract 1 from a value taken from a different mod's config with the cross-mod compatibility mod? I tried it with and without brackets, but neither of those worked
assigning dynamic values to each of those values to subtract 1 feels a bit dumb
Query toke
will that work for a precondition?
I'm way out of my wheelhouse here
I've only ever used query tokens in when conditions
is it possible to debug CTs to test them?
how do i reference a string from another mod, say if I want to call up the name of a dish or character from a mod's i18n in a string for a mod I'm making?
I'm looking at 6840's Flexible Cooking and I see this tag in an ingredient (the choco in Love of Cooking's Chocolate Flan):
{
"Type": "ContextTag",
"Value": "chocolate_item",
"Amount": 2,
"OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",
"OverrideTexturePath": "Mods\\blueberry.LoveOfCooking.Assets//ObjectSprites",
"OverrideTextureRect": {
"X": 48,
"Y": 16,
"Width": 16,
"Height": 16
}
},
but I'm noticing the mod I want to reference (I wanna reference Lumisteria's Serene Meadow Borage in this case) doesn't follow that same pattern for its path, how do I determine the path?
*of the string, I mean
Would Cross-Mod Compatibility Tokens help? (the mod?)
I genuinely do not know? :O do you think it would?
hm, I'm not too experienced with this so I may not be able to help much, but could you clarify what you're trying to do?
(i've never used them)
ah nvm
(also a beginner here so take my advice with a grain of salt LOL)
ok so I want to make (for my own personal use) an addon for Flexible Cooking that changes some recipes for mods not covered by Flexible Cooking, in this case I'm working on the recipes for Lumisteria's Serene Meadow
okay
so for example, the Borage Raviolis from that use "Blue Borage" from the mod, but I want to make it compatible with anything from the "borage_item" context tag (which would include Blue Mist from Cornucopia in this case
and I want to, for the Text, have it say "Borage (Any)"
Now, obviously I can just make an i18n entry and say that plainly, but I saw the original mod reference the localized string
okayyy, I think I got that
and I wanted to figure out how to do that
basically this part of the bit i posted earlier:
"OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",
aah, you wanna know about the localized strings!
it does sound like something cmct could handle but i cant explain any specifics
I just learned about them recently myself LOL
^ that string is referencing the chocolate from Love of Cooking, but I wanna change it to reference Borage instead from Serene Meadow
and basically I just don't really get how to direct it to where the string would be from the other mod
(and ideally figure out how to figure that out for any mod in the process x3)
I thought it might be standardized or smth, so I tried changing out variables in it, so like the blueberry.LoveOfCooking.Assets part i put in Lumisteria.SereneMeadow.Assets instead but it does not work :')
hm, idk much bout those either and looking at the wiki the page i found is p bare tbh https://stardewvalleywiki.com/Modding:Tokenizable_strings
it is ;w; which is why i figured i'd ask here
SO afaik they behave like a stardew native i18n,
for i18ns you'd replace an entry with an i18n token that contains the i18n key name, (which you can fill out with your text in i18n files)
for localized string text you would put the path to a string that you can then fill with your text, outside of the i18n system
so in this case {Lumisteria.SereneMeadow_Borage}?
or do you mean: {{i18n: SereneMeadowBorage_Translated}}
one sec lemme elaborate i didn't put that too well
couldnt you just do a simple patch that edits the context tags in that case
yes, and I have for the context tag part, but this is for the display name of the ingredient Borage
I mean, obviously it'd be easier to just make my own i18n entry to say Borage
space core recipe overrides maybe?
but I wanted to see if there was a way to determine the path of the i18n string so I could reference it like 6480 did in their mod
ohh wait
the recipe part I have figured out, this is for the display name
idk if localized tokens would be needed here actually?
okay edited!
gotchaa!
yeah and the path is what i'm having trouble with
where are all the cool c# people who would probs know this
if you search, midnight voyager explained it to me recently, lemme find a link!
i did try searching initially butt i wasn't sure how to word my search to find what i wanted :'D so that would help me out tremendously
bless π

i dont understand how locational strings can grab something from another mod 
oh cause they're loaded to the game
im stupid i meant localized text lmao
me neither and that's what i'm tryign to learn, but 6480 did it in Flexible Cooking with this bit of code:
[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]
no fuckin clue 
idk either i dont get the explanation you linked either but i am notoriously bad in understanding things so im not a good base point here
so am i took me forever
ah, it explains more how i18n works, which is good to know, but not how to find the path to another mod's strings ;w; which is what i am struggling with, but thank you again @autumn tide for your help :'D
please tell me there's a better way to do this π
i hesitate to @ the creator of the original mod bc i don't know if they're ok with that or not
o
iirc cmct can grab translation strings from another mkx but i have never tried it myself
oh yay, I was on the right track for @lavish terrace!!
mod
oh who? ik 6480's chill with pings
ohhhh
ye that's who lol
ok in that case i will at them I think x3 thank you everyone
and i will look into this, i wasn't aware it could be used for that :O
I assumed it was only for tokens
oh me too! but good to know
quick question: Error checking, can I get the mod that made a change to something?
@drowsy pewter I have a question for you about how you referenced the localized string from Love of Cooking: how do I determine the path to a string from another mod (in my case, Lumisteria's Serene Meadow, I wanna make some flexible cooking-style edits for personal use and I saw you referenced the localized string for Chocolate from LoC and I wanna do that for Borage (for the Borage Raviolis) from Serene Meadow...how did you determine the path to the string? specifically this part:
"OverrideText": "[LocalizedText 6480.flexiblecooking/i18n:Indicator [EscapedText [LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name]]]",
or more specifically, this part LocalizedText Mods\\blueberry.LoveOfCooking.Assets\\Strings:item.chocolate.name, how could I figure out how to reference a similar i18n string for any other mod? like how do you know the structure of the path, if that makes sense?
is this for me?
or were you asking about something else, sorry
something different
ah ok, sorry x3
i just pop in randomly to ask about things... you're good
get a mod as in find out what changes what?
anyone know how to make a variable in a content.json??
what kind of variable?
LOC loads its strings into a custom asset named Mods/blueberry.LoveOfCooking.Assets/Strings, which any field with access to tokenizable strings can access
Serene Meadows doensn't, so you can't
I just want to subtract 1 from a pulled value from another mod. π
it doesn't load its strings to that path, or to any path that's accessible, do you mean?
content patcher can't do le math in the preconditions section of events
it doesn't load its string to any asset
that sounds like a use for custom mod tokens to me but I've never tried anything like that ;w;
it just uses i18n directly in the object data
oh! so...i cannot reference it's i18n? or does this mean I can just put in its i18n token?
the CMCT part is working fine. just not the math part
You can do math with query expressions
ah, yeah I've never tried doing maths in CP ;w;
you need CMCT to yoink i18n from another mod
ok that is cool
How do you do query expressions without a when condition?
I've never done that
yay the smart C# people are here!!
ah ok i understand now, thank you so much! I was kind of hoping it would be like in LoC, but I see now that it's dependent on how they implement their strings, that clears it up for me quite a bit though, thank you so much for taking the time to explain it to me! <3
you can do it anywhere tokens are supported
THANK YOBA 
(and also @quasi dew )
you were both right, i just didn't understand why yet lol
thank you both again for your help <3
I'm trying to do this to make a token for an event mod. Would it be a similar setup?
I'm doing something wrong, bc this didn't work
idk what I'm doing lol
well... it did work. but SMAPI couldn't parse "2-1" as a conversation topic duration
{{Query: {{thattoken}} - 1}}
Thank you for answering, Selph
jsut found out bout %noturn in dialogue, sigh
all math must be inside a Query token, or it just turns into that string
the more you knowwwww. thank you love
greetings sixty four hundred and six point six six six six six six six six six six six dozens
oooh do tell
oh its jsut so the npc aint turning to you when the dialogue box triggers afaik
can someone help me with terms?
as I taught myself c# mainly from reading sourcecode of terraria and sdv and looking at other mods - using modules or internal classes and just calling (initializing/delegating them) on certain modhooks provided by smapi - is that called bootstrapping?
hi!!
!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.
-
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!
time to use this
the only concrete meaning of bootstrapping in relations to software that I know of is bootstrapping a compiler to be able to compile itself
concrete as in purely technical; you can totally use it to describe your own journey of learning coding lol
the only concrete bootstrap i know is the coding library 
oh yeah that too
i'm not a frontend dev how can you tell
i only know of it cuz i use it to code my little website lol
mhm but what would one call the task from going to one huge modentry.cs, split into multiple partial ModEntry classes that contain helper methods and such, into using manager classes and keeping modentry.cs slim? a friend of mine is looking at my code but i cannot word what i am trying to do q.q
guys
my mod flopped when i released it yesterday, i have a new one in preparation but like should i release it as a new one or as an update to the dead one
your mod is one day old?
yeah, but from my past experiences they usually have a couple of days to make it or die
depends of a lot of factor
i would say that if you consider your mod dead after one day this may be a big factor in why they don't succeed
anyway, my personal feeling is that if an author release too much stuff that could have been combined, i'm not interested
like the update would be very big and would turn it from a 1 npc mod to an sve type mod
maybe considering things thematically would help rather than in term of flop/success. Is the content you're making a thing that would make sense as an update? then do that. if not, it's better to release separatedly
@next plaza: check on this (19h ago)
then you have plenty of time to learn for experience and see if the mod does get some attention and if it just needed time, or if there are issues
i kinda don't believe a NPC release would "flop" in just one day
its at 30 dls after 25 hours
30 people are playing with your NPC in their game 
I would be hyped fr
Celebrate the little successes, it doesnβt have to be βthe new hit successβ to be good 
okay! tyy!
You got this :3
Hey, just got an error message in SMAPI saying
[game] Failed parsing condition 'WEATHER Sunny': no location found matching 'Sunny'.
Is my code providing the weather condition for fishing supposed to say "WEATHER here sunny"? Or is sunny one of those case-sensitive conditions?
ok? maybe wonder if you didn't get super ambitious with numbers in your mind, especially if you didn't do a lot of advertising beforehand
i would say main way of promoting for npcs is players playing with them and then others being "oh this looks cool" which take time
That's also honestly not really bad?
It's missing the location argument, yeah. Here would work, or a location name
(NOT bad. Bloody hell.
)
You can have different weathers in different locations so that's why the gsq says it requires a target location, can't skip it.
Thanks! Also, is there a list of all the weather types somewhere? For some reason, I've been scouring the wiki for about 15 minutes now and I can't seem to find a list of the weather conditions anywhere...
ah, nevermind. Finally found it. lol
things on the wiki appear only when requested /j
With the "Wind" weather condition, do I have to specify whether it's spring wind or fall wind? Or can I just put "wind"?
should work for both (and any mod having summer or winter wind)
Thank ya!
And just to be sure, when adding multiple weather conditions for fish, there should be no commas, correct? And anything with 2 words like "Green Rain" should have the space removed?
let me check for green rain, but weather in wiki should mention that you can list several arguments
it's not a question of fishes, it's a question of if you want "and" or "or"
comma will means "and", which for weather, can't happen, you can't have both wind and rain at the same time
"Condition": "WEATHER Here GreenRain",
is what i have (and it works as far as i can tell)
how do you make a json file?
Thanks! Though now I'm confused... If I want Rain or Storm or Green Rain, that's just a space, correct?
"Condition": "WEATHER Here GreenRain Storm Rain",
create a text file and change the extension to .json
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
alrighty
okay, so im starting out the manifest file
i used the base one from tiakall as a base
how am i supposed to know the version?
You can also define weather in data/fish
why do u need json assets
cause im making my first npc mod?
It is less powerful (you can only chose rainy or sunny or both)
you need your own uniqueid btw
But it does work well
json assets is 1) for adding items 2) deprecated bc content patcher can just do that itself now
nothing to do with npc 
for unique id you'd want something like Speedy.MannyNPC
it must be unique as smapi will not load 2 mods with the same id in same folder
speedy, you really need to look up a tutorial
i mean i have the wiki at hand
If you want to make an NPC, you'll also need to read the Content Patcher documentation
does the wiki tell you to use json assets then?
if u see that somewhere it's outdated n we should try to fix that
well
also you will need this https://stardew.button.gay/tutorials/json
stardewbuttongay??????? 
you can click the link called "here" and it will tell you what everything means
yeah, she has the best domain name ever
didnt know json was lgbtq
i also am a big fan of pillows urls
yea tia's guide is pretty thorough
its best to try and follow it up until you can try to load something into game first
Okay, I'm having an issue with FTM. Everytime I edit the save, it removes certain things from the file. In particular, it's removing the Beach Forage and it's respective item index. Is there any reason why this would be happening? And how do I fix it?
and then you have concrete problems to ask ppl
This is what I want it to read, https://smapi.io/json/none/fcdf5878be424ff1b8cc6b33e00031ab
And this is what it automatically becomes upon loading a new save on my test account.
https://smapi.io/json/none/1d7cd22c342548818d1beb0fedc0f1a7
The only difference is that everything labelled as a Beach Item is automatically removed from the code without anything in SMAPI to signify that this is even happening.
So why is this happening, and how do I stop it?
i don't remember FTM having beachitemindex
it is happening because FTM autocleans the content.json to remove everything that is out of place (doesn't exist, is empty, is wrongly formatted)
you stop it by using the proper formatting
Oh? I was suggested by someone on here to add it, so that I could have an index for things that spawn year-round.
Ideally, I'd have a completely different set just for spawning beach items, but I constantly receive duplicate id errors when I try doing that.
the person either did suggest something else or was wrong
and you can have a completely different set just for beach spawning, as long as you do it properly
i have several set of spawing in several VMV locations without issue as long as the ids are properly unique
i'm going to eat dinner so i can't help further
As said before, Beach is not listed as a valid terrain type, FTM will not recognize it. You were told to use CustomTileIndex previously, not anything with the word Beach in it. Unless this is for a different section
Esca, feel free to correct anything I said wrong
Yeah, with the back2 layer. I tried that and nothing was spawning whatsoever anymore, so I reverted to the original code.
that's correct; beach isn't a terrain type in the game, and sand tiles are only identifiable by their unique sprite indices
you can check Tiled for those and add them to the CustomIndexList, then use "Custom" as a terrain type
though it's often easier to just specify map coordinates
and in basic terms, you can have multiple areas in the "Areas" list, e.g. like this:
"Areas": [
{
"SpringItemIndex": null,
"SummerItemIndex": null,
"FallItemIndex": null,
"WinterItemIndex": null,
"UniqueAreaID": "General farm forage",
"MapName": "Farm",
/* (all the other settings) */
"DaysUntilSpawnsExpire": null
},
{
"SpringItemIndex": null,
"SummerItemIndex": null,
"FallItemIndex": null,
"WinterItemIndex": null,
"UniqueAreaID": "Farm forage for the beach part specifically",
"MapName": "Farm",
/* (all the other settings) */
"DaysUntilSpawnsExpire": null
},```
and populate those per-area index lists with the forage you want in each section
(edit: whoops, I wrote "beach" as the map)
though I'd highly recommend using the Config Editor optional download on FTM's nexus page, since it can make formatting area lists easier
Unless the circumstance has changed, they were trying to allow beach forage only in a circle with a set distance from the water tiles, so the tile area was proving difficult to define
Just so you have some context
ah, makes sense, it does get convoluted to do it that way
I heard of a tile I should never remove when making a farmhouse layout but I don't know which one that is, do you guys know what I'm talking about?
At this point, I'm just trying to get two separate areas to have two separate seasonal item lists.
Unless I'm doing something wrong (very likely), it's not letting me have two separate seasonal lists for the two areas...
Well, Esca is the FTM mod author, so it's definitely going to be easier to follow the example they provided
right, currently your setup is using the "global" seasonal lists
https://smapi.io/json/none/1d7cd22c342548818d1beb0fedc0f1a7#code.64
but each entry in the "areas" list has "SpringItemIndex": null, and such; you can replace that with that null with your existing list [16, 18, etc], and it'll only apply to that one
then add a second full entry like in that example earlier
Oh? So I can just place the lists where the null currently is? Am I understanding that correctly?
yep, the null part of each of those index fields can be a full list, with the same format as the ones you're currently using farther down
The farm's Paths layer must have at least one tile with index 22 (grass spawn). This is used to initialise the grass code when the save is loaded, even if no grass is spawned.[1]
Well that makes my life infinitely easier! lol
I was under the impression that it had to be initially listed as null for a list to work.
Thanks!
noted thank you :D
if an area's specific list is null, it'll use the "global" ones down below, which is what yours is currently doing
but if you replace null with an actual list, it'll use that instead
Sure thing, it was listed on the Modding: Maps page on the wiki (to Ars Moriendi)
It was?? I'm so sorry
(or you can load it with the editor here and populate the lists like this)
Hi! Quick question. Can you use "DAY_OF_MONTH even" as a GSQ? According to the wiki (and the code) you can, but the game is throwing an error about how it's not a known query.
It was hiding under "Map-specific issues" just above the Troubleshooting section
Ahhh I see. I should've read the whole thing before asking
I think we'll need the context in where you wrote the GSQ (your code) and the exact error from the game (your log)
that error looks like a quote issue; it's parsing "DAY_OF_MONTH even" as a single string
Hmm, the Event docs' example wrote it in quotations so I went with that- regardless, here's the event preconditions:
"GiEX_Javi_2h/f JaviGiex 500/n Island_Resort/w sunny/t 2000 2400/GameStateQuery \"DAY_OF_MONTH even\"
And I'll send the log in a moment
how old was the example you were looking at? Because I do recall an issue I think around 1.6.9 regarding the gsq precondition and space/quote awareness
But it shouldn't need to be quoted afaik
the first visible example here seems to do that incorrectly, afaik?
https://www.stardewvalleywiki.com/Modding:Event_data
It's the current version of the wiki (https://stardewvalleywiki.com/Modding:Event_data#Format) and in 1.6.15 . I'll try removing the quotations 
the quotes aren't required unless you need to combine multiple words into a single argument
okay so i read the json tutorial by buttons
e.g. "SEASON Spring" there would probably give the same error, it's reading that whole thing as the query ID
this is a lot to process 
do you want a template to see how it all is put together?
Hmm, I removed the quotes and still nothing. Would a log be required?
Or different, at the very least.
sure!
it's not the original mod, but it's modified to remove the gimmicks. You can ping me if you have any questions about anything inside of it
oh frick I forgot to remove 1 thing
okay here is it
whats the CP stand for? and why is it there?
Oh, hold on, it worked. I renamed the folder to send the log (so it'd be clearer what was doing what) and apparently VS codium saved the changes to the old path. It's working now!
CP stands for content patcher, it's there because I thought it would be helpful for people to know it's a mod that uses content patcher
Thank you for the help 
it's not strictly required, but traditional/helpful to prefix content pack folders with the framework mod's acronym
yes you can use anything inside of it, https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC here is an explanation of the things inside of it
Just confirming, but when using the "IncludeCoordinates" in FTM, and I use ExcludeTerrainTypes: Water (Not formatting for this question), I should be able to simplify and reduce the number of coordinates I need to have items spawn in a certain area around my ponds, correct?
okay I forgot to delete the "no breathing" part of the code, but this should be good for what you want to do
Is so, then I can use just 30 lines instead of the 74 I would need if I couldn't exclude the water tiles.
Probably, yes. FTM compiles a list of every tile that matches IncludeTerrainTypes or IncludeCoordinates. After that, it removes any tiles that match ExcludeTerrainTypes or ExcludeCoordinates. So your example would spawn things anywhere in your coordinates that isn't water.
("StrictTileChecking": "Maximum", or "High" generally avoids water tiles anyway, though, iirc)
Thank goodness!
...Sorry, I just realized "Water" isn't a valid terrain type. There's a list of them here:
https://github.com/Esca-MMC/FarmTypeManager?tab=readme-ov-file#general-spawn-settings
So I'd recommend just making sure you use one of those strictness values instead.
Just wanting to confirm, but the current most up-to-date list of all vanilla 1.6 items is found here, correct?
https://mateusaquino.github.io/stardewids/
Just asking because I want to add a slight chance for some Green Rain Weeds to grow in the fall (after the first green rain event, of course), but they don't have a typical itemid.
the most up to date one is the object json you get when unpacking the game but i supposed as in a site...that ones alright
Fair enough, and thanks!
Is there an easy SMAPI command to determine if my fish mod works? Right now, the only way I know of to test to see if I can catch fish from all the different regions is to just fish on the farm... Surely there's an easier way, right?
what are the current limitations of the NPC Builder?
new to stardew valley modding. is there a "npc location" content patcher token? I thought I'd do something simple like have shane wear pajamas in his bedroom but I can't figure it out. my only idea is to manually code for his schedule, which is ugly and brittle, I'd rather have something like
when: target npc.location is within x zone
i usually use visible fish as a confirmation
but i think latest update of lookup anything is great for show what can be fished in a water
no
there is a way to check for a location as the map, but not the room
sucks but thank you kindly, I'll work around it
the main options is :
hour based appearance, or location (map) based
(or a combo of course) which is usually good enough
note that for location it's usually checking player's one
makes sense. thank you again.
Which builder? I don't believe MissCoriel's latest (NPC Creator 4) is out of development yet, so it remains outdated for Stardew Valley 1.6+
Can someone explain the double slash syntax? and how I'd reference a vanilla object instead? (json file, cp mod)
"BillboardTexture":"Mods\\Lumisteria.MtVapius\\Objects",
"TexturePath":"Mods\\Lumisteria.MtVapius\\Objects",
As far as the spreadsheet builder linked in the !npc command, that one's my creation, so the limitations are that I haven't made tabs for every little thing involved with NPCs, just the core parts, but I'm happy to field questions.
yeah, itβs yours π just wanted to know if there were things i needed to make sure to go back and include manually if my interest was just adding an npc with events. i plan to expand beyond that with a custom building etc, but thatβs a later hurdle
Gotcha, I don't specifically cover events, the actual map-making parts, or individual dialogue files, if memory serves.
I mainly add features as they are requested, but events are a different beast and will not be covered in my builder spreadsheet, LOL.
thanks for editing to clarify, typically a \\ is used in places where a / will break the code (like in events, slash-delimited lists, etc.)
soooooo uh im using boxosoups rock npc base and im trying to edit the content json to make my own npc from their base
this happened
!json please use this instead of screenshotting your code
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 don't replace the things inside {{ }} i.e. dont replace {{ModId}}.
(Unless for things like i18n tokens where you change the input argument)
ah
sorry, still getting acclimated to the right verbiage. just the cutscenes and whatnot, normal blown events ha
(Also yes please use the uploader in that governor command in the future
Same for logs, there's a log uploader as well)
https://smapi.io/log
https://smapi.io/json (is what button is refering to)
like that?
Yep, that's the preferred way for sharing JSON in this channel.
got it
Yep, events / cutscenes are beyond the scope of my builder sheet because they follow a different syntax. There should be an events tutorial or two floating around:
Ah ok thanks. So,
"BillboardTexture":"Mods\\Lumisteria.MtVapius\\Objects",
is effectively meant to resolve as
Mods/Lumisteria.MtVapius/Objects
So I could do
"BillboardTexture":"Data\\Objects",
for a vanilla item?
Textures are usually not found in the Data directory
Vanilla objects have their appearance textures in Maps/springobjects but let me see where that BillboardTexture reference specifically is.
nvm i think i found it... content/loosesprites/billboard.xnb?
What's the Target being used for the patch that has BillboardTexture in it?
Trying to figure out what type of thing this is patching
(you may want to provide more context, i am a bit confused about why you mention VMV textures unless it was the first example of path you had on hand?)
this is what im working on
https://smapi.io/json/none/16836a0b306e44dc851058609bdfc6e7
And yeah theres an example wallet currency mod that used VMV's coins, and others that used the same format
ok
ah, gotcha, you're targetting an UnlockableBundles wallet currency asset.
oh its working now other than the incorrect texture. good start.
ok so i managed to load him in but hes not interactable in any way
there we go lmao
NPCs like to make their pathfinding decisions the night before, so keep in mind that if you make changes to their schedules or related code (like adding new schedule-related dialogue keys) then you may need to sleep before they work
I don't think you need the first slash(es) before LooseSprites in your Billboard Texture field.
game asset paths usually assume they are in the game's Contents folder already, so you start with the next folder/directory name after that.
So game asset paths look more like LooseSprites/Billboard, Maps/springobjects, Portraits/Abigail, etc., but with the \\ instead of / where needed (slash-delimited lists or events)
Ok thanks.
Do you know where I should look for
"TexturePath":
for calico eggs? The billboard part seems like its working.
an NPC only has 10 portraits maximum?
oh thats the maps/springobjects tthing isnt it
yep
no, there's no limit
the only limitation on NPC Portraits is that you can only have 2 columns, all portrait files must be extended DOWNWARDS to add new portraits
Well there is a limit to npc portraits but if you come anywhere near it I question your sanity
There are NPCs with more than a hundred portraits
i like expression
i wonder if its possible to add custom sound effects to the game whenever an NPC makes an action in the game
Everything is possible
to be fair its json coding so yeah
I think there is a framework for that
Hmm. Well, no errors and the mechanics at least seem to be working correctly at least.
I think the BillBoardTexture might actually be referring to the sprite of the object shown in the corner "billboard", if that helps?
that makes sense
how would I go about pulling the first letter (or first couple of letters) from a config value?
adding an event where your baby says the player's preferred name, but I don't want to restrict the values for that name.
it might be with the "like" operator, but I'm not certain
For C# I assume?
string myString = "Hello";
char firstChar = myString[0];
should work
also just to clarify, Calico Eggs seem to be in Tilesheets/Objects_2, rather than on Maps/springobjects (likely because they got added in a later update)
oof I was hoping to do it through CP
Ah, I assume you can but I just started using CP/JSON like, today, so I can't tell you how off the top of my head :P
no worries! I'll do some more digging.
Thanks!
I'll try the "like" operator, it looks promising.
no problem, you might need to also set the TexturePosition to be 112 (x) and 0 (y) if it wants pixels.
oh thanks again, i was just looking for that lol
Unsure, but I think this is the expected format for Vector2: {"x": 112, "y": 0}
yeah, theres a TexturePosition and BillboardTexturePosition that are each looking for those
Say, does content patcher allow .jsonc files instead of .json files? All these "comments aren't allowed in JSON" errors is rather annoying honestly.
Aha, success. Thanks a bunch fireredlily
Now the only question is if they'll still be removed at festival end.
Nooope.
how would I get started making a fashion sense mod?
Do you want them to vanish at festival end? You might be able to make that happen with a trigger action to use the UB_AddCurrency action and make it negative whatever the current {{DLX.Bundles/PersonalCurrency:<yourCurrencyID>}} is?
(I was hoping for a SetCurrency instead of AddCurrency so you could just set it to 0, but that doesn't seem to be supported)
Thanks, I'll give that a try once I upload. I'm perfectly fine with it as a feature, but may as well make it a config
Hello, do I need to know how to program or any of that sort to be able to make portrait mods? I'm an artist and would like to give it a try 
If you want a non-destructive mod, then you can make a portrait replacer pretty easily with a Content Patcher mod and very barebones knowledge of JSON.
Oooh sure c:
!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.
it's not done yet, but I can grab the link!
Are there resources available for me to learn?
Sureee I'd appreciate itππ
The wiki tutorial for Content Patcher in that Governor post is a good place to start
ykw I'm gonna go work on an update rn!
Thank youπ I'll give it a look tomorrow then
happy to help :)
Never made a mod before, but I've been obsessively modding my games since I was a kid LOL
Figured I should give it a try
SDV is really easy to mod comparatively!
I'd prefer not, but you can @ me!
Ahhh alright, thank you still
ofc!
is there a way to check button bindings for the game or check if the action button has been pressed (default right mouse)?
api based c#
The Input API should be of use to you here, in combination with the Input Events.
it's good for raising an event when buttons are pressed/changed but i don't have a way of comparing them to the currently bound action button. if the player has remapped anything i won't know about it.
The Input API page has an example for getting the current action button in the data structures section.
i missed that. i'll look again
i'm not seeing it. i'm looking for something like
DoStuff();```
i read that 4 times. at least.
thank you
hellooooo if one were to make a winter variety of portrait using the usual NPCName_Winter for a character that DOESN'T have a winter portrait in vanilla, would that work?
i have no clue if im doing this correctly
ooh you're close!
those accept/reject gifts should be in your character's dialog entry
in my dialogue json?
mhm!
so here?
think so!
Not straight away. You'd need to add it to their appearance data, too.
ahhh okay
for the specific lines to work i assume his hated gifts have to have their ids in his gift taste data?
_Beach is the only one that immediately work, I think.
thanks dolphin! oh wait what would you prefer to be called?
(Those appear to be zeros inside those parentheses. Make sure they are not zeros! They should be O as in the letter of the alphabet)
ohh ok
Dolphin is fine. 
how are you, dolphin is fine?
(i know i need to go to sleep soon, when my sense of humor is of such a quality)
Iβm really having trouble understanding schedule strings despite reading the wiki, are they the ones that can play during custom animations and when an NPC is standing in a specific spot? How do they work?
oh no what time is it for you Lumina
past midnight
prolly go to bed then-
!unpack files if you haven't
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
and then look at how vanilla does it!
does schedule dialogue go into content.json?
Sure!
content.json in a CP pack is where basically anything can go; splitting it into sub-files is optional
(see documentation about the "Include" command, if that comes up)
is there a way to detect the end of the desert festival with CP, as opposed to querying if its active at the start of every day?
so this would work?
not without creating the file first
Say, what is error " [ALSOFT] (EE) WaitForSingleObjectEx error: 0x102 "? It's constantly forming in SMAPI after I've made some edits to my farm map from the moment that I start the game up...
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnβt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
it was created with the blank json load
heyyy I'm shiny!
no idea but it may be a tiled thing, like a data gone wrong
ok, i didn't see it in the screenshot
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 53 C# mods and 25 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
The two mods that are "out of date" aren't. They just have incorrect version numbers
i don't see the error you mention in the log
That's odd..... :/
i mean, do you see it in the log you posted?
Is this enough for the error to get logged do you think?
https://smapi.io/log/d3573c37bf5343c996b268e15d44040c
Okay, there's the most recent log. I waited until that error was the only thing I could see in SMAPI
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 53 C# mods and 25 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
That seems like an audio thing... ? Never seen that before
googling the error isn't bringing any relevant info sadly
That's so strange! It's not showing up in the log at all...
(and no, i still don't see it in the log, so... no clue about what's happening)
ALSOFT makes me think of OpenAl which is an audio library whatever the game uses I think
Lovely, I guess I discovered a new bug? Fun...
And so if that error is coming directly from it, it's not being passed through SMAPIs log handling
not exactly new, but rare
It's being written directly to the console
Therefore not being written to the log file
that explains it
my google-foo is very much pointing to OpenAL with minecraft threads having the identical message
However it's also almost certainly entirely unrelated to what you are actually doing or your mod and just seems like some bits got crossed
My NPC is not letting to speak to him despite having a schedule string and being there at the right time
i don't know what could be done to test things, you can try reverting to a previous version of the map (or a different one) to see if the error is related to that
Probably nothing a restart of the game if not your computer can't fix
Okay, well I have noticed some audio issues where the audio just cuts out, but I thought that was just the game bugging out since it applied across the entire game, not just my farm...
I mean, it was working just fine. All I did was move a wall back and fix some texture issues though... That surely shouldn't cause that, right?
if i knew i wouldn't suggesting trying to find out
"oh yeah please test those totally unrelated steps that are unlikely to even solve anything" isn't an usual process here π
(not on purpose, at least)
I would feel very confident in saying the error is both not your fault and also nothing you can affect by making edits to your mod anyway
it is true that if it was related to an edit we would see the error more often, but well, it is still the usual approach to try to figure stuff out, to see if the last thing changed is impacting stuff
i have to go to sleep, good luck figuring stuff out!
Thanks!
Also, sidebar, but the fish section of my mod still isn't working even when my character's fishing level is level 10.
At least, not according to the visible fish mod or what I've been able to fish up after a little over an hour of trying. And it doesn't appear that the LookUpEverything mod is able to look up whether or not my pond can fish up other fish. Here's the content.json if someone's able to help me figure this out...
https://smapi.io/json/content-patcher/f712020af233495e9720e85707e7cd1b
I really need help I cannot get this schedule string to work properly for the life of me. I loaded it in the blank JSON, the string editdata is in content.json, I typed it correctly and he's supposed to say "It's peaceful here," but he does not.
Is the All_Items (0) a zero or a capital O
Which line? Sorry
yeah, the O is for Object. you had it like that a few lines up, so it should be the same for this too
And just to confirm, but the values for content.json are supposed to be between 0 and 1, correct? Not whole numbers between 0 and 100?
Yes
Okay, thanks. Let's test this out with that chance from 0 to capitol O. lol
Also, I figured out what was causing that error earlier. Apparently, one can't have two fish-splash effects on the same map. Why, idk, but once I deleted the second splash sound effect on the .tmx file, that error stopped popping up.
The fish spawning is still not working... Still only giving me the default fish for the foraging farm...
https://smapi.io/json/content-patcher/ba072cf81752471cbbfd05730e4cbcd4
Is it something to do with the order that I have the code? Does the Fish section need to be under the FishAreas section? At this point, I'm running low on what it could be...
hm, i wanna add something more to my mod, it needs to be kinda like a small trinket (could be anything, really lol), do y'all have any ideas?
the mod adds little trinkets that can be placed around :3
can someone tell me if im missing something here? this TriggerAction is only happening once, instead of every time spring 17 ends.
https://smapi.io/json/none/eeaeb7c321c54a08b9f640152b516fd2
"MarkActionApplied": false seems to be outside of your actual entry
ah i figured it was something dumb like that. thanks
question: would it matter if i set the format of my CP mod from 2.9.0 back down to 2.8.1? would that mess things up
only if you're trying to use things only added in 2.9.0
right
but other than that everything hypothetically should be fine right?
Yes, but I am curious why you would want to?
Android support, I imagine
Ah, makes sense
As long as you don't use PatchMode.Mask then theres no difference between format 2.8.0 and format 2.9.0
but Content Patcher will yell at you if you are in that state anyway
In general, the only reason to ever change the format version at all is if you want to use newer features that the newer formats have.
The big exception was the 2.0 jump where you were incentivised to bump the format version to tell CP that your content pack is 1.6 aware and so the 1.5->1.6 migrations dont need to run for your content
Oh and I guess if you rely on the behaviour of
Added field auto-initialization when using Fields to edit a null parent field.
added in 2.9.0 then that would go away again, but I don't think many patches would notice that
Hello, I am looking for some help with a content patcher mod I made. I recently revamped it to include more location-based options and as I am inexperienced with CP (and coding in general) I basically just looked at others' mods and cobbled it together. As such, it's lagging on transitions because I'm sure I'm doing things inefficiently. A user very helpfully put details here: www.nexusmods.com/stardewvalley/mods/30227?tab=bugs
Additionally, I have a SVE-compatibility mod for the mod above that I need to add all the new options to, and was prepared to use Cross-Mod Compatibility Tokens (CMCT) to accomplish that, but I was worried I was going to make the lag that much worse.
I know this is a non-trivial thing, but is there anyone more experienced who would be willing to glance over the code and make a few suggestions for optimization? And/or some best practice suggestions for using CMCT because it's brand new to me.
I have put both mods up on my github so it's easy to see the code and assets.
https://github.com/rainkius/Seaside-Interiors
https://github.com/rainkius/Seaside-Valley-Expanded
Thank you! 
Anyone know if NPCs have strict sprite limits, or speed? Could I make an NPC do it's schedule on a vehicle, like a horse or a scooter?
I dont recall any way in content to actually control speed, all npcs go the same speed (slow)
Sounds about right
Well if anyone feels like making a framework I have feature requests 8U
Needing to find someone brave enough to go near the micro pathfinder
Haha
looks like speed/addedSpeed do mostly just work without needing to go too close to the pathfinder, but the pathfinder will be fighting to reset the speed back to 2/4 and addedSpeed back to 0
Ah, lame. Thanks for looking.
In like 3 years when 1.7 might come out I might entertain the idea, but until then have fun
anyone know how to have a custom item have an inventory, much like fishing rods?
i might consider paying someone to make a mod in where Pierre as a marriage candidate and have Caroline be married to the wizard like Pierre was engaged to her but found out she cheated so dumped her then the wizard stepped up so Abigale is a lot happier
ill do it next month let me know of anyone interested
If anyone cold DMs you, they will be a scammer - this server gets a lot of scammers searching for people who want commissions. Don't give them any money. If you think they might be legit, come back here and ask people about them.
!comms The safest thing to do will be to find someone yourself. Here's a list of people who make themselves available for comms.
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
ok thanks governor
I need help in figuring out why the shop entries don't get updated after completing a specific quest 
Shop edit (Log Name NHM Saloon edit): https://smapi.io/json/content-patcher/867d4b6e48194e2da1c72a795e2c2b07
Mail & quest that are supposed to trigger the shop change afterwards: https://smapi.io/json/content-patcher/761d19d886da4a6cb11f5bec759b4420
Content: https://smapi.io/json/content-patcher/970fe3b0e49a481892de6065737ac347
The second link also includes some space core spawnable shenanigans that i can't get to work, if anyone can help with that as well, I'd be grateful 
The mail and quest trigger and can be completed without any issue
That when condition looks like you partially have CP token semantics and GameStateQueries mixed up
Aaaand the other thing I just can't wrap my head around is a machine input/output thing
https://smapi.io/json/content-patcher/c5822961d9e447e69aa7b897f3b189be
The object Heart Melon Huangjiu is supposed to be an output if you put a Heart Melon in the keg with 2x unmilled rice in your inventory. However, when placing the fruit into the keg, it takes only one melon and I don't even get wine from that, it immediately makes the huangjiu. The other patch that makes the syrup in the keg works without any issues, so I don't see what I'm doing wrong?
Okay, I know that's a lot, but I spent a large amount of time figuring these out yesterday and didn't manage π
I was trying to figure out the proper formatting for this in particular
I think it's meant to be "HasReadLetter: anyPlayer": "{{ModID}}_GusQuestCompleteMail"
The link points to examples though they are all hasflag, it is the same player targetted logic between them
I don't know why I did not connect the dots there.
Thanks!
That's one issue down
whats up guys :) I'm really clumsy when it comes to anything digital so I need some advice for a small mod I'm making. I'm using Content Patcher to add an event into the game. In this event, Shane walks away from a group of people including the farmer and out of the door. I want the group to continue talking while Shane walks but if I add "true" to Shane's movement, the warp at the end of his walk triggers instantly and he becomes some sort of super saiyan haha, any advice on how to make the warp wait until he is done moving but have the rest of the characters continue as normal?
I want to fix and distribute mods that stopped updating in 1.4 or 1.5, but the original author is not present. How can I get permission in this case?
while I cannot provide any help, I love the idea of Shane becoming super saiyan 
hahahahaha
you can try messaging them (either on nexus, or somewhere else they provide their contact info) but unless they respond and give you permission you can't publish your updates
be sure to also check the permission info for the mod on the mod page, it might be useful in case you can't contact the author.
All right
I'm struggling to get my event in the bathhouse pool to work. I've checked other events there and the spelling seems to be the same too. I shouldn't need to add a blank load since vanilla events go down there, right?
send json?
(and yeah, no blank load should be needed since penny exists
ok, what about it isn't working? like is the log showing any red errors?
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Unix 6.17.0.14, with 52 C# mods and 31 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Ignore the red blocks about the mine death trigger haha I'm tinkering with something
hmm your event... dont exist... for... some reason
I've tried spelling it with different capitalization too
i think your event isnt even being loaded in the first place
you just sent the snippet of the event, but what bout the whole thing?
are you sure you actually like, put it in the thing
(i have made the mistake of forgetting to Include something and wondered why it wasn't working at all XD)
I can't share the whole json but I do have 'include events.json' :p
I'll do a patch export after some coffee and see what that pulls up
In a similar vein, is the When condition you have in there being satisfied?
Yis :3
It's gotta be something weird I'm doing. somewhere. Hm.
alright let's patch export me some caffeine XD
Ignored SlowRuinSoldier > Includes (from data/mapdata.json) > invalid: must set the Action field.
Any chance this error includes your event include entry?
but i don't think so
something from SlowRuinSoldier edited Data/Events/Mountain
What does "K" mean as a precondition of an event?
I try to add a door to the adventure guild in the mountains as a warp to Kent's room, would that do it?
I have other events there too, but, hm
assuming you mean lower-case (those are case-sensitive), it's "has not seen event <event ID>"
https://www.stardewvalleywiki.com/Modding:Event_data#Deprecated
in general, those are old shorthand for more modern precondition names
You could try using waitUntilAllStationary or proceedPosition.
Ah sweet, thanks so much :)
I'll give this a go and see if it works, thanks for the leads :)
if my mods ID is camiska.PregnancyOddsExpanded can I use camiska.POE as prefix for console commands and gsqs or should i align either my mods ID to be camiska.POE or write out the prefix?
been looking into this again, could it be that I need EMC for this to work?
yay :3
not interactable in any way for some reason though
ill send the json
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
can i see the dialogue and schedule jsons?
you'll also need to load a blank for the schedule
let me check something rq
you're also loading the schedule but not including it
Thanks for the ping!
np!!!!
okay now that i have the basic stuff set up
what else should i make? (gift tastes, making them walk from one place to another, an actual house)
I feel like you need a house before you make their schedule, since the schedule (theoretically) starts in their house 
So iβd do that or gift tastes :3
i have them set at like a static place
theyre just standing near the fountain thats all
was the schedule the issue?
im using boxs rock base and forgot to change the rock name to Manny inside the dialogue json
ngl I had Iggy's home be the BusStop for a little while
cuz I didn't feel like making her house hahaha
that's up to you, really! But I would start with figuring out a basic schedule
but I did want to touch schedules
most stardew NPCs stay at their house from 6 to 10 AM
after that they either go outside and stand somewhere
I'm gonna ignore Kent today I think and maybe do NPC work or my cream cheeses XD
or do an activity
ye, Iggy goes to the library or stands by the waterfall in town
i dont know how schedules work but boxs rock base already has a set schedule
{
"spring": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"summer": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"fall": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2",
"winter": "800 Town 26 29 0/1200 Town 49 20 2/1500 Beach 20 40 2/1800 Saloon 18 17 2"
}
i am simultaneously working on three mods, had to release a hotfix this weekend for one of them just to be made aware of the fact that i did even more oopsies 
ohmy god 
That's so relateable though
I have the last like, 10 events of Shane's to test (out of freaking 60)
you can try copying that to see if it applies to your NPC in your schedule patch
no help I forgot about his Vanilla events I tweaked
its in the schedule json yeah
just make sure to change the name to manny 
You can also steal schedule bits from Vanilla npcs too :3
oh?
i might wanna try gift tastes first
like having general likes and dislikes as other npcs, and then having custom loves and hates
you don't have to touch general likes and dislikes
those will be set automatically
but with custom ones, you can override general likes and dislikes if you want your character to react differently
Yeah if you go into the unpacked assets folder data/characters/schedules and just click around π it helped me a lot when I was first figuring out schedules
bursting into the room to remind you to modid-prefix your NPC's name at a time convenient for you
ah, good. carry on then 
oh they use reference IDs instead of their names....?
Yeah, (bless whatever vscode extension lets me type the name to get the number id)
for vanilla items, yes, only a few of the newer ones use names
so do i make a new json entirely

