#making-mods-general
1 messages · Page 226 of 1
So I would always be placing the fruit in the jar with my hands, not the actual mead?
@hot gale You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
yea
Thats.. not ideal
I tried originally with casks, you cant have it create a separate output item I guess?
nothing says you have to use OutputMethod for a cask rule
simply edit in the rule you have on preserve jar to cask
When it's on cask it takes the integer max to age, and can be harvested immediately
the int max is uiis2 bug
I mean I could still harvest it immediately, It didnt take 10 seconds much less 40+ days like it was supposed to
harvested immediately just means you didn't set a MinutesUntilReady
or DaysUntilReady
Hey everyone, I'm new to this community and to the whole modding thing.
I'm not very good at English—I'm Brazilian—and I'm diving into this vast world looking for help to create the mod I have in mind. That said, I have a question.
Would it be a big problem if I kept coming here to ask the simplest and silliest questions that come to mind during this process? Or would that be too much of a bother for you, guys?
thats what this channel is for
as long as you are trying, people wont mind
That comforts me a lot. I hope I don’t end up sounding too silly, even though I actually am. :')
{
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [ "(BC)163", "OutputRules" ],
"Entries": {
"agedbearhoneycask": {
"Id": "CaskHoneyMead",
"Triggers":
[
{
"RequiredItemId": "bonghits.Cp_BearHoneyMead",
"Trigger": "ItemPlacedInMachine",
"RequiredCount": "1"
}
],
"OutputItem":
[
{
"Id": "bonghits.Cp_AgedBearHoneyMead",
"ItemId": "bonghits.Cp_AgedBearHoneyMead",
"CopyQuality": true // Retain Quality
}
],
"MinutesUntilReady": 600 // 10 Hours
}
}
},
This is producing non-aged mead, raising quality but remaining the same item
I sure do love that end tables need to have the words "End Table" in their names to let them rotate xD
Hello!
I did the SMAPI log thing, i think...
https://smapi.io/log/b1bb8846345241e28b2d11cb45eb024b
My mod is called "Bloom and Brew"
Does anyone know why my town map does not load? It does not work when i remove the ""When": { "World": "SVE" }, " eather 😦
This is my code:
{ "Format": "2.5.0",
"DynamicTokens": [
{ "Name": "World", "Value": "Vanilla", "When": {} },
{ "Name": "World", "Value": "SVE", "When": { "HasMod|contains=FlashShifter.StardewValleyExpandedCP": true } }
],
"Changes": [
//Loads tilesheets
{
"Action": "Load",
"Priority": "Low",
"Target": "outdoorsbrew",
"FromFile": "Assets/{{Season}}_outdoorsbrew.png",
},
//Loads SVE maps
{
"Action": "EditMap",
"Target": "Maps/Town",
"When": { "World": "SVE" },
"FromFile": "Assets/Maps/SVE/BrewTown.tmx",
"PatchMode": "Replace",
},
],
}
Oops, couldn't parse that file. Make sure you share a valid SMAPI log.
Why is it not valid? 😦
Welp I can see what I want to do is technically possible, apparently just beyond me I give up on this idea, been bashing my face against the keyboard for hours with literally zero progress
That was not your log, sorry. Please drag the entire SMAPI-latest.txt file into the log website instead of copying and pasting from the SMAPI window.
oh okay, where can i find that?
If you follow the instructions on the smapi.io/log web page, it will tell you.
hahah i found it yes! https://smapi.io/log/fb0246fd178443fda28fb1a357881d81
Thanks everyone for your help ❤️
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 22 C# mods and 55 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I think this is the error:
These two errors are the relevant ones. The first one is telling you that you're trying to load a tilesheet that doesn't exist (summer_outdoorsbrew.png), so check what your {{Season}}_outdoorsbrew.png tilesheets are actually called.
The second one is that you have tilesheet file path climbing. That means that your map is looking in the wrong folder for tilesheets. To fix that, right-click on your .tmx file and open it with your text editor (Notepad++ or whatever you're using - if you're using Notepad, stop using that and download something better). Find a line that looks like this <image source="../../Tilesheets/spring_outdoorsbrew.PNG" /> and change it so the image source part looks like this source="spring_outdoorsbrew.PNG". Then search the file for any other source= lines and do the same thing.
example of rule that makes fruity roe in a cask
something funny i found is that if it elapse time normally then u can collect it
but if its completed by fairy dust, it continues to wobble
How to change 2nd year products on shop to be available immediatly like rice shoot?
you need to target "Condition": "YEAR 2", and change it to "Condition": null
Like this?
"Entries" : {
"Rice Shoot" : {
"Id": "273",
"ItemId":"273,
"Condition": null
}
}
no you need targetfield
// debug shop SeedShop
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": [
"SeedShop",
"Items",
"(O)466"
],
"Entries": {
"Condition": null
}
},
there's also case where the condition is compound
What is format: 2.0.0?
"SEASON spring, YEAR 2"
its the content patcher version, use 2.5.0
in this case you would change "Condition" to "SEASON spring"
adding null will remove the existing requirements on the vanilla right? or should i do the "SEASON spring"?
it happened, somehow, that a branch or two were shaken...#$b#Or a tree climbed.
Are the verbs right here?
up to you, "SEASON spring" still requires spring
Thank you so much!! The map loads now ❤️
but it will remove the 2+ year requirement right?
yes, because `YEAR 2" is the "year 2 requirement" part
Thanks!
just looked at the decomp, and the price multiplier for fisher and angler is actually a property of the SmokedFIsh PreserveType rather than the smoked fish object
so
adding "PreserveType": "SmokedFish", to my contentpack just works
or does that break anything else?
so uh
how do i find out my nexus update key before uploading my mod to nexus?
or should my version 1.0 just be updatekeyless
As soon as you save the mod details when creating the new mod page (before you actually upload the mod file), your new mod ID will appear in the URL.
yup. just do the first step of mod page creation
it won't publish anything yet, but you'll get an ID
oh, i see!
good find. I took a brief look at the decomp and it probably is fine? the only issue is that your item will be named "Smoked" if its display name is not set by machine rules
though I'm not 100% sure, preserve type is a weird thing that generally shouldn't be set on things that are not actually that preserve type
the problem with cask rules (as I discovered last night) is that a cask will immediately spit out its heldObject (ie its output) when whacked with a tool
that's why I recommended Kai against making input/output cask rules and to put it in the preserves jar instead
Hi!
I'd like to ask - if I want to have some "dialogue checker", which will check if the player has seen the dialogue (and then do something about the fact the player did), I can do it using actions (https://stardewvalleywiki.com/Modding:Trigger_actions#Built-in_actions).
If I am right, I should use either text#$action AddConversationTopic XXX 1 (or, maybe, text#$t XXX 1, if it is better), or text#$action AddMail current XXX received.
Which would you recommend using? And why? Note that I want it to be as universal as possible (so, for example, the one that would work in the /message event command/dialogue % with i18n translations) and also maybe as simple as possible, but that's not necessary.
I kind of want to detect Tidy Crafting and show a warning to users that it causes problems.
Also, I forgot to mention that I want to have the "dialogue checker" invisible.
me but with that mod that wiped all machine rules
honestly
seems like a reasonable thing to do
if your mod's name is "Remove Crafting"
and your description "Removes crafting from the game."
Hey there! I've just got a quick question about attaching custom data fields to basegame villagers (sorry if this is interrupting other discussions!!). The wiki's got documentation for CustomFields as something that exists but it's rather sparse; just wondering if anyone has any experience?
I'm working on a mod that gives a fluctuating mood value to NPCs based on luck, weather, and season that influences their schedule and dialogue; to assist in this, I want to add fields for likesRain (true or false) and tempPref (temperature preference - warm means happier during summer, cold during winter etc.)
it's just a dictionary of strings to strings, you can set it like any other dicts in a content mod
and in your C# mod read if from the NPC data
^ CP or C# mods can add arbitrary data to it like this in the Data/Characters asset, and then a C# mod should be able to see and use that
(edit: CP packs would use your mod's ID, not theirs)
//...
"CustomFields": {
"YourModID_LikesRain": "true"
}```
Oh awesome tysm both of you!
I somehow haven't come across this site yet LOL (been more occupied brushing up on C# since it has a few minor differences from Java which is what I'm familiar with)
Hey, does anyone know what tilesheet the experience bar from UI Info Suite 2 is pulling from? It looks super clunky with my modded UI and I'm trying to find the origin to fix it so it doesn't look so ugly. D:
Can you show which bar you mean
it's probably somewhere in the UI tilesheets, meaning changing it will also change every other UI elements that use it
It kind of looks like it's from MenuTiles, but I'm not sure. :/ S'why I asked.
Fascinating ui interface mod you got there 
Personal mashup of CleanUI and Meow Interface. :3
Assuming it is menu tiles it'd be annoying to change yes
Could perhaps see if the experience bar mod works better for youhttps://www.nexusmods.com/stardewvalley/mods/22751
must be some pieces from the menu tiles i dont remember coloring anything remotely similar back when i did my own UI mod hmm
could always directly ask Abs0rbed what was used
Looking at the tilesheets, pretty sure it's MenuTiles after all.
/sadge
Guess I'll switch back to xp bars later.
Thx
the icon itself tho btw is on cursors
Hi again! Another quick question if that's alright; right now in my C# mod I'm accessing the daily luck value with Game1.player.team.sharedDailyLuck.Value, because as far as I'm aware this is the value that's going to be the most multiplayer-friendly? Since I know player.DailyLuck also exists but I'm not certain the difference. Does anyone know if this is the most reliable way to access that value that works on both singleplayer and multiplayer?
from the code:
public double DailyLuck => Math.Min(Math.Max(this.team.sharedDailyLuck.Value + (double)(this.hasSpecialCharm ? 0.025f : 0f), -0.20000000298023224), 0.20000000298023224);
it's mainly to take the special charm into account
I'd assume you want player.DailyLuck most of the time
unless you're working in a context where you don't have/don't want to use a farmer
Gotcha! Hmm, I think I'll go with sharedDailyLuck.Value then. (Was taking a moment to debate whether I wanted the special charm to have a global "everyone has a slightly better mood on average" effect bc that'd be the main consequence of the decision here; I might change my mind later based on vibes lol)
Tysm again!
Hello! Does anyone know which Stardew Valley dll class has the place where the game's fishing mini game is?
I’m not at my computer right now but iirc it’s a dialogue box on the outside
(please don't link to that)
(also that's the fishing minigame in the stardew valley fair, I listed the actual class name for the normal fishing minigame.)
Game1.drawDialogueBox(
(int)leftSide,
Game1.graphics.GraphicsDevice.Viewport.TitleSafeArea.Bottom - 160,
240,
160,
false,
true
);
Why is this still up
!decompile if you want to look at the game code
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Yes, I have my own decompile. I didn't know that I shouldn't link to that old version sorry.
I know there is a mod for the skip fish mini game, but it makes the person always catch the fish, and I found the code too complex to understand... I thought that maybe via harmony it would be possible to skip the mini game and create a random variable that the person could or could not catch the fish, instead of the mini game.
Essentially you’d just replace the call to the fishing minigame start with the call to the function that runs when you finish the minigame
That’s simplifying it a bit obv but the concept is the same
Do you know in which class this call occurs?
It's in StardewValley.Tools.FishingRod.startMinigameEndFunction
You would want to skip beginReelingEvent.Fire(); and set hit=true. I think that should do it.
In this case, would it be better to remove this line?
beginReelingEvent.Fire();
and change it to this one?
hit=true
@pine elbow it depends how you want to go about it. The place where you actually get the fish is in pullFishFromWater, which is where you'll likely add your chance modifier
if ((double) this.distanceFromCatching > 0.8999999761581421 && currentTool != null)
{
currentTool.pullFishFromWater(this.whichFish, this.fishSize, this.fishQuality, (int) this.difficulty, this.treasureCaught, this.perfect, this.fromFishPond, this.setFlagOnCatch, this.bossFish, numCaught);
}
public void pullFishFromWater(
string fishId,
int fishSize,
int fishQuality,
int fishDifficulty,
bool treasureCaught,
bool wasPerfect,
bool fromFishPond,
string setFlagOnCatch,
bool isBossFish,
int numCaught)
{
/** Add your chance to return here **/
this.pullFishFromWaterEvent.Fire((NetEventBinary.ArgWriter) (writer =>
{
writer.Write(fishId);
writer.Write(fishSize);
writer.Write(fishQuality);
writer.Write(fishDifficulty);
writer.Write(treasureCaught);
writer.Write(wasPerfect);
writer.Write(fromFishPond);
writer.Write(setFlagOnCatch ?? string.Empty);
writer.Write(isBossFish);
writer.Write(numCaught);
}));
}
If your goal is to make a mod that integrates with Skip Fish Minigame, that's likely all you have to do, since it seems like the mods still call pullFishFromWater (at least from the glance I took at the source). If you want your own mod that skips the fish minigame AND does a chance to catch, you can just latch on to a MenuChangedEvent, check if it's the BobberBar menu, and skip it with a call to pullFishFromWater and close the menu
IDK if this is the exact same one on nexus but it's the same concept
https://github.com/philosquare/SDVSkipFishingMinigame2
@pine elbow
if you want to integrate with skip fishing mods you'd need harmony to patch pullFishFromWater, but if you want your own custom mod you could do the chance to catch right in your event handler without any harmony patching
(side note, but hmm I wonder why the pile of reflection code; every field they want to get in BobberBar is public)
(A lot of things were made public in 1.6)
iirc a bunch of fields changed in 1.6.9 or similar that weren’t public before. I had some reflection break because I was checking for NonPublic
I got confused with so many examples lol
Thanks for checking, though it looks like DialogueBox is drawn using the MenuTiles map sheet. :/
I'll just turn that feature off for now.
Ideally it’s that way on purpose so it can match people’s ui mods but ig this is an exception lol. Do your actual dialog boxes look like that??
Uh, hold on; Let me check. But probably not, since I use Dialog Box Redesigned.
Huh didn’t know that was a thing. I can also add a check to use a normal texture box draw if the mod exists
Nope, dialog boxes don't seem to look like that.
Hi, does anyone know if there is any property of the map that allows Robin to build buildings, besides this "CanBuildHere":"T"
Because this option allows you to build buildings in the city, for example, but it doesn't allow you to build a normal house, only the house on the farm appears. Is there a way to be able to build a house in the city?
Up to you. I appreciate that you're even considering it, since this is most likely something people other than me won't encounter. ¯_(ツ)_/¯
I don’t think Robin can build farmhouses at all? Without some C# shenanigans
Yeah, AFAIK actual farmhouses can't be added as new Buildings, but you can probably mimic one with a custom Shed?
yeah you can define a new Shed-like building in Data/Buildings to be your "House" in the city
a cabin might be the even better way though
since it literally behaves like a farmhouse
(assuming you can build that in non-farm maps)
But the idea was to play co-op with someone living in the city.
you cant make a cabin without open cabin slots though
if the idea is to play co-op then a cabin is 100% the correct option afaik? because they will most likely need one anyway
you also cant reassign which cabin is yours though, so all the cabin events would still be on the one in the farm
which might be acceptable
Would that mod that allows moving buildings across maps work
i think that would depend on how that mod moved them
i didnt know that mod existed so
shrugs
Cabins do just have an AssignFarmhand(Farmer) function though and it might be as simple as just. calling that. but. it may also have some fucked up consequences if someone has two cabins
I assume so, yeah. Though I’m not sure how ownership is set for things like the island farmhouse so it may be okay?
i dont believe islandfarmhouse has an owner
its just a place
yeah IslandFarmHouse is just a DecoratableLocation not an actual FarmHouse
So in this case would it be better for me to build a new house in the city?
without writing a custom C# mod to make things happen yourself i believe the best you could do would be to start a new game, cheat in resources to immediately build a cabin in the city for your friend, and build another cabin that remains empty for yourself, and just pretend that cabin is your farmhouse
late to the convo but pathos looked at allowing cabins off the main farm but apparently there were Many Issues with that
so, yeah, best of luck 
It was actually just a generic idea to build a mod for those who like to play.
But when I heard you talking about the house on the island, I understood that it could actually be a house without an owner, since the idea would be to have a house to sleep in without having to run to the farm, if necessary.
the islandfarmhouse is just another decorablelocation
you can make a location that looks like a house just fine
you could do that fine
it just wont function as a FarmHouse
there will be no spouses living there and no farmhouse events and you wont go there when you pass out by default
you'd still have to visit the actual Farm to unlock the stuff that happens there
I think it would be interesting if it was the same as in Harvestmoon, building the house on an empty lot in the city.
I don't know about adding cabins off the farm but it's now possible to set the map properties AllowBeds T and AllowMiniFridges T plus add a tile in buildings layer with custom property Action kitchen and a back layer tile with WaterSource T for the sink. It won't technically be a FarmHouse but you can still live in it. You can also set map proprties PassOutSafe , IsFarm and CanCaskHere to round things out.
Hello!
I am trying to make a mod where i need to replace the town map. For this i have made custom tilesheets for the different seasons. But the problem is that i dont know how to get them to change seasonen. I tried, but it does not work (spring tiles in all seasons). Does anyone know how to fix it?
https://smapi.io/log/62bb12a8a8204a6bb69750cc4cd68427
{ "Format": "2.5.0",
"DynamicTokens": [
{ "Name": "World", "Value": "Vanilla", "When": {} },
{ "Name": "World", "Value": "SVE", "When": { "HasMod|contains=FlashShifter.StardewValleyExpandedCP": true } }
],
"Changes": [
//Loads tilesheets
{
"Action": "Load",
"Priority": "Low",
"Target": "outdoorsbrew",
"FromFile": "Assets/Tilesheets/{{Season}}_outdoorsbrew.png",
},
//Seasonal edits
{
"Action": "EditImage",
"Patchmode": "Overlay",
"Target": "Assets/Tilesheets/spring_outdoorsbrew.png",
"FromFile": "Assets/Tilesheets/{{Season}}_outdoorsbrew.png",
},
//Loads SVE maps
{
"Action": "EditMap",
"Target": "Maps/Town",
"When": { "World": "SVE" },
"FromFile": "Assets/Maps/SVE/BrewTown.tmx",
"PatchMode": "Replace",
},
],
}
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 22 C# mods and 55 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
!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.
What does that mean? 🙂
it means please use that link in the governor command for sending json, please do not post giant walls of json in here directly
oh okay 🙂 this is the link: https://smapi.io/json/none/f72bf4f90833439ba21fdd0139165051
"Target": "Assets/Tilesheets/spring_outdoorsbrew.png", This should be the tilesheet you want to replace. @spiral lion
"Target": "Maps/{{season}}_town",
"Target": "Maps/{{season}}_town",
why should i use {{season}}_town? 🙂
If you want seasonal changes, you need to target the {{season}}_town map and replace or overlay with {{season}}_outdoorsbrew.png.
I'm working on a custom map/location for a custom NPC and am running into a wall with NPC pathing. I can get the location loaded up just fine, warps are in place, my farmer can go in and out, but the NPC will not move around the map or leave it for his schedule. It seems like the map doesn't have NPC pathfinding? Is there a guide for how to add that? Something I need to set in Tiled or a code? I have "ExcludeFromNpcPathfinding": false,
Schedules work when I start the NPC from an existing location (Forest).
I've seen this question asked in a few places, but can't find an answer to save my life!
Double check that you do not require your NPC to travel through any blacklisted maps on their way to your custom location.
Secret Woods, Backwoods, and Farm are the common culprits because they are excluded from pathfinding by default.
Thanks! I'll look into this after work!
The warp is to the Forest and that's where the schedule takes him so he's not going through backwoods, though I did use a piece of the Secret Forest map as the base for the custom map. Would that be something?
The other thing is to make sure that you are sleeping or loading a new save when you make any schedule changes in your code, as the pathfinding logic is set before DayStart
Hmmm okay that could be something, I'll try sleeping (I thought I had but with how many times I do patch reload, there's no guarantees, ha!)
That would also apply to any location changes that might alter the pathfinding
as selph says u can put this rule on not-cask to avoid the funny cask behaviors
You know that type of friend who regifts things you have given them?
what if we had that?
you give them a disliked gift and you get a bit of dialogue that from the person who actually likes the gift saying "hey X gave me this for my birthday. it was very thoughtful of them" or something similar.
You could make those a dialogue string based on a conversation topic, probably
now that i think about it.......inter NPC relationship trees would be quite cool in general!
you give a present to Pam and Penny is happy also becuase you remembered Pam's birthday.
There is at least one mod (Part of the Community, IIRC) that has friendship/relationship interactions based on other NPCs
Sort of on a similar note, one of the features I want to include in a future mod is giving NPCs friendship trackers with each other! There's already in-game events for NPCs greeting each other when in proximity so that can be treated like the friendship boosts from talking, and NPCs having an 'inventory' based on gifted items, delivery items, and possibly a set based on the character themselves that gets added randomly over time could allow them to then gift things to other NPCs (or you!) during these interactions. The mod I was talking about earlier in this chat (called Free Will, still very WIP) is supposed to vary schedules dynamically based on different factors and part of it I'm thinking will be NPCs being able to choose to visit each other rather than the scripted hang-outs currently present. That could be more likely with higher friendship between two characters.
(This will be a minor headache to logistic around but I'm having fun working at it lol)
@teal bridge I reimplemented the new Data Layers API to allow future versioning and add the update-rate config, and added docs for mod authors. Any objections to the new API form for your usage, before I merge it?
are the built-in layers left as they are or also use same setup as mod provided?
They're mostly left as is; mod-provided layers get added to the same internal system with a wrapper ModLayer.
Whenever the character speaks they say the raw text instead of the token, I am not sure why.
Tue: "{{i18n:Tue.{{Random: {{Range: 1,3}} }} }}",
A coupe of random questions. First, is there any reason why you couldn't edit one of the maps in the mines? (I couldn't see anything that would prevent it, but I can't think of any mods that edit the mine levels and it's hard to believe no one has done it before unless there is some reason why you couldn't.)
Tokens can only used in a Content Patcher patch; so if you're using "Action": "Load" to load a data asset directly from a file, that file can't contain tokens since the file's contents aren't a patch.
And, second, if you can edit mine levels, where are the levels between 61 and 120? They aren't in the unpacked maps folder.
Great... So I have to use EditData?
is there any reason why you couldn't edit one of the maps in the mines
the mine layouts can be edited somewhat, but they don't match floor (its random)
Yep. You can Load an empty file, then use EditData to add entries which can use tokens.
Cool, ty!
that is one of the reasons why you cant, they are shared with earlier floors but with swapped tilesheets
atm the mods with combat focus go for adding their own dungeony area instead
like Sword and Sorcery
Can I use the same blank file for 2 different patches or do I need a seperate blank file if I am using it for another patch?
you CAN edit the maps so long as you are fine with the limitations, i have for one of my mods
I was going to try to edit level 68 so that the tunnel in the middle of the map goes somewhere, but it sounds like that is a no-go 😩 Thanks for the help!
you could do that edit and it'd apply to every floor with that layout
if thats fine with you then go for it 
Can I ask which mod?
i thought layout is random though
as far as i know there are no unique layouts besides like, chest floors and lake floors and 120
dont always get that one layout on f68
That's an interesting thought. I don't think that layout is used for any other levels.
I get a very consistent layout when I go through the mines. Every once in a while (maybe every 100 levels) I'll get something different than expected, but in the main mines, most of the levels seems consistent.
You can load the same file any number of times for different assets. You can also do multiple at a time:
{
"Action": "Load",
"Target": "Characters/Dialogue/Boop, Characters/Dialogue/Example, Characters/Dialogue/Another",
"FromFile": "assets/empty.json"
}
Definitely not ready for C#!
Ty!
looking at the code for the mineshaft, floor 68 is not guaranteed to be unique once you've reached floor 120
hm so in MineShaft.loadLevel theres a constant path for before reached 120, and a bit more random gated after if (lowestLevelReached >= 120 && num != 10 && num % 5 != 0 && mineLevel > 1 && mineLevel != 77377)
i think this shuffles in those funny new 1.6 layouts
If I have a dialogue set up for a certain day of the week, but its raining, does the rain override the day of the week?
I think rain schedules override day-of-week schedules but not calendar-day schedules?
is this the layout you are thinking of
Alright, ty!
If I edit the appropriate layout, that should take effect, regardless of the specific level the layout is used for, correct?
I'm actually looking at the layouts now and am struggling to find it. I'm wondering if the tunnel is a tilesheet that only applies to the cold levels and doesn't actually have an equivalent in the other tilesheets.
with frost tiles showing the nowhere tunnel
it will take effect on every level it is used on, whether its floor 38 or 68 or floor 792 of the skull cavern
hmmm
There's actually a different level with a tunnel (I'm starting up the game now to get a screenshot.)
another issue with editing this cave is that you cant extend map left and up
Just fyi
My goal with editing would be to put in a warp point to a new cave map.
leaving the mines will likely cause issues, too, as they will reset when the player leaves after 10min
im not even totally sure you'd be able to add a warp back to a specific mineshaft floor with just CP?
you also wouldnt know which floor to warp back to anyway, bc it'd happen on every floor that layout is used
Oh, heck. I didn't think about that.
this was a whole thing ichor had to deal with for portable hole
This is why I'm asking the questions before I deal with tiled (I only embark on the challenge that is tiled if I know everything can work.)
all these things combine to explain y no one likes touching mines
Please make digging a skill
Please
I don't care it makes no sense
hmm ok so
if it is possible to warp back to a specific mine level if you just know the generated location name for it, then it is technically feasible with BETAS, but it really hinges on that being possible and the mines resetting not affecting it
- edit all the standard map to put in dug up states
- do C# TAS to show the "diggable" wall
- yeet the TAS when player is near
no tools involved shovel scary
wouldnt it be easier to just remove the tiles on the Buildings/front layers
yea but i want the wall to crumble dramatically
replace them with animated crumbling tiles
ig it can be both though
Hello, I am trying to fix my custom NPC that I made, It worked fine before but ive been trying to make it compatible with 1.6 and the npc spawns in the map and the events work, but you cant interact with any dialogue and she doesn't move I attached the content.json any help is appreciated!
front diggable tiles
!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.
big TAS to hid us removing tiles
Here's the level I was thinking of, BTW.
which number is this
I guess I could sneak in a little room in one of the black areas.
Let me go through the maps again now that I have something to compare to.
It's map 28
(or level 28?)
(It looks very different with the earth tilesheet.)
yea if u look closely at the ice tile sheet
But I guess there is still a tunnel there.
the minecart tracks r removed
i think its fine to do edit as long as u dont leave this actual map
or if u do, dont plan on coming back
That's another possibility -- if you go through the tunnel, there's no way back.
(The vmv way)
(Which might be easier than trying to figure out how to use different tilesheets on the same map. How does it know which tilesheet to open?)
it swaps out the tilesheet based on floor number
So if I put a warp point in the map, I don't need to worry about the tilesheet -- that will auto-select? (I say this like ever done a warp point before, but I'm hoping it's relatively straightforward.)
?
When I play the event the dialogue says there is no translation when I put in the i18n.
a warp is a map prop not a tile prop
ig u can use touch warp but idk if mines inherit the prop from their tilesheet, maybe?
My ignorance is definitely showing! So I don't need tiled at all? I could just add a warp point with CP?
Huh. But if I wanted to add some sort of warning sign, that would definitely require tiled.
prob fine if u add it unconditionally
you can add whole tiles to map with cp
just not new tilesheets
I think I'm going to have to play around with this a bit, but it's exciting to know it's possible! Thank you for your help!
(My sole experience in editing maps with CP and tiled is https://www.nexusmods.com/stardewvalley/mods/29325 -- which consisted of hours of yelling at tiled and, like, three minutes of actual coding 😂 )
(And that was just for four tiles!)
Fixed.
What is the event command for making a character or the farmer jump? Like on the 1st winter where the shadow guy jumps then runs away
Seems a bit... straight forward... thank you!
Isnt the <random> value in the <weather>_Day_<random> dialogue key just the same as the i18n random key?
The biggest issue here is that your target is wrong
"LogName": "Dialogue",
"Action": "Load",
"Target": "Data/Characters/Dialogue",
"FromFile": "assets/dialogue/Dialogue.json"
},```
You use `Data/Characters/Dialogue`, when it should be `Characters/Dialogue/NPCName`
(also please note that you'll get a faster response in the future if you use the JSON Parser like Button suggested, folks don't always want to have to download the JSON files directly)
I've dropped it in there for you for now, and it also found some issues in the validator for your code: https://smapi.io/json/content-patcher/75e69030a8664a52b98ada3088f20fae
"EditData" requires that Data be capitalized, you can't use "Editdata"
i just need confirmation on this please
Not entirely sure what you're asking, Person, but I do know that it behaves the same as Rainy_Night under it, where you need to have multiple dialogues for the random to pull from.
So having keys with:
Rainy_Day_0Rainy_Day_1Rainy_Day_2Rainy_Day_3Rainy_Day_4
should automatically make the game choose one of the 4 when it's Rainy and Day.
Hey, is there anywhere to request mod ideas? I have an idea for something that doesn't seem to exist (that I know of) but I'm fairly certain it requires programming I don't know.
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
ty
Ah, got it. Thank you!
The wiki's a little confusing about it, but yeah, the game should automatically pick one at random from the dialogue keys as long as the <random> section of the key is actually a number between 0 and 4.
Can I use that in i18n then also use the i18n randomization token with it?
If you wanted more than 4, you could maybe do that for the numbered entries?
Fair enough
But I think having 0-4 entries would effectively have the same result as using a i18n random for a single Rainy_Night entry
the quintessential Tiled experience
tiled is fine as long as u do these 2398232 magic spells before you try anything
Yay posted the idea, now I just wait to see if someone likes it enough to take it xD Also now that I know this github exists I can keep an eye on it for things I can do \o/
tiled is peaceful and friendly and i won't stand for this map editor slander
https://smapi.io/log/195d1a50a529441b8ac2f72cb13571d3 is anyone able to parse this error message? i was having an issue where my custom NPC was doing his schedule and his animations, but wasn't saying the correct dialogue during it. i thought that maybe the issue was me calling \"Strings\\schedules\\Character.000\" in the schedule instead of in the animation json, but now it appears to be even worse and i'm getting the above error looping until i pause the game
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 4 C# mods and 1 content packs.
i can send my schedule and strings and animation files, if needed
Please do and also just to be sure, you have loaded a blank file for your schedule strings, yes?
I feel like the <weather> dialogue key itself is only used in marriage dialogue.
Discord removed the message I replied to as I was replying to it, so I'm not entirely sure if that went through xD
isn't rain used for anyone though?
yes but it's not a key iirc
If i'm using the content patcher ConfigSchema field and I want a config option that allows "any positive integer" is there a way I can constrain to only those values?
what does penny use for the "the rain comes down loud on the roof of the trailer. it's soothing" line
let me double check that--if that's my issue i'll feel so stupid lol
animations: https://smapi.io/json/content-patcher/5f27e981ba734b3899b4837439544944
schedule: https://smapi.io/json/content-patcher/fbd93d0d00ed42328550603a2306d94f
strings: https://smapi.io/json/content-patcher/227cf2dd6939490abf4a4fa47cd02a4a
The rainy dialogue is its own JSON (Characters/Dialogue/rainy)
ah i see.
I deleted my message as I figured it out (#making-mods-general message)
i should really get around to implementing dialogue so i can actually answer these questions 
okay i'm not actually sure if i am.
"LogName": "Blank JSON load",
"Action": "Load",
"Target": "Characters/Dialogue/CharlesRowland, Characters/schedules/CharlesRowland, Strings/schedules/CharlesRowland",
"FromFile": "assets/blank.json"
to me this looks like i'm doing a blank load for the dialogue.json, the schedule.json, and the strings, but maybe not the animations? i can't tell
Strings\schedules\CharlesRowland:Saloon.001 doesn't exist
According to your Strings file
Animations doesn't need one, it's just an edit iirc
Strings are per NPC which is why you need one there, but animations are all together
are you sure? i see it there, unless i'm looking in the wrong place
Your Rain and Friday schedules (which I think your Day formats may also be wrong, unless there's something undocumented on the wiki) call a nonexistent string, Saloon.000 exists but Saloon.001 doesn't
Schedule keys for Days are usually in three-letter format, so Tue, Wed, Fri, Sat, etc.
man i would never have figured that out lol, especially since i haven't even gotten to the point of testing those days' schedules out yet lol. thank you, i'll see if that was the issue
The wiki page for [[Modding:Schedule_data]] is super useful for fixing keys. 🙂
and to test an NPC's schedule after any changes, i need to load a new save or sleep, correct?
Correct!
hmmm, it's still throwing the same endless wall of red text
did you reload your patch?
The i18n keeps saying the dialogue has no translation when it does.
{
"Action": "EditData",
"Target": "Characters/Dialogue/rainy",
"Entries": {
"{{ModId}}_Tantelot": "{{i18n: Rainy}}"
}
},```
yep, closed the game and everything
should i move calling the strings out of the animation file and back to the schedule file, the way i had it before?
Can you have a space between i18n: and Rainy?
did you reload_i18n (or reload the game)?
yes
I am reopening the game now
I tried that, same result
there's def a console command to reload i18n values
Didnt work
do other i18n keys work
Yes
and did you save your files
Yes
drop your folder structure?
this is odd
i guess your structure is fine if other keys work
Stardew/Mods/MyMod/i18n
|
/assets/Manager
(what does that mean)
the file structure?
Is there a reason you're not using the i18n default feature instead of (no translation:Rainy) ?
What?
{{i18n:some-key |default=default text to display}}
i have never used that personally
Oh, I didnt know that was a thing
It would solve the issue but not the root of the issue right
I used it in the apartments mod
Nothin
"Action": "EditData",
"Target": "Characters/Dialogue/rainy",
"Entries": {
"{{ModId}}_Tantelot": "{{i18n: Rainy |default=test}}"
}
},```
then your i18n is not getting loaded by the game?
hm
did you post the json of your i18n?
I will post it now
there's a partial SS above
partial screenshots aren't a lot of help
in your animations can you try removing the last two // slashes from bagoftricks, soccer, batswing, read, and paintrunes?
and the name of the file is?
Default.json
(there is an i18n preset in the dropdown for the validator, for future reference)
Worth a try to lowercase it, it may cause issues with Linux/Unix down the road otherwise.
if the other keys work it's odd for this one not to work
(always assume case sensitivity!)
which makes me think a file got edited and just isn't being loaded properly into the game
it shouldnt matter
i just tried it, same issue unfortunately
Yeah, it wouldn't be breaking it for that one key specifically.
the error was exactly the same? can you post a fresh log?
sure
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 4 C# mods and 1 content packs.
and you promise you either did a patch_reload + reload_i18n or fully relaunched the game?
I fully reloaded the game, I will do both a patch reload and a i18n reload just to be safe though
Is there a possibility you've been editing the wrong file this whole time?
I've done that before
And only realized that i hadn't replaced the version in my testing setup with the one i had been working on
I only have 1 i18n file in this mod and 1 file for the dialogue
yes but do you copy/paste over to your Mods folder to test is what i think Shrimply is saying
well... unfortunately i dont know enough about schedules or animations to be much help, but the only place i can see this error happening in that function is when its doing stuff with the schedule animation, trying to access stuff in routeAnimationMetadata, which is fields 5+ in the AnimationDescription
Yeah, idk if you're working directly in the mods folder or if you work elsewhere then move the mod in
Hold on!
I exported the patch I am editing and it is getting registered in the export
(or 4+ maybe idk. one of the two)
pro tip: automatic deploy on commit
no problem, thank you for trying!
routeAnimationMetadata is only checked if there are more than 4 fields in your AnimationDescription though which is why i thought removing the trailing slashes would help. can you post an updated json for your animations?
Wait, there is a 50% that the game uses the rainy dialogue so since I dont have another dialogue set for the conditions today
https://smapi.io/json/content-patcher/fb24d1d4b8784b0a9623d6157e4f7744 i'm not convinced it's correct, because the wiki has an example without the backslashes before the " but without the backslash it ends the line, so...
hang on soccer is missing a comma
and a "
soccer isnt just missing a comma, you're escaping the final quote when you shouldnt be
or yeah, that i mean
do you need quotes there at all around the message key?
From the mods folder
hmm perhaps not, let me try it both with typos fixed and without the quotes
https://smapi.io/json/content-patcher/993e9668f16d4d1cbe239d421138a434 corrected it here.
also, does this error happen every single day regardless of which schedule should be loading, or does it only happen with one specific schedule?
i haven't had a chance to test any other schedules--it happens as soon as 6:20 hits in-game, which to me indicates it's related to the animation/string
that would be bagoftricks then
might be good to try switching ot to winter or fall or something to see if it occurs with the other animations at 630
(after sleeping a day or two ofc)
i'll try that! also, taking out the quotes surrounding the strings\schedules etc had no effect, same error message
i wouldnt have expected them to fix it, but it makes it easier to worry less about slashes without them
is there documentation on message keys, that you know of? i'm thinking at this point i might as well put the strings/schedules back into the schedule.json and deal with the devil i know rather than this game-breaking message key crap lol
its just a translation key
as far as i can tell theres nothing enforcing it needing to be in Strings/Schedules
I definitely didn't bother with putting my animation dialogue inside the descriptions, mine are in Strings/schedules because I got tired of fighting with it, but the base game does have some in the strings/animationDescriptions file.
trying to make sure i understa what everything does. so instead of calling Strings\\schedules\\CharlesRowland:Batswing.000 in my charles_animations.json, which edits Data/animationDescriptions, should i call it in my schedule.json, which edits Characters/schedules/CharlesRowland? or is my charles_animations.json perhaps wrong, and it should be editing strings/animationDescriptions?
although i took most if not all of my code from tiakall's lovely templates, so it should be correct if i didn't change it. hmm
i dont know anything about schedule strings or if you can do one or the other, all i was saying is that it doesnt matter that the translation key in your animation descriptions is Strings\schedules instead of Strings\anythingelse
it doesnt even have to be Strings\ at all
gotcha, thank you for explaining what a message key is and where it goes!
LOL
uhhhh lmao NO
i was so focused on where an index could be out of bounds in the specific function in the error i didnt even think about the bounds of the animation itself
that's why it's out of index, no wonder
well, I think you found the issue, Button
wow i bestow upon you eagle eyes award of the year
thank you good lord i was losing my mind
i wouldnt call em very eagle-y ive been staring at this for like 20min 
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 20 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
NO why is it still giving me the same index error 😭
havr you closed and reopened the game just to be safe and are you sure you edited the right file/saved it
i closed and reopened the game, started a new save, and i only have one copy of my files
maybe try adding those // back at the end? iunno
hmm okay. and still without the quotes, yes?
yeah the quotes can be left out still
Tried restarting the game, nothing. I also added a default to the i18n rainy key
I don't know that it would matter, but could the i18n's key name somehow be at fault?
hmm
I will try on a new save
same issue :(
i'm going to go have dinner and come back to this
I'm digging out my edits to the Satoru Gojo NPC mod just for you, nic. LOL
🙏
can you send your current json and fresh log again? (just in case theres something different in the trace) (when you get back from dinner ofc!)
Okay!
I got the stupid i18n to work on the new save.
It may have been because the rain was already there, im not sure
But I got it to work!
Working example from my Satoru mod update:
From the patch to Characters/schedules/Satoru: "Tue": "700 Town 46 32 2 Training \"Strings\\Characters:Satoru_Forest\"/2000 AdventureGuild 7 16 1",
From the related patch to Strings/Characters:
"Target":"Strings/Characters/",
"Entries": {
"Satoru_Forest": "Hello, @! I'm just out here training for a bit.$9#Training is my way of preparing for whatever comes my way. Can't afford to be caught off guard.$9"}
}```
Thank you @uncut viper , @latent mauve @light totem and @rigid oriole
I have never sent a message here my entire life
They meant @hard fern , apologies for the accidental ping on their behalf, shrimp.
*turns off and on sweet gem regrow to work with vanilla tweaks instead*
*suddenly doesnt work anymore*
literally just changed the image and mod id that referenced better crops 
and yet you're in our hearts and minds 😌
is nexus down for uploading files? been trying to update my mod for 20 min now and its still just spinning trying to upload the file
i see, so you called the dialogue in the schedule instead of when defining the animation. i'll switch back to doing that then, rather than in my animation.json!
😭 why'd i put so many windows in this building
Sunlight is good for the soul
i believe you can separate those into lines these days, same as event commands
it's a little more readable but still annoying
I dont know your exact situation but crops "hold" information after theyre planted, so for example if you change the name of a texture in the crop data, it will not change for ezisting cropa
I'm having a weird situation with my dynamic tokens where using addTemporaryActor {{Name}}? in an event causes a shadow to render where the temporary actor should go, when the NPC explicitly does not exist. Is this normal behavior?{ "Name": "Name", "Value": "InternalNPCname", }, { "Name": "Name", "Value": "OTHERInternalNPCname", "When": { "HasMod |contains=SomeMod.Here": true }, },
Is addTemporaryActor just not meant to be used with question mark exclusions?
atra you will drag me out of my dark room when I’m DEAD
why is atra the only one with that privilege
you can also drag me out of my dark room when I’m dead, Button
thank you!
Atra has been lifting weights, that's why
wait when did you become Quantum 
wasnt atra quantum originally
I was originally quantum
so... I am wanting to add an item. It is a crop. I am using content patcher,. I'm not sure why but it isn't showing up in list_items when I build it (even though it successfully builds - the mod info updated to the recent mod version number). My content file is looking like:
`{
"Format": "2.5.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"{{ModId}}_Wolfbane": {
"Name": "{{ModId}}_Wolfbane", // best practice to match the ID, since it's sometimes used as an alternate ID (e.g. in Data/CraftingRecipes)
"Displayname": "Wolfbane",
"Description": "Seed for Wolfbane to grow.",
"Type": "Seeds",
"Category": -74,
"Price": 1200,
"Texture": "Mods/{{ModId}}/assets",
"SpriteIndex": 0
}
}
},
// Crop data
{
"Action": "EditData",
"Target": "Data/Crops",
"Entries": {
"{{ModId}}_Wolfbane": {
"Seasons": [ "spring", "summer", "fall", "winter" ],
"DaysInPhase": [ 1, 1, 1, 1, 1 ],
"HarvestItemId": "{{ModId}}_Wolfbane",
"Texture": "Mods/{{ModId}}/assets",
"SpriteIndex": 0
}
}
}
]
}`
!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.
nah, i planted brand new :( arent going back to the regrow stage after picking like it was when itwas set up for better crops
what do you mean by "builds" when talking about a content patcher mod
its just harvesting it? check your crop data patches
You still have to build don't you. This is all in a c# mod
I don’t think I was here back when you were quantum
mods are either content patcher or c#, not both?
correct, you cannot have two mods in the same single folder like that
you dont have to build content patcher mods, they arent built
you can have a nested CP pack inside a larger mod that also has a nested C# mod
they are just either on their own or packaged alongside your C# mod by the modconfig thingy
(even if a mod has both C# and content patcher stuff they're still technically separate mods too)
but you can’t have a mod “contain” both C# and content patcher
once SMAPI finds a manifest.json file, it will not look for any other manifest.json file in that folder or in folders inside that folder
SMAPI log: https://smapi.io/log/cdaca35505214faf9edb84595604fb25
animation.json: https://smapi.io/json/content-patcher/e78a9501300d49ff999fcf43e0cc7fe3
schedule.json: https://smapi.io/json/content-patcher/7d5253ffb5294db186cec98cfa5602a6
strings.json: https://smapi.io/json/content-patcher/2d8e421964ba46f8b41f14ac65706d4e
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 4 C# mods and 1 content packs.
is this in spring still?
yep this is a brand new save day 1
i tried it with a rainy day from an old save, and i didn't get the same issue
since you moved the strings to the schedule instead have you tried removing the last 3 slashes from bagoftricks and just having the frame data
i got this instead
(disclaimer i really know not much at all about schedule animations)
i thought i had earlier but let me try just in case, since i'm probably getting confused about what we have and haven't tried lol
the wiki says those last three fields are for message key, laying_down, and offset x y
so i'm not sure if they're required or what
charles_music seems to work, and that's the only laying down animation
ha got it
missed an error smapi threw because it loads fast in some spots
afaik only the first three fields are required
that said if removing the slashes doesnt affect anything then i think ive outlived my usefulness in debugging this issue
sadly no change, yeah
but thank you for all your help, you definitely pointed out things that were a problem, just not THIS problem, haha
building 1 interior is as finished as it can be as of now. No exit warps because i havent finished the actual map
Is it possible to make an NPC walk faster?
Like with an action or command in the data?
Okay, so I got the item working. Thanks!
How would I go about nesting the mods. I.E having a C# mod and a CP mod under a single mod?
you dont nest them. you put them side by side
two different mod folders, within the same parent folder. two different manifests, two different unique IDs
Oh. So like MysticValley/MysticValley and MysticValley/[CP]MysticValley?
correct
Structuring mods are so hard and different XD
it gets alot better once you get used to it
Getting lost in the weeds for dialogue preference order :/. Does anyone know if fall_Mon or Mon2 would have a higher order of preference?
you can use ContentPacks in the csproj
to handle bundling in a content pack w/ ur mod
...
/speed Sebastian 4
in an event
Do you still just keep it side-by-side? I figured I would just check against mod_id if I ever needed anything compat. Is there anything special I have to do?
It isnt in an event, just in general.
shrugs helplessly sorry, that's all I know
I mustve messed up the schedule on my NPC a bit, they walked into the saloon then walked through the bar, through gus, through the bedroom and into the void...
All good
That happens when they can't reach a place
Hm.
Well. Half the time. The other half the time they just stick in a doorway
bundling as in, put it into a nice zip for you to publish
this is unrelated to the code
Alr, I think I got it. Nice!
I had this happen I think when I told an NPC to go to a coordinate that wasn't actually walkable (blocked by an object), even though it looked alright
Ah, alright. Thank you!
Bumping once, just in case
fall_Mon should have priority
Interesting. I was expecting the opposite
Bump
it should follow the priority order listed here
Ok, I was having trouble reading that list before, but I think I understand now
it is not possible via CP accessible means to alter an NPCs walk speed
just in general
Aww :(
If it's for testing purposes you can get FastForward so you don't spend a million years just waiting for a specific segment
Can you add warps outside of the designated map area in tiled? Like -1 1?
I would just like the NPC to get from the flower dance area to the saloon quicker
Could you just have them leave earlier?
Or set whatever happens at the saloon back later?
They're leaving at 6, getting there at 10
Eh, its whatever
Yeah, it's a long walk. But I feel your pain!
unfortunately, it simply takes that long for NPCs to walk the length of the forest map
I had this problem a lot with Mountain -> Town stuff
Maybe you can add an NPC-only warp? Not sure how that would affect general pathfinding though
That would break the immersion
you can zero schedule them to start somewhere closer on the day it matters
How would that work?
It's whatever, I will just change their schedule to something that works
a 0 schedule just starts them at the first location instead of their home point
I heard that zero scheduling can cause NPCs to spawn clones sometimes, is there any truth to that? 
^ put 0 for the first time and they'll spawn there instead of using it as a departure time/destination
Very interesting. Tucking that in my bag of tricks in case I ever need it later
@teal bridge Hi, sorry if this is the wronge place to ping you but the #1272025932932055121 is a forum now instead of a normal discord channel lol.
I was just curious if it would be possible to add a mode to Star Control where when the player releases the trigger it simply swaps to that item instead of also using it?
I went to gift someone during my first day with the mod and accidentally at the melon xD
The forum thing is for you to open a thread in with a log, if you have issues 
I don't think this server has dedicated "unsolicited mod author suggestions" besides here sometimes tho
usually the nexus comments are enough
hm maybe this isnt a question easily answered: but im splitting up my default.json and i dunno if i should split it based on character or not
it cant be easily answered bc the answer is entirely subjective
if it feels right to you or helps you organize, then no reason not to, really
just know that if you split up one language you are required to split them all up
alright, i just wondered if there were some like. unforseen side effects that might pop up
there are no functional differences between the usual i18n or subfolder i18n
got it
aside from the aforementioned requirement that they must match across all languages
once they get past the stage of loading there is no difference
Say is there a resolution on which one's default if both default.json and default/*.json exist
yes, its default.json
😅 that would be a problem for any future translators
I was contemplating if i ought to change my dotnet template
however long that might take
if you have both non-sunfolder i18n and subfolder i18n in the same mod, the game warns you about it and says it will go with the non-subfolder i18n
and tells the user that they should reinstall the mod to fix it
But intuitively i feel it should go other way 
Start with default.json split up when it scope creeps
you are correct and Pathos also agreed that it probably wouldve been changed if it had been brought up before that feature released, but it is what it is now

🤔 this question is in the same vein, but will splitting up parts of my content.json (into includes), does it have a significant impact on load times if i have too many includes?
not to a degree you should worry about
yaay i can split everything up into everything
yeah, since im working with like. a handful of npcs i want to make it easier on myself so im not searching my jsons for "specific npc dialogue number 800"
That already exists, just set the secondary action to trigger release.
(It's definitely OK to ping with a quick question like that, although folks generally use #modded-stardew for it)
That is actually how my own configuration is set up right now, I use a button press to activate the item (primary) and trigger release to select it (secondary).
So how would I get a texture to show up. I got the texture path pointed to in the json. Do I also have to do a load with the edit data to get the texture to appear?
just back from dinner, so I'm looking into this again. But the "string" "gs/sch" and so on looks like it's trying to reference the line and then getting cut off mid-parse.
So it's likely something with the animationDescription that is causing the issue
i did notice that your strings file was editing Strings/Characters/ and mine is editing Strings/schedules/CharlesRowland. not sure which is the correct target--i took mine from the wiki or possibly a template on the wiki, but it doesn't seem to work whereas yours does lol
and i'm still not sure what's up with my other problem, which is that weird out of index error
I have another one that does Strings/schedules/Satoru as well, but I only ended up using those for things like the Desert Festival, not anything with an attached animation
interesting okay
It shouldn't matter where the string you're referencing is located, as long as it's formatted correctly
since you get to specify which asset to use to find your schedule dialogue, you can put it anywhere you like. my NPC just has hers in her regular dialogue asset
And to be absolutely certain-- there's no weird invisible characters or newline characters in the middle of your dialogue string, nic?
the music one should be "%Charles' music is too loud to hear you."
The fact that it ran "string" as though there was nothing to parse and THEN "gs/<pathnonsense>" is the part that's odd.
which i admit i don't entirely understand, but i thought the percent made it a text box instead of dialogue
I've seen S T R I N G and so on before, but that's usually because my asset path was wrong in the schedule entry that was trying to load the string (using StringsFromMap instead of StringsFromMaps, for example)
Anyone know which event Abby holds the stick in? It's 38, 39, 52, and 53 on her vanilla sheet. They're not new or anything, I just don't remember them from when I last romanced her...
can I get you to try something for me? What happens if you add another schedule/location point after the message string so that it doesn't end on a message?
in the schedule, you mean?
Yes
Even if it's just one tile over, just to see if it's the \"" somehow causing weirdness
gotcha. in every line, or just the rain schedule?
Just for the one you want to test for now
okay, i'll be running "rain": "0610 DeadBoyAgency 10 7 3/0620 DeadBoyAgency 10 9 2 charles_music \"Strings\\schedules\\CharlesRowland:Music.000\"/0900 ArchaeologyHouse 15 9 0/1330 TragicMicks 11 16 3/1700 Saloon 33 18 0 \"Strings\\schedules\\CharlesRowland:Saloon.000\"/2200 DeadBoyAgency 10 9 2 charles_music \"Strings\\schedules\\CharlesRowland:Music.000\"2300 DeadBoyAgency 10 7 3",
Make sure you do a / before 2300
oop good catch
nope, same result at 0620, he does the animation without a wall of red text but the dialogue is String/gs etc etc
i think your count might be off, but it is probably her drumming animation, from sam's band show event (sam 8 hearts)
ok
it was mentioned earlier that it might be because there are more than 4 schedule points, correct?
Have you tried cutting it off before /900 to trim it down and see if it still acts up with the string?
(if that does fix it, we should have a way to call the other schedule points after)
i haven't heard that before, no, let me try shortening it
!log plz
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.
have you loaded a blank file for Strings/Schedules/CharlesRowland ?
yes
Does anyone have a checkerboard pattern for tile index's?
it's probably not the case but I notice your capitalization doesn't match
please confirm that it's Strings/schedules/CharlesRowland just for case sensitivity purpsoes
Strings\\schedules\\CharlesRowland:Music.000 <-- lowercase
the reason why I ask is because I don't see evidence of that asset being loaded
i cut rain down to "rain": "0610 DeadBoyAgency 10 7 3/0620 DeadBoyAgency 10 9 2 charles_music \"Strings\\schedules\\CharlesRowland:Music.000\"", and nothing changed
okay, let's change it to a file we know exists
Alright, then let's follow atra's guidance right now on confirming the blank load.
https://smapi.io/json/content-patcher/f4d8f23aa2eb4d0fb2b85fb19cb4f51a this is my current blank loads
"0610 DeadBoyAgency 10 7 3/0620 DeadBoyAgency 10 9 2 charles_music \"Strings\\Characters\\NameYourHorse\""
Also just to make absolutely sure our bases are covered. Your blank.json is a JSON file with just {} in it, correct?
yep, already ran into that issue last week, lol
I thought we'd already fixed that, but wanted to put it on record. 😛
loading up the name your horse one now
Bump,
that depends on entirely what tileindex you need
16x16
when i mouse over him, the speech bubble cursor appears, but clicking does nothing
generally we just use a program that has a "grid" feature and make our grid 16 pixels by 16 pixels
Aseprite even shows you the index (based on grid I assume)
there's also this from when I was fighting with tileindexes for furniture.png: https://docs.google.com/spreadsheets/d/1nE9-qRqVA1LouhsVIMiu1b8QmJ7vGyToAksgcLztBnQ/edit?usp=sharing
(Furniture Sprite Index tab)
ty!
okay yes it now shows him saying Name Your Horse
okay, so the issue is with your string
patch export strings\schedules\CharlesRowland
How are you loading your EditData patch for Strings/schedules/CharlesRowland? Is it an include?
type this into SMAPI console?
it spat out a json with {}
let me see
It's likely that your EditData patch isn't being applied, especially if it spat out the blank
too many files aaa
okay i think perhaps that might be the issue, i don't see it being included anywhere. i include the character file, the dialogue, the schedule, and the animation
That would do it, LOL
let me confirm that worked for rain, and then let me see if that ALSO fixed the index out of range error
HE SPEAKS okay now to test a non-rainy day
wall of red text returns, which makes me think there's absolutely some kind of issue where the other animations don't have correct syntax. the music one is the only laying down one, and the only one that works so far
drop the extra slashes
"charles_bagoftricks": "26/26 26 26 25 25 26 26 27 27 27 27 26 26 25 25 25 25 25 26/26"
i have since then, sorry. let me send the freshest copy
huh... Yea that might be right. I'll go poke my nose in that
notice the vanilla data doesn't have the extra slashes
https://smapi.io/json/content-patcher/d68e1880151c4423b475c5f26f22dd9a this is my current animation file
log with the exact error please
hang on i just noticed i had copied the animations into my content.json... why did i do that
let me reload with that deleted
okay yep oh my god now it works MASSIVE FACEPALM
thank you so much for your help and your patience with my stupid mistakes
glad we got it figured out!
SMAPI: https://smapi.io/log/41ef56ff36ad436da69d0d8241ec9ad9
CP JSON: https://smapi.io/json/content-patcher/e32d454a3f3d43d891862e59fa0af8d3
What are some reasons that EditImage patches won't load? Entries are correct, but Museum won't load. Also, why would a Replace with transparent pixels show black void instead of map tiles?
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 18 C# mods and 24 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
You need PatchMode:Overlay to put your own tiles on top of the vanilla tiles.
If you're doing a complete replacement, then you might see void on the map if you are replacing a solid tile with a transparent one that is used on a map's back layer
Missed the EditImage before, current message should be correct
Cool, thank you. I'll fix the back layer for the void. Museum still isn't loading though, just showing me the Stardew Foliage Redone version instead of WBPT :/
Does Foliage Redone load after WBPT?
If so, you may need to set a Priority on the WBPT patch
Wow, I'm dumb. Forgot about Priority. Don't use it that often. D:
WBPT is loading after Foliage Redone, fyi.
if foliage redone is using a priority, then you will have to add one to WBPT, or remove it from foliage redone
Might not be a bad idea to check if "Priority":"Late" solves it anyway, for the reasons ichor just mentioned
ugggggh, I have to go through and do studies of all the arm/feet positions for my custom sprites now
Well my mod is almost done, after a week and a half of working on it
I hate side poses so much
Nevermind, the wall of red text has blocked my way.
Debugging, Use JSON validator!
It was very effective!
Wall of red text has fainted!
Hey! I’m new to modding and I was wondering if anyone had experience with the glow buff mod? I’m trying to make one of the vanilla NPCs glow under certain conditions and was wondering if there was a way to do that
this is what I have rn:
{
"Action": "EditImage",
"Target": "Characters/Elliott",
"FromFile": "assets/elliott_{{look}}.png",
//"TargetField": [
//"{{Your_ItemId}}"
//],
"When": {
//conditions for his mer form to appear: sunny, 7+ hearts, 1000-200 AM
"Weather": "sun",
"Hearts:Elliott": "7, 8, 9, 10, 11, 12, 13, 14",
"Time": "{{Range: 2400, 2600}}",
},
"Update": "OnTimeChange",
"Entries": {
"Buffs": [
{
"BuffId": "MindMeltMax.GlowBuff/Glow", //Must be this exact Id to load the correct buff
"Duration": 120, //The duration of the buff in game minutes
"CustomFields": {
//Add the properties for the buff, will be explained in Fields
"Texture": "1",
"Radius": "3",
"Color": "{{red}},{{green}},{{blue}},{{alpha}}",
},
},
],
},
},
Just a hunch but I think I f'ed up sfgsdhsgfj
oof okok i was looking over the nexus posting and it was updated 2 weeks ago
would there be another way to get an npc to light up?
Oh, that's just Katrielle's house
/j
As in smoking or glowing?
i think that's the glow buff thing i was talking about
ah yeah, either I hallucinated it or I'm just not finding it
there's a Light Mod but it's objects only, looks like
yeah i think it's this mod: https://www.nexusmods.com/stardewvalley/mods/25157
yeah that's what this one looks like too unfortunately
I put towninterior instead of towninterior_2 lmfao, no wonder
thank you anyways, i'll try to get the tile to light up instead i think
Is this on a schedule or in an event?
on a schedule
ah, dang
ikr aghhh
god i feel like a caretaker, trying to get this NPC's schedule just right
I just spent like an hour scrolling through wiki pages trying to a very simple thing in the game, but I was unsuccessful so I need help here lol
I am working on a very very small change, simply changing the name of a 3 of the items in the "Special Items & Powers" menu
I downloaded a lot of software that the wiki recommended I downloaded, and I thought I changed things succesfully, but I think theres a few steps im missing to fully implement my very few changes
What exactly do I need to do to update the name of items in this menu?
You can do this from CP very easily if all you need is the Display Names changed
"Target":"Data/Powers",
"Fields": {
"RustyKey": {
"DisplayName": "Sewer Key"
},
"DwarvishTranslationGuide": {
"DisplayName": "Dwarvish Dictionary"
},
} //Close Fields
} //Close Action```
something like that, I think?
😅 wow i hate answering questions on nexus... maybe i should just put together a relatively short mod list so people stop asking what mods im using
You can look at Data/Powers to get the internal name of the objects, Odayaka
That seems simple enough
I would change the "RustyKey" from your example to the internal name of the ones I want to change, and then change the "DisplayName": "Sewer Key" from your example also to the one I want to change?
And where exactly would I type this
Sorry I like just started doing things like this for the first time
Yep, you'd make a Content Patcher mod for this, so this would go in content.json
What wiki page should I look at for a guide on how to implement the change
Thank you!
The trick is to look utterly vanilla
Do I put anything after the lines that end in { ?
Like the "Fields": { line, would I just leave it unchanged?
Currently I have this written in the file that will become the "manifest.json"
"Target":"Data/Powers",
"Fields": {
"ForestMagic": {
"DisplayName": "Forest Knowledge"
},
"DarkTalisman": {
"DisplayName": "Funky Key"
},
"MagicInk": {
"DisplayName": "Funky Ink"
},
} //Close Fields
} //Close Action```
Do I need to change anything?
Or would this change the 3 names of the items
The wiki has an example with things very spaced out
Do I need to write it like this?
whitespace (spacing, indentation, etc.) doesn't affect how the json works. but it usually makes it easier to read
Ok so if I have my manifest.json file has the text:
"Format": "2.5.0",
"Changes": [
{"Action":"EditData",
"Target":"Data/Powers",
"Fields": {
"ForestMagic": {
"DisplayName": "Forest Knowledge"
},
"DarkTalisman": {
"DisplayName": "Funky Key"
},
"MagicInk": {
"DisplayName": "Funky Ink"
}
}
]
}
}```
Will this be all I need to have written?
Or am I missing something / did I do something wrong
Funky key, lol
my brain is going there is something that allowed us to plant crops as a feature as part of writing a map, but i dont remember if it was from a like 1.6 update or a core mod framework, can someone help refresh my brain?
so you could like mark a location where crops would naturally grow, so you could make someone have a functional garden or something outside their house
my custom NPC doesn't seem to use their sleep frame when going to bed after marriage... do I need to do something different for their sleep frame to apply post-marriage?
I don't think 1.6 has that functionality as part of the update, so maybe it was a framework?
how are you applying it before marriage? when the NPC is your spouse, i'm fairly sure they use the standard animation key (which is how it is done if you use the special schedule destination bed).
the standard key is npcs_name_lowercase_sleep
so if your NPC is called e.g. SDVHead.LawAndOrder_Russell, then the required key would be sdvhead.lawandorder_russell_sleep
oh, does it need to be lowercase? That may be it then
it needs to be lowercase
I think it was before 1.6, in the 1.5 era maybe? its why my memory is so spotty on it, its been so long and i never actually used it.
it might even be outdated or defunct by now with 1.6 for all i know
I knew there was a mod that let you plant stuff anywhere, but I dont think it was a map thing, and yeah im not sure if it still works,
Ok this did not work
Did I simply type something wrong?
it is working now thank you!
In the "Mods" folder I have:
- the 2 folders that are there by default
- "ContentPatcher" folder, which has "ContentPatcher.dll" and a "manifest.json" in it
- and my folder for my small changes, called "[CP] KillWizard", which has nothing but my "manifest.json" file in it (which has this #making-mods-general message written in it)
You can do it like that, but it would be hard to parse wrong formatting. For example, you need to switch the ] with the second-to-last } at the end there.
Part of me is wondering if it was a TMXL/PYTK feature at some point, didnt think i was thinking that far back though
you want that to be in your content.json. manifest.json should have mod metadata in it
nothing but a manifest.json? your manifest should be metadata, you need a content.json to put that stuff in
i missed that you said it was in your manifest.json earlier
yes. but your manifest.json needs certain stuff in it too
use the "For a content pack" one
this should be your content.json file
Sorry, I just came back from some late night errands, LOL
As you are doing a Content Pack, you should only have a content.json and manifest.json in this case.
And this would be in your own Mod folder
mainfest.json:
"Name": "Kill Wizard",
"Author": "Odayaka",
"Version": "1.0.0",
"Description": "Hehehe slight wizard changes.",
"UniqueID": "Odayaka.KillWizard",
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}```
I think I did the first like 5 right but the last 4 i do not know how to fill out
UpdateKeys is your Nexus Mod ID number or the equivalent of wherever you plan to publish your mod
Im just using it myself
if you dont plan on publishing your mod publicly, you can remove the updatekeys line entirely
^
O ok
version should also technically be 1.0.0, its the version number for your mod, but
if its for personal use it doesnt matter
Oh I thought that meant game version
you can change it if you want or not, up to you. every other line is correct
"UniqueID": "Pathoschild.ContentPatcher"
}``` is exactly right how you have it.
I may have to give up the growing crops idea, if i cant even figure out what was supposed to be used to do it :p.
The "ContentPackFor" is the same for every Content Patcher mod. 🙂
does offset not work with the spouse sleep animation I've tried a few variations of this and none seem to be affecting position that I can tell: "{{russell_sleep}}": "16/16/16///offset 0 64",
The only thing i found was spacecore allows you to place fruit trees 
which helps for the idea i'm thinking of, as i dont require the crops growing in the map, as i can makeshift it with FTM.
"Action": "EditData",
"Target": "Data/Events/Farm",
"Entries": {
"1930900001": "continue/64 17/farmer 64 16 2 Lewis 64 18 0/pause 1500/speak Lewis \"{{i18n:foodstore.event.1930900001.1}}#$b#{{i18n:foodstore.event.1930900001.2}}#$b#{{i18n:foodstore.event.1930900001.3}}#$b#{{i18n:foodstore.event.1930900001.4}}#$b#{{i18n:foodstore.event.1930900001.5}}\"/pause 700/end"
}
},
how do I add the addItem to this event?
Quick question - is there an easy way to make the emote shown by NPC.doEmote() show for all players? (I know a few non-easy ways to do it already, just seeing if I'm missing something.)
I guess I could manually edit the sprite to include the offset but it seems weird it doesn't seem to work
It worked!!!!
Thank you guys so much for the help
I would not have been able to this at all without your help
.choose New/old mod, map, code.
Choose result: New/old mod
Where does this pull information from exactly?
"ObjectDisplayName": "[LocalizedText Strings/Objects:AgedRoe_Flavored_Name %PRESERVED_DISPLAY_NAME]",
String/Objects it looks like, plus most likely something set in C# about which type of roe it was
Or I guess not C#, one of the known things you can pull?
With the %PRESERVED_DISPLAY_NAME being the “flavor” of the item?
thats the "AgedRoe_Flavored_Name" key in "Strings/Objects"
GetObjectDisplayName replaces %PRESERVED_DISPLAY_NAME yep
So do I add a JSON to my mod in Strings/Objects? or can I redirect to like modfolder/data? Sorry im not very familiar with this. I used the recipe you sent me earlier and I got it to work - except the name comes out in raw code because I assume its looking for something not there
You add your own custom string yeah
kk
{0} Bear Mead
Something like that
To do this you gotta EditData the Strings/Objects target
I'm new and don't have Mod Author role, can I share a link to my mod here? I'd like to get it in the showcase if possible.
you need mod author role to put it in the showcase yes
but to just post it no
so 1 out of 2
someone else who DOES have the mod author role can post it to the showcase on your behalf though if they are around and willing
ok, I'll just post the link see what you all think https://www.nexusmods.com/stardewvalley/mods/31791
Interesting mod. Nice work!
Thanks! I put a lot of effort into making it feel polished.
There's a video on the page that shows a quick example of how it works.
im also impressed with the custom UI work
I think I can post if to showcase for you, what message would you like attached @tacit moth ?
(wrong person)
Yeah the UI work was tricky, i made a mess at one point and had to kinda start over.
vanilla stardew ui system in a nutshell
It's definitely made me wanna build my own game from scratch. But still worth the head banging in the end I think.
I could have released this days ago with just a config file but it would not been anywhere near as useful.
I think you responded to the wrong person, unless thats the message you want attached in the showcase 
oops, sorry yeah that was @ button, got sidetracked lol it's late. gimme one sec
np I did basically the same thing 5 min ago, very late 
Uh, just the tagline from the link is fine, I don't need any special text. "Enhance your Stardew Valley Combined Rings with custom sprites and color effects!"
(Posting on behalf of @dreamy arrow)
https://www.nexusmods.com/stardewvalley/mods/31791
Awesome! Thank you!
I did not realise the tagline needed to be repeated... it is 4am I am sorry. It looks really cool though yeah! That UI looks amazing, which is something I've struggled with a tonne
Hey does someone have a reference on how i could modify an NPCs Schedule during runtime?
It's all about the extra logging. You can never log enough positioning data.
And I'd be lying if I said it wasn't a little bit spaghetti-like under all the polish.
Do you mean editing it yourself while the game is still running or writing json/c# to edit the NPC's schedule sometime during the game day or something?
When doing PriceModifiers can we add a range/randomization instead of flat addition/multiplication?
or would that fall under some C#
seems like it has something called RandomAmount that should do the job https://stardewvalleywiki.com/Modding:Common_data_field_types#Quantity_modifiers
Badass, thanks!
Version 1.0 of my first mod complete :D
Finally fully flushed out the first feature I wanted
I want to offer the player multiple options of time slots to manipulate NPC behaviour
Shameless plug 😅
stares at map I forgot to have a place for grandpa's shrine

I'll just extend this a bit and... there, it exists now.
Or does anyone have any other reference for NPC manipulation for me?`Is it under Harmony?
I guess the best example of what i want to do, is making my own Spring festival? I guess thats the start
schedules are just generally not designed to be changed mid-day. theyre chosen once and a whole days schedule is loaded, parsed, and set at once
and theres a bunch of different functions that touch each piece of it
ah.. so i guess i cannot dynamically pick and choose characters that will attend the event? Aw man
"event"?
if you're making your own event thats much different from modifying an NPCs schedule at runtime
you would just need to choose who goes at the start of the day
unless you mean something like the night market?
I am calling the project "Tea Party", my basic idea is to give the player the option of increasing friendship by inviting an npc to the farm, in a set timeslot (idk Sunday 4-6pm)
ah.... an NPC on the farm is an entirely different category of Problem
Thats what i thought
pathfinding does not happen there
its not related to schedules they just cant navigate to, from, or really within it
And if i were to move the "event space" onto the normal map? Say in front of the Community Center, that would be different?
I guess i am reaching for the stars here with this idea D:
you'd then be back to just making sure you modify their schedule choosing at the start of the day
like with enough C# anything is possible ofc
but it will be a bit of an uphill battle if you want to be able to invite an NPC at 3pm and have them show up to a just-then-decided location at 4pm
Oh no, not that dynamic. I just wasnt sure if NPC schedules are "per-day" basis or set in stone on world load
per day
ahh ok. So where would i look for more info on modifying the behaviour? is there any documentation or do i have to scour the NPC classes?
generally for C# stuff your best bet is to look through the decomp yourself to find what you need or learn from the wisdom of others
depending on your specific needs some people may not have that wisdom
my Custom Schedule Keys mod (force load a specific schedule key according to a GSQ) and its source code may be of use to you though but thats as far as i can offer right now as i am going to bed
it just patches NPC.TryLoadSchedule, which may be all you need. again, depends on your specific needs/plans
(aside from GameData stuff like on the wiki for things like ObjectData or MachineData and the like or random C# functions here and there, SDV source code is not documented bc it was never meant to be, its just a game after all and not meant as a public API thing)
Ahh ok! Thanks a bunch for the help 🙂
I need to get used to the fact there is an art channel now for WIPs.
{
// Bear Honey Mead + 10x Fruit -> Preserving Jar -> Flavored Bear Honey Mead
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"(BC)15",
// Added support for Machine Progression System
"nachonline.mps_SteelPreservesJar",
"nachonline.mps_GoldPreservesJar",
"nachonline.mps_DiamondPreservesJar",
"nachonline.mps_IridiumPreservesJar",
"nachonline.mps_RadioactivePreservesJar",
"nachonline.mps_PrismaticPreservesJar",
"OutputRules"
],
Is this the proper way to add support for multiple machines, i.e; the machine progression system preservation jars
Follow up question, if these are optional rules for the recipe, would having these present when the user does not have MPS installed error/crash or just be ignored? Do I need to add MPS as a dependency to my mod, or should I?
i don"t believe it would work, what i remember about targetfield is that it does search target 1, then target 2 in target 1, then target 3 in target 2
and so on
so i don't picture how this would work
I kinda assumed, trying to figure out how to add support for the 'advanced' machines from MPS
They dont have a wiki that I can see
By repeating your patch for each machine, I would assume
i don't know if we have a shortcut for that
(hi im supposed to be asleep but if each machine can work with the same copy pasted code look into localtokens for templating since targetfield supports tokens ok goodnight)
I was trying to find another mod to look at their code to see how they do it but im failing in that regard lol
hmm,
"Action": "EditData",
"Target": "Data/Machines",
"TargetField": [
"nachonline.mps_SteelPreservesJar",
"OutputRules"
],
``` did not appear to work 🤔
it could be a problem elsewhere on the patch, or a patch order issue between the mods (either no manifest dependency in your mod or patch priority issue)
Does doing a patch reload in the smapi cli also reload the manifest file?
i don't think so
No
Ahh, darn ok
[Content Patcher] Can't apply data patch "(CP) Expanded Artisanal Goods > EditData Data/Machines #4" to Data/Machines: the field 'nachonline.mps_SteelPreservesJar' doesn't match an existing target
Manifest has it listed as a dependency, is it the patch priority then?
Probably not. Do a patch export of your data/machines to make sure that the MPS machines are there. patch export data/machines
you may need the (BC)
You can also do patch summary asset "data/machines" to see the list of which mods' patches are being applied to that asset.
Ah yeah the wiki page says the key is the qualified item id
omg this export is amazing
So I think Lumi is right you're missing the (BC)
Yep in the export they have the (BC)
Thanks guys!
Im real new to this so I dont know all these little nuances
We all go through it, except maybe the people who read C# well enough that they can figure this stuff out from reading the decompile
