#making-mods-general
1 messages ยท Page 272 of 1
Please do it using the link that was given to you
It's recommended to use content patcher for new shops
They don't want to make a new shop, but I expect CP is the better option for adding an item to Robin's shop anyway
But hm i wonder if u can have 2 recipes of same item at sale at robins...
Oh no you can't
Wasn't there the strange limitation 
Maybe what you can do is stick your recipe onto actiononpurchase for the regular big chest
OMG
Why not just make a different item?
OMG what's that
What's what?
ActionsOnPurchase is a field in shop data
the suggestion is to target ActionsOnPurchase on (BC)BigChest (Recipe)
and use MarkCraftingRecipeKnown Current {{ModId}}_BigChest2
another way you can do it is to send the player a mail after they have the original recipe
The limitation btw is that to sell a recipe in a shop, the recipe's entry key has to match the internal name of the item it creates, but you can't have two recipes with the same entry key.
so my (very unnecessary) concern is what if they're obfuscating the data asset edit somehow 
Iro you know cp mods can do that right
bc iirc editing assets in c# is just using the event callback and if statement, right?
I know! that's the problem!
Conditionally do edit data
what if someone is hiding an NPC in plain sight
chu I am a MATHEMATICIAN I will be unnecessarily rigorous about everything /j
invisible npc you say
/j
Why do you even want every single NPC?
Are you trying to figure out statistics that require a 100% representative sample?
I think NPCs explode though, if you unedit their data after they already spawned
maybe every time you feel the urge to look behind you it's because there's an invisible NPC standing there
Are you giving us the 100% comprehensive, always up to date NPC list we've always wanted?
because my brain is broken and likes to set stupid challenges for no reason
(while they can this tends to break shit in mp)
also, adding a new item to a shop like Clint would be "Blacksmith", correct? What about Pierre?
explode?
anyways, every time I touch pathfinding
shop names don't always make sense
Like if u have a npc that already spawned
it's 50% "okay, this is fun!" and 50% "what is collision"
i think pierre is seed shop
And then you take away the data bc the edit is conditional
Same with locations i think
I'll try it
I'll eagerly await ur latex writeup
ahhhhhhh
SeedShop actually no space
okay, I think I'm still missing (a) objects and (b) furniture and after THAT I think npcs have collision right
you should rewrite as one big short-circuited return statement
yes with furniture, idk about objects
for minimum readability
Have you covered non passable crops like hops or tea bushes (unsure if those are terrain features)
What if someone plants a bush in town
I would literally do this tho
iro what kinda mathematician are you
the unemployed kind
Imagine having 4 return when u only need 1
terrain feature
It is pretty easy to work out which is which by looking in Data/Shops
That was it! thanks
gammmeeeee
cheers. please don't ping me in replies. and yeah as Aba said if you unpacked the game it's all in shops.json
what we looking at there, atra
I am unemployed and can do a small amount of maths. Does that make me a mathematician too?
it multiplies by 64 just to divide by 64
iro why don't you name yourself unemployed mathperson
...does something else call getobjectat or something?
sorry I don't write perl?
oh plenty of things do
anyways assuming I didn't fuck it up, the moveTo command should work
so understandable but annoying 
depends, how strongly do you feel about whether 0 is a natural number?
I can't remember what natural numbers are...so...I'll see myself out 
(counting numbers)
All numbers are counting numbers if you're trying hard enough
Or have bad enough dyscalculia
don't tell me you've planned a transpiler in this method somewhere
actually I feel like this would be pretty easy to transpile?
goto is spooky
I feel conflicted about it what does that make me
do you feel conflicted but like the answer is Important
Aren't they just adorable 
Honestly one of the best things added with 1.6
the racoon empire...
Kind of, otherwise i wouldn't feel conflicted
mathematician confirmed
Nooooo
say lix are you aware of the thing with backpack expand mods + unlockable bundles?
where the ui becomes strange
someone mentioned that in the comments, but I haven't taken a look at is just yet ๐
I think it's actually fine with stuff the uses the return of custom backpack framework?
ah is it only bigger backpack then 
i think so
for bigger backpack i know for sure interface recolors needed custom assets
when i looked at this previously, both of the backpack mods did correctly change Game1.player.MaxItems
so its possible to detect a non standard size at least
i will give the raccoon all my wordly possessions
meanwhile after i switched to pack collection it just worked by default and it had a scroll bar
hi all! Just updated my mini-expansion mod, coop turtles are now live
Cute! Recommendation: link your mod, and post in #modded-stardew
Preferably include a picture
not safe at all. i have a C# only NPC and if you dont include him in whatever you're doing he will be very sad probably
him and i will accept no less than the perfect mod dump searching algorithm
good luck 
dont know how i feel about that pufferchick
its bone lord's underling
Oh actually @spice inlet I was looking into using UB for a thing and I was wondering if there was an easy way to either bind a bundle/book to a tile action OR do a custom world sprite
hey y'all, is there any possible way to host a lan game from CLI?
You can set a custom texture for the bundle using the "ShopTexture" property.
"None" will make it invisible
I don't think so, but you can't run a headless/hostless server anyways
the always on servers still have a "host" i think
they just get scripted to go2 bed and press confirm
Oh awesome! I didn't see that in the docs, maybe I just missed it. Thanks a bunch
Aaah okay I misunderstood how that worked with books
How does the game decide what is a water tile and what isn't
like if i wanted to design custom water tiles for a map and what not
Water T on the Back layer
with books you have a container bundle and as many page bundles as you want.
the container bundle with the IsBook true property will be drawn and interacted with in the world
I thought it was the menu icon for the bundle but I see that that's a separate field
now how do you do that
[[Modding:Maps]]
the names are... historically grown as we like to say in germany 
see guys? I told you!
this is exactly what I'm talking about 
dont forget to account for mods that might have their NPC code in a different assembly altogether that they load at runtime 
and what about mods that are actively obfuscating them? there's so many variables
at least 2 variables
theoretically you would want to check at runtime for what actually adds things to the data assets but then how can you be sure nobody is hiding behind conditions?
and you can't account for all conditions, because what if mutually exclusive NPCs
this is a conundrum
as atra said though you "can't" conditionally add NPCs bc that breaks shit
so that ones worth ignoring, bc the mod would be broken anyway
I refuse to accept this solution
you will come to realize you have no choice
there's always a choice
we'll be there for you when the realization strikes dont worry
ok but what even is the goal here
is this a mod u be running or a plan to find out all fest positions by mod dump
I read that in Darth Vader's voice
New quote added by atravita as #6343 (https://discordapp.com/channels/137344473976799233/156109690059751424/1355629646774931537)
it's a brain worm
New quote added by atravita as #6344 (https://discordapp.com/channels/137344473976799233/156109690059751424/1355572799711740055)
New quote added by atravita as #6345 (https://discordapp.com/channels/137344473976799233/156109690059751424/1355573313174245456)
are you gathering evidence for the court hearing
New quote added by atravita as #6346 (https://discordapp.com/channels/137344473976799233/156109690059751424/1355634749518909451)
is it possible to use reflection to get a field in another mod's class?
I thought it worked!
yes
yea
Sure!
you can hard reference their dll (not ideal) or just search for their type/assembly and work from there
what r u trying to do exactly
atra your scope creep made it into the upcoming in 1.6.16 page
didnt pathos say it already supported that when atra suggested it
happy home designer prevents furniture stack sizes from being decreased when placing, and it sets a bool to track it and i was hoping to just decrease the stack size myself if the bool was true
atra's fault for not updating the wiki clearly
I'm sorry button, the ram in my brain is corrupted so glitches like these are to be expected
wouldnt it be easier to just patch CheckReduceItem in HHD to always return true
or false. whatever makes it reduce
(oh its a skipping prefix so postfixing it to return true instead would work)
For a location that I want to change maps seasonally - when I load the location would I do four separate loads with a 'season' when condition?
Theoretically I could make it a dynamic token... but i dont want to do that
is it possible to code an emote overhaul rather than a retexture? where theyre in the stardew valley style, and instead of a bubble over the characters head, its a little overlay around their head?
I tried this and it works if happy home designer is installed, but I can't figure out how to conditionally make a patch using harmony annotations to handle when it isn't installed, do i just have to use the api for this?
does the map itself change seasonally or just the tile appearance? if it's just like the grass changing colors, then it'll automatically load the correct seasonal tileset as long as they're named season_tilesetname
Use the Prepare() iirc
map itself - i know about the tile thing B)
Well it's technically possible lol
i'm trying to install stardewxnbhack, but everytime i open it it says i need to unzip it to the game folder, even though i have. could i get any help? i am very new to this :-(
are you clicking on the file that is now in your game folder
yes i am
like theo ne thats in here
im on mac so it looks a bit different but yes
but its telling me im not so i know im doing something wrong
hm, least i kinda got it to work
are patchmodes even necessary when youre replacing a sprite or two with EditImage?
it controls what happens within the rectangle
ah
the default is replace iirc? double check docs on that
yea the patchmode is set to replace
It doesn't matter that much if your image js not transparent
so the ticket in within the bubble is actually transparent?
the base game ticket, i mean.
if so that explains why i wasnt able to get the new colors to appear
or maybe the new ticket texture i created is transparent..?
ok after some messin around yea the base game ticket is transparent when its in the bubble
can i transpile a <>c__DisplayClass141_0
hello! I am making a custom NPC mod, where I am trying to add a custom location (the home) but i cant seem to get it to work...
can anyone see where the misstake lays?
Yes
but how do i get inside 
your target for the map itself is wrong
you just posted the nameof the method didn't ya 
ohh.. in which way ๐
wouldnt this thingy change tho 
this is only two snippits of the code for this but this is how im loading one of my rooms
yeah possibly if the game updates. better fix it when it does.
Oh thank you i will try!
terror
hm, how can i get the new ticket texture to appear in the bubble ? unless thats like, hardcoded into the game or c# somehow
alternatively, transpile around whatever is making the display class, I'm assuming a linq method
its the afterQuestionBehavior in a createQuestionDialogue call
Alternatively, just target the method without referring to the name
its still appearinf as orange
a local anon method
See. My example
not referring to the name seems fine if there's not more than one
yea ill have to check
still can break if the game updates easier than most patches
at a certain point checking for so many specific things that aren't a name in order to distinguish it from others, you might as well just use the name
Or consider patchprocesdor.getoriginalinstructions
Well i have another idea
terror
I simply check that it's 14 days until baby for a player couple
And then change the number on day started
Like so
good luck with the mods that change that timescale
you and a few others I'm sure
Not unfair
I will note to self that it's been changed at least so I don't do it multiple times
so you hopefully don't do it multiple times
They would have to bonk the special mod data key I'll use to break this
Which is very much a their problem i think
That said the more annoying thing is the text
It's hardcoded to say 14 days 
I may just say this feature doesn't work for player couples on 1.0.0
can't believe chu is literally telling multiplayer players to heck off
In my actual save i have a skipping prefix that prevents steam from initializing cus i was bothered by the weird gog galaxy sdk exception
So yes multiplayer can heck off
what
There's this glibc(?) issue that makes some sdk not load and I can't be assed to find out why
surely you should just skip prefix the galaxy sdk loading specifically instead
"" "should" ""
They r like one after another
you're no stranger to transpiling
(New in the upcoming Stardew Valley 1.6.16: built-in framework to validate event scripts in unit tests.)
ok now im wondering if the prize ticket texture is hardcoded into the game when its in the bubble above the special orders mailbox..
Is it using cursor_1_6
yea
{ "Action": "EditImage", "PatchMode": "Replace", "Target": "LooseSprites/Cursors_1_6", "FromFile": "assets/cuteprizeticket.png", "ToArea": { "X": 239, "Y": 239, "Width": 18, "Height": 18 } } ] }
alright
and yes i did edit the cursor_1_6 file to have the new texture for the prize ticket xd
well
maybe i misplaced the image actually
the edited image for the cursors_1_6 is in the sakura interface redux folder
The bubble is not even tide to the box.
lemme copy / paste the image into the ticket folder
the custom command validators like the one mentioned for goto, is that something we can add with a register method or something? can we do so for existing vanilla commands (even ones that have one already like the mentioned goto)?
I am in spring year one, so no box. But got the mail from willy asking I catch 100 gold level fish. Did it and now there is a prize ticket bubble where the box would be, but I can't collect it as no box.
You can define your own validators when you create the validator instance. For example:
var validator = new EventValidator();
validator.CommandValidators.Add("SomeCommandName", (script, command, strings) =>
{
// validation logic here
});
You can do it for any command (both vanilla or custom), but you can only have one custom validator per command; so if you wanted to add your own validation logic for goto, you could just call the previous validator internally.
In this first version you can't define global validators (e.g. add a validator for your own command, which other mods then check in their unit tests); but that's upcoming too.
ah gotcha, it was that last part that I was thinking about, for others validating their events if they use my event commands but my validators only live in my assembly. looking forward to it 
(Now done in 1.6.16 too; CommandValidators is just static now.)
okay im getting close to changing the prize ticket .. i kept making mistakes lol, having the edited cursors_1_6 file in the same file as the edited prize ticket png would work, right .. ? or should i rename the 1_6 file ?
im suddenly forgetting alot of things everytime i code

gonna try the patch export target thing though
well, hm. i have the loosesprite cursor file in the folder, so i should update the fromfile name to match that // im slow
DID IT oh my god
how do you get a LockedDoorWarp to work?? ๐
I am trying to use this door to go to my custom location.
okay wow thats so beautiful
Thank you!
this is an example of one from the town for the hospital
the tiledata goes on the buildings layer
where is robin's animation for building stuff stored at?
i can't seem to locate it. its not in animationdescriptions
did you try both animationDescriptions
Data/animationDescriptions and Strings/animationDescriptions
i think i am writing the wrong location in tiled, but i donยดt know which name SMAPI gave my location..
its whatever name you gave it in your code
if you did {{ModId}}_nameoflocation it would be your ModId typed out with the rest of it
my mod id is AngelOfStars.Mrqifriendable so that's how it named the location
I will try it! ๐
(ignore the last part that's for friendship)
When gifting my custom npc, it says I've already given him something that day after I click with the present, and it doesn't use up the gift in my inventory... it worked a while back. What might cause this?
Are you sure it isn't hardcoded
(i checked cursors for it but its not there... i am surprised)
does it not just use the sprites on robins spritesheet
Pretty sure it does, but the part defining that it uses those frames is probably hardcoded.
So you wouldn't be able to set a separate animation for it using different frames just through CP
maybe scopecreep selph for it
did smapi itself have harmony patches in it before this update 
it has two of them now
yes
Has someone made a mod to bribe Robin into working harder
huh, inchresting
Yes
Those are the two harmony patches needed to make harmony work on net 5
Net y
Net something
Net worth
use the harmony to fix the harmony
someone bonk pathos for not using a mod ID as the harmony ID /j
it's okay, Make Everything Nic Cage is harmony-free, so the really important mods will persist
Also I see Pathos has taken over maintenance of Event Tester, setting me freeeeeeeeee
you'll never be truly free
Nah, all I have to do is declare none of my mods worth using
Oh wait, I did that last year
and did it work
Exactly!
glad we're on the same page
Does I need to to anything to the code to get it to work? ๐
I think you can add it with code but it'd be easier to add it with tiledata on your map in tiled
The Data/AdditionalFarms file is a list, I couldn't find out what its class is in C#. Can anyone tell me how to do it here?
if (e.NameWithoutLocale.IsEquivalentTo("Data/AdditionalFarms")) { e.Edit(asset => { var data = asset.AsDictionary<int, AdditionalFarmsData> << which type to put here }); }
But how am I going to use the value there in var data = asset if there is no way to convert the asset into a List, only into a dictionary?
var data = asset.GetData<List<ModFarmType>>(); (sorry for late reply had to cook)
you are try to make custom farm in C#?
oh
Actually, I just wanted to find out what type of variables ModData and CustomFields exist in this ModFarmType type, because unfortunately the wiki doesn't have anything about it.
ModData and CustomFields are generally always string to string dictionaries anyway, in basically all cases but 1*
ilspycmd -p --nested-directories -r "$GAMEPATH" -o SDV-CSharp "${GAMEPATH}/Stardew Valley.dll" "${GAMEPATH}/StardewValley.GameData.dll" -lv CSharp10_0
i decompile like this so that i have both the main dll and the game data dll in 1 project
Hi, do you guys have any tips for troubleshooting gift giving? I've run into an issue that I think I can fix, but I'm not sure how to best aproach it.
i mean it depends on the issue
Are these 2 fields of any use?
if you plan on using them, sure
When gifting my custom npc, it says I've already given him something that day after I click with the present, and it doesn't use up the gift in my inventory... it worked a while back.
It registers as empty till I try to gift him, and then it counts it, but rejects the gift, and offers no dialogue
Like I said, it worked just fine at one point
modData/CustomFields is largely for modders to use
you basically agree to have your C# code check some custom field key (e.g. ModId_MyFlag)
how do i make a cooking recipe be unlocked once you get the house upgrade that adds a kitchen? i accidentally softlocked myself from the toast mod i converted as i forgot to include some way to obtain the recipe xD
"it worked fine at some point" is not very relevant id say, because it isnt working now
id sleep a day and try again. if still broken, id check to make sure the gift taste string wasnt misformatted
I understand, so I think in this case I can leave it as a generic variable, and not mandatory in the module I'm building.
you can use lookup anything to check the gift tastes
are you like, making your own custom asset 
I tried it on two different saves and I and tried it on another day too. Maybye a problem in how I wrote the gifts could be causing it...
I'll test it again after trying one other thing I can think of
(I am not making unique items at the moment)
(did you make the pink flowers? i find them especially pretty)
Ok, it was an issue with / not encasing every gift, so it works now. Sorry about that. I should have done a little more changing and testing before asking for help. Thanks.
I am going crazy.. the warp does not work and the SMAPI error shows that my location cant be found. what is the name? please help โค๏ธ
(Action LockedDoorWarp)
Oh, can you upload the whole content json?
Did Pathos do this just to show you could? It looks interesting.
you shouldnt be using CustomLocations anymore, you should EditData on Data/Locations. both because its deprecated and not as customizable, and also because CustomLocations cannot use Tokens in their data
i reckon this is just ancient
Oh okay... but i cant get eather to work haha ๐ฆ
also, your CustomLocations block is in the wrong place anyway even if it was correct
also also, please use the smapi.io uploader for jsons (and logs )
it is 3750 which is after 1915 (content patcher), but i dont think content patcher was that powerful back then
How do I fix it? โค๏ธ
Hey
I will link the site that you can paste your content json into ok?
Yes ๐
based on your manifest, your location's name {{ModId}}_BloomandBrew would parse to bloomingvalley.BloomandBrew_BloomAndBrew
Just to answer that bit
After you paste it in please link the url.
The rest we need in the JSON parser
I have tried that, this is what i use on tiled: LockedDoorWarp 7 20 bloomingvalley.BloomandBrew_BloomAndBrew 700 2000
Yea
Your issue is that you are missing a ton of the information needed to load in a custom area.
I had an issue getting my location to load in just the other day, and thanks to the people here I figure out what to do. I'll will just send over a template of sorts from my own mod and then you can ask more questions after trying it, alright?
Thank you so much! โค๏ธ
(I am by no means an expert, like I said by the way. There could be more you need to do depending on what you are trying to achieve)
this was the snippet I pasted from my NPC Apartments mod a bit ago with a super simple location
You'd also need to have an Action to Load your tmx to a Target asset for the Maps file itself, of course.
I will try it! ๐ thx
if im addign edibility to an item would i do it like this ```{
"Action": "EditImage",
"Target": "Maps/springobjects",
"FromFile": "assets/Wood.png",
"ToArea": { "X": 294, "Y": 7, "Width": 30, "Height": 16 },
"Edibility": "1.2",
}
im trying to give wood an edibillity for context
no
๐ญ
you need to edit the Edibility in Data/Objects
that patch is just editing the texture
darn ok thought i could do it at the same time lemme go find the data (new teritory woo)
you cannot, you need separate patches
Edibility is also an int only (no decimals)
Maps/springobjects is used for ofc many many things and there is no way that content patcher could possibly know you're trying to edit Wood, which might not even use that texture anyway if another mod changed it
"Action": "EditMap", // this is applying a patch I made to change the asthetic of an area, but is not needed
"Target": "Maps/BusStop",
"FromFile": "assets/maps/WSF_BusStopEdit.tmx",
"ToArea": {"X": 19, "Y": 0, "Width": 6, "Height":2}
},
{
"Action": "EditMap", // This is necessary to add a warp on a preexisting vanilla map to get to yours
"Target": "Maps/BusStop", //Targets do not have file extentions like .tmx
"AddWarps": [
"19 -1 {{ModId}}_MidwayCave 8 13"
]
},
{
"Action": "EditMap", // to add warps to to get out
"Target": "Maps/{{ModId}}_MidwayCave",
"AddWarps": [
"5 14 BusStop 19 0", // Target location X Y exit tiles / end location / end location arrive tiles /
"6 14 BusStop 19 0", //These are extra warps if you want a player to exit or arive on multiple tiles depending on where they are standing
"7 14 BusStop 19 0",
"8 14 BusStop 19 0",
"8 14 BusStop 19 0",
"9 14 BusStop 19 0",
"10 14 BusStop 19 0"
]
},
{
"Action": "EditData", // This lets you get the custom location recognized
"Target": "Data/Locations",
"Entries": {
"{{ModId}}_MidwayCave": {
"DisplayName": "Midway Cave",
"DefaultArrivalTile": {"X": 3, "Y": 13},
"CreateOnLoad": {
"MapPath": "Maps/{{ModId}}_MidwayCave"
}
}
}
},
{
"Action": "Load", // for the assets of the location
"Target": "Maps/{{ModId}}_MidwayCave",
"FromFile": "assets/maps/MidwayCave.tmx"
},``` This is how I did it
where would one put edited data in the folder would it go in a folder by itself labeled data?
oohh so i can edit the data in the content patch? just need a new field then?
ty button
Well yeah tahts true LOL im hoping that maybe i can figure out how to do it, im new to modding though so its probably too advanced for me
Hey Button, I wanted to thank you for the help you gave me yesterday by the way, since I don't think I got to thank you properly.
It felt great to finally see my custom location actually in the game
does a new patch require a new content json or can i put it in the same one with my texture replacing
always a great moment when you first see your mod take form 
you can put it in the same one!
awesome
you can only ever have one content.json specifically, but if you want other .json files you need to use content patcher's Include functionality
but they cant be named content.json
thank you!! ๐
its purely for organization purposes if you choose to do so
no difference in functionality
Each patch (I call them Action blocks, because they start with "Action") is contained in a separate { } block inside your Changes: [ ] list with a comma separating them.
ohh so if i want to do a new patch do i need to make a new changes then
no
Nope
your patch is inside two braces {} right? each block of those is one Action/Patch
One Changes: [ ] entry
getting rid of the / 25 5 / snippet broke the mod lmfao, oops
if you dont put the 25 5 you still need the //
"216 1 724 1 //194/default/{{ModId}}_mapletoast"
the code had that
maybe the lack of the space messed it up tho
im trying to make it unlockable by default/when you have a kitchen ๐
it shouldnt matter as the game never even looks inside that field, are you sure the rest of the format is correct?
If you are going to do a bunch of changes it is better to use "include" for organizing. One giant content.json can get confusing. But like button said it is only for your own organization
By the way, be sure to not use the mod id I put in. You need to make your own. Here is a link explaining it if you don't know about them: https://stardewmodding.wiki.gg/wiki/Npc_template Mod id explanation is very close to the beginning.
Hello! Aviroen here.
Below I have constructed a ROMANCEABLE NPC template which are all standalone.json(s)
This is assumed that you understand Content Patcher to some degree.
"What does standalone mean?"
It means it can be it's own separate json like "NPCNAME.json" or "Dialogue.json" or "MarriageDialogue...
Yes.
Basic anatomy of a content file:
"Changes": [
//This is a comment. All your patches go in here!
{"Action":"EditData",
"Target":"Data/Objects",
//and so forth.
},
{"Action":"EditMap",
"Target":"Maps/Forest",
"FromFile":"assets/MyForestMap.tmx"}
]
}```
incomplete action blocks in there for the sake of a short example
Just found out yesterday that the 25 5 is not used anymore. But you need the // to let CP know that it has the correct number of fields
https://smapi.io/json/content-patcher/18dea4bc3170497e803bcb2776e2a375
i accidently rebooted the game so i need to trigger the error again, but this time the error mentioned the }}_bbtoast thing
it didnt mention that before but thats before i added /default into the code so i can unlock the recipe
hm ๐ค
well thats bc your modid token is missing a { for that one
cus i forgot to make it unlockable somehow
is wood a debris
I didn't feel like grabbing an actual object code to tweak, but that's the structure

The stuff that spawns on the farm? Yes
im gonna be askin a lot of questions while i figure out this mod
Does anyone know why my custom location does not work?
https://smapi.io/log/16412aa537c94a22b9d0d9d36132b36e
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
Microsoft.Xna.Framework.Content.ContentLoadException: The content file was not found.
---> FileNotFoundException: Content\Assets/Maps/Indoors/BloomBrew.tmx.xnb```
You need to do an "Action":"Load" for "Maps/Indoors/BloomBrew"
And use what you target there for the map path in the Data/Locations entry instead of the TMX
under mod id_ (name) would i put the regular vanila wood or my png ๐ค
ouu i will try to remove it... ๐
Happens if you put a file asset with an extension instead of an asset path (with no extension)
ah, okay makes sense lmao
can i send a json log rq im a little stuck lmao
ur replacing the texture of vanilla wood correct? i think the wiki has an example for replacing vanilla items??
yea but im also adding edibility to so i have to edit the data for it and im not sure if i should add vanilla wood or my own
ah
if you're editing a vanilla item then you put down the key of the vanilla item you want to edit
as found in Data/Objects
otherwise you're not editing a vanilla item, you're instead adding your own
aah ok
Clearer location example from me for a barebones indoor area, including loading the TMX to an asset path in Maps/: https://smapi.io/json/content-patcher/5269f9fe1ba547cb97cece15a60afb0e
(lily, you'd know better than me, is there any wonkiness or issues that can arise from them having /Indoors/ in their target too instead of just going straight into Maps/?)
(like with tilesheets or something)
(yes, if they are using vanilla tilesheets in their tmx, they could run into climbing issues or tilesheets not found issues)
if theres no climbing in their tmx itself i believe those will load fine but i wasnt sure about maybe seasonal changes or somethin
actually are the mines seasonal
If they're shipping with vanilla tilesheets, it'd avoid the issue, BUT, it would break on seasonal changes unless those are all included, and would break recolor compatibility.
I suspect no
But I would personally avoid it
oopd
you used Entries instead of Fields
Entries when editing an existing object will apply the stuff you filled out for the object, and turn everything you didnt fill out to the default values, effectively overwriting the entire rest of the object
Fields will only change what you specify i.e. edibility, displayname, description
huh.. theres no recipe tab for .. my recipe. did i use the wrong unlock tag??
bc its not appearing in the cooking menu either
Where'd you set it?
its a cooking item i want to be unlocked once you get a kitchen, so id assume that unlock tag wou,d be /default.
"{{ModID}}_crantoast": "216 1 282 3 //194/default/{{ModId}}_crantoast" is for the cranberry toast in this case
ah..
maybe i shouldnt have used the 194 number then //
LOL
194 is a fried egg ๐ณ
you also don't want to set displayname like that
"216 1 282 3//{{ModId}}_crantoast/default/"
fields are 0: input, 1: unused, 2: output, 3: condition
ahh
if you just delete the entire output field it's going to try and cook you a hot, fresh default and add the recipe never because it's checking against toast as a condition
"Fried Egg": "-5 1/10 10/194/default/",
is
"Name": "Ingredients Qty/unused/Yield Qty/Unlock Conditions/Display Name"
according to wiki, but it's weird
recipes also use the produced item's displayname by default, so you only want to specify it if the recipe doesn't match the produced item (such as with spring/summer/autumn/winter seeds in the base game)
(yes, Yield can apparently have a Quantity if it's more than one)
ok now idk what to put in texture exactly let me send a json
least the items for it appear correctly
blueberry im pleased to report that skipping prefix on a ctor is fine
are you going to skip prefix the steam sdk constructor now too
please skip Game1.game1 constructor. i need to be productive
would that really help lets be honest here
no....
my favorite food,, default
ill fix my spaget if i ever get 95% perfection
okay i fixed it mostly
yeah I was there for the conversation, I honestly wonder what it was gonna be used for 
the blueberry toast is not wanting to work though..
but everything else works
blueberry is still default lol
does Brfalse consume thing on stack
Yes
sorry
It branches if the top item is falsey
I'm guessing (hoping) it was originally meant to be some sort of bulk cooking thing
what do i put under texture so it uses my texture?
https://smapi.io/json/content-patcher/04bf8638e4fe4694a096eaac992e5c87
10 10 for fried egg would have made a ton of sense for "make 10 fried eggs if given 10 eggs"
would it be assets/Wood.png
it would not
y cant life be simple
jk jk
hmm i know the ifnormation is here somewhere im probably glossing over it XD
it would be whatever you set as the target, which is not necessarily the same as the png
Textures also need to be loaded as asset paths
something more like this would be preferable imo
{
"Action": "Load",
"Target": "Mods/{{ModId}}/Wood",
"FromFile": "assets/Wood.png"
},
{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"{{ModId}}_PeppermintBark": {
"Name": "{{ModId}}_PeppermintBark",
"DisplayName": "{{i18n:item.peppermintbark.name}}",
"Description": "{{i18n:item.peppermintbark.description}}",
"Type": "Debris",
"Edibility": 5,
"Category": -16,
"Price": 0,
"Texture": "Mods/{{ModId}}/Wood"
}
}
}
note the change to Load your texture to a new asset and use that as the Texture field
oooohhh
this is editing vanilla wood, is it not?
yes
is it???
so just dont change the texture at all
fuck
just leave that field blank
i think theyre tryna add hsi wood texture to it.
ooh ok
it uses Maps/springobjects by default
oh
Yep, he/she/they (don't know who we're talking about) can just patch over that spot in springobjects
but you DID expect someone to make a new object with the id "388" 
also Kandi don't fill out fields you're not changing
he is trying to make wood edible and look like candy. For her Kandi Land mod
ah
i'm sure someone created an item named "96" within the last week
you're only changing displayname, description, and edibility so you only put those lines
is ok
ik it can be hard to remember

ok then that means somethings going on with my texture replacement part then cool
that narrows it down XD
your only problem is that you set the Texture to 388
dont do that
(your only problem assuming those coordinates are correct*)
i think my coords r off
ok 2 questions
- did 1.6 change the fridge to have another sprite to show its opened? or was the fridge always "animated"
- if it was changd, where would i find the new sprite to change it?
looking at springobjects now and im not sure where you got x294 y7 like, at all. thats the top left quarter of daffodil
is it the wood that is on the ground that you break or the object itself
preferabbly both
That would be 2 patches then.
TileSheets/Craftables, surprisingly
ahh oke
64 256 is the top left corner of the object itself
kinda makes sense since the fridge IS a craftable item, technically
the mini fridge is
they are both on Maps/springobjects and can be done in a single patch with one editimage
and that uses the exact same sprite as the default fridge
Oh that makes it easier
there's two different logs that spawn on the ground for debris - the first one is 96 192 and the second one is 112 192
(again both for the top left corner)
(i think i misunderstood you Frog, i thought you meant 2 patches for both of the debris like Lily mentioned, those c an both be done in one patch but do need to be separate from the wood you get in your inventory patch, my bad)
Then you need the coordinates for the inventory item wood too. Making wood edible candy apparently is a lot of small pieces. Not just one change.
unless the retextures use the exact same pixels as the originals, then you can do it in one with an overlay
(i gave the coords for all three)
sorry i lied it's in LooseSprites/Cursors2 
however i have no idea what Kandi';s wood.png looks like anywya
I know trees are candy canes. Saw the picture
as in, the entire thing
i need to find the mod that changes my kitchen though..
Poptart
lmfao
if it's just the one 16x16, then you'd need to do two patches to target each set of coordinates
XD supposed to be peppermint bark
bc if its not exactly the right size you need a FromArea too, and i cant tell if thats a perfect 16x16 pixels
but i was unsure why your ToArea was not square
ok this reminds me a cosmic brownie but instead of a brown frosting its white
i think i was trying to also target an unused sprite on the sheet
it looks delicious i would eat it
I am looking forward to a Log version of this.
well your coordinates in the last json you sent target a piece of daffodil
is there a mod that makes wood edible i feel like it would be required for this mod
I need giant Peppermint Bark Log retexture
so idk what is up with it
idk but there is a mod to change the log stumps to cakes
kandi is the one making it edible, with this mod
:>
I love Candyland so i need to make a mod for it
im going to release small bits of it over time when i feel ive made siemthing people might be intersted in on their own like im trying to make my pocky fences AT variants
but i want to also make a complete change
ooooh, a swiss roll cake would work really nice for the bigger log too
if it matters to you, you should know that visibility for a mod after like, the first few days of its release, generally plummets on nexus
not saying it SHOULD matter to you, but if it did, it may be preferable to not release bits at a time
(assuming its all one mod)
i've found that most of mine only ever took off after a few big updates
but that was a long while back
i can't wait to release the 1.1.0 update of my mod ... doing the maps is gonna be the longest part u_u
I hope people will enjoy it though
@ivory plume is it possible to make ShippingBin.getSourceRectForMenu() and Stable.getSourceRectForMenu() return null instead of the texture bound? I don't see why they need the special implementation
who needs food when you have wood
Exactly
Hey everyone , I'm a bit new here.
Earlier, I had brought a couple suggestions to @ivory plume and had a discussion earlier in regards to addressing the possibility of integrating parallel mod loading into SMAPI by leveraging a loads async mapped/executed to a list of async futures.
It was recommended I bring the conversation to this channel so that's what I'm doing. I'm sure this may have been possibly discussed prior, but I'd like to bring it up here with some ideas. I'm looking to get input on them to possibly expand, derive and/or inspire ideas and achieve some form of optimization from this discussion.
Through that short discussion the following challenges were highlighted:
- How to address load ordering (direct dependencies) in a parallel scenario.
- How to address indirect dependencies (leaf assemblies or otherwise).
- To keep behavior deterministic. (Mods continue to operate as expected).
In my initial suggestion I had included an approach to analyze the direct dependency groupings via grouped containment and a parallel groupings and/or strict ordering attribute ins the json deps file.
The second challenge I have come up with some candidates and currently I've looked into 3 different non-trivial ideas:
- Static analysis of DLL headers to pre-build a dependency graph (Some initial I/O involved to trace through deps and implementation of a way to parse the DLL deps out of the binary).
- Caching dependency graphs from a previous executions of SMAPI. ( First run might take longer but then subsequent launches of SMAPI would be faster as long as mods were unmodified - hashes and modify times matched).
- Containerization of assemblies in isolation with a provided RPC interface so the assemblies can still interop.
Let me know what folks think.
A 100% accurate general-case solution sounds like solving the Halting Problem to me.
halting problem..? oh wait that trolley problem thing? or is that one different
is this actually a bottleneck of any sort 
Static analysis of DLL headers might not be reliable (e.g. assemblies could be loaded in a mod entry class static constructor or something), and containerizing assemblies sounds like it would be a pretty major change to how mods work now (which would require a SMAPI 5.0.0 if so).
Caching the dependency graph is probably the simplest and most reliable way. SMAPI could just check the mod file hashes and reuse the cached data if they didn't change. Before we put a lot of effort into it though, I'd be curious to see (a) roughly how much complexity it would add to the code and (b) how much difference it would make to loading times.
Hello, I really need help, Iโm exhausted and frustrated... I converted a mod to the i18n format, validated the related JSON files, and found no errors. I tested the mod in a save without any other mods, but Gunther still canโt say the dialogues from dialogue.json. He can say all the other texts, just not those.
The mod was translated by two people. The part I did works fine, but the part he did doesnโt. I tried changing the translation keys, validated the files, and nothing worked. I even redid everything myself, and it still didnโt work.
I tried a direct translationโreplacing the original text with the Spanish textโand that actually works.
i always hear people complain about loading a save takes 10mins, but rarely do people talk about opening the game taking that long
did you check the source mod actually is fully i18n?
well i found the fridge texture, from cute valley - pink. it has no sprite to match with the fridge opening sprites from base game.. hm
I made the i18n format for the mod myself. I've done it for several other mods before, and this has never happened to me.
but also, neither does cute valley have a mini fridge texture so id need to edit that one too somehow
Would containerizing cause, say, multiple copies of 0harmony.dll to be loaded?
no i meant, is the mod itself using {{i18n:some-key}} where it should be
(Also, I've in the past found that the bulk of load time for me is when the game loads maps + the entities that go on said maps)
It shouldn't, since Harmony is loaded by SMAPI itself. But for other third-party assemblies, yes each mod that uses it would have its own copy. I think it'd be similar to the private assemblies feature that was added in SMAPI 4.1.0 and removed in 4.1.4 (but enabled for all mods instead of opt-in).
Yeah, and that was what was causing the erroneous mod bundled copies of 0harmony to load
And cause later issues
just to verify, you're not mixing top-folder i18n files with subfolder ones, right?
Yes, I redid the entire conversion again, tried different keys, and nothing. Let me show you this (searching for image).
Like, you can't use dialogue.json at the same time as default.json, for example
Well, that was probably just a bug. The feature would need a bit more work to be stable, which is why it got stripped back out.
wheres the fridge animation sprites located again? i cant find them D:
Fwiw, I think the 0harmony.dll issue is a little tricky too; harmony has code to handle the possibility that multiple versions of itself got loaded, but no idea how that works with different assembly contexts
the animation frame is in LooseSprites/Cursors2, halfway down, left-hand side.
the fridge itself is in Maps/townInterior, towards the middle-upper-right
this } looks like a mismatched i18n token
thank u blueberry
What do we mean by "loading" here? Literally just loading the code into the runtime, or some amount of initialization, too?
I donโt understand what you mean by mixing. If it helps, I can show you the file paths, is that what youโre referring to?
you can't do this
es.json
es/
dialogue.json
es.json wins over whatever's in the folder
Can you share a screenshot of the mod's folder and files in it?
How is that possible if it's the same?
it would be a mistake in the original mod
but i can't say for certain since ive never seen the original mod
Of course
I know
So all the translation tokens are in es.json then, and you're using them from dialogue.json?
Some background: I was motivated to look at this by watching a friend have to wait several minutes for mods to load in on their laptop. I was thinking that worst case individual process contexts could maybe achieve the containerization, but I wasn't aware of the 0harmony.dll issue. @calm nebula I wonder if that only applies to if it's in the same process. The other thought was that through RPC calls then troublesome interfaces could be abstracted from inclusion. I was also reading that assemblies can be unloaded from context so maybe these isolated containers could have a replacement RPC interface so that so that there is only 1 instance.
It might help to share those two json files
oh yea dialogue has no tokens
assuming its this mod https://www.nexusmods.com/stardewvalley/mods/7102?tab=description
Have you timed the bits of the load process
Do you know what is causing long load times
Give me a minute, I'll be back and tell you where it's taking the dialogues from.
have you checked with your friends if load meant reached title screen (at this point all mod dlls have loaded) or load into a save file (various mods apply their data edits, and other events on saveloaded/daystarted/etc)
The 0harmony.dll thing I find a little scary to touch, frankly, because 0harmony has special code to deal with the possibility multiple versions of it got loaded
these r distinct optimization problems
Hayato, if you simply replaced all the lines in dialogue.json with i18n tokens and did nothing else, then they wont work
because that file is just being Loaded
{
"Action": "Load",
"Target": "Characters/Dialogue/Gunther",
"FromFile": "assets/dialogue.json"
},
it is do this yea
some of them are being edited afterwards with EditData, but not all of them
the ones that are not touched outside of dialogue.json cannot use tokens
This class legitimately scares me.
what you may need to do is your own CP mod that does a load like this
{
"Action": "Load",
"Target": "Characters/Dialogue/Gunther",
"TargetLocale": "es-ES",
"FromFile": "assets/dialogue.json"
},
(assuming you are doing spanish tl but change to appropriate TargetLocale if i remembered wrong)
@calm nebula No , I didn't collect any forensics which is why I didn't really report a specific time period. I was more interested if optimizations could be made in general after seeing the friend wait for a while. It also wouldn't have been reasonable to ask them to install a profiling tool to determine the full bottleneck.
is it poissibel to make a placeable object edible or will i have to take the L on this one
like the fence for example got it edible and implemented just cant place it ๐ญ

Yeah, in the past I timed the bulk of loading time to, well, map/tilesheet/etc loading
I know music is also a bottleneck
Maybe dll loading is but that one seems like a fuck ton harder of a problem
Interesting, that may mean there'd be at least benefit to parallel loading the assets and not focus on the inclusion of the DLL's so much. Just apply them in the correct order after completing the initial I/O.
I was able to get around 25% improvement in map loading when was messing around with TMXTile a couple of years ago (in a completely unscientific test)
this is a thing people have looked into it yea
then I lost interest
esp cus there is 1 big vector of loading stuff (content patcher)
if u can make content patcher go more fast even a little then it is big deal for 1k+ mods ppl
Monogame pretty much hard assumes single threaded ๐ฆ
I don't think it's impossible though
just patch monogame ez 
I'm sure someone could whip out dnspy and create a patch for monogame.
oh no we just use harmony for that here
i cant open the snack anything file in vs code to look at it because it uses dll which is unsuporrted ๐
I'm back, the texts are taken from content.json, dialogues.json, cecily.json, schedule strings.json, and MarriageDialogueGunther.json.
Isn't monogame open source?
one other content patcher sore spot i have seen a lot lately is having mods that update their tokens frequently (OnTimeChange) and cause lag because expensive assets like maps have to be reloaded from scratch with some regularity.
a pipeline cache (like docker; keep partially-constructed assets around and only apply later edits) could perhaps mitigate this problem but it would likely be costly in terms of memory
here be the source if you wanna find out
https://github.com/ChroniclerCherry/stardew-valley-mods/tree/develop/SnackAnything
It sounds like it may even allow for dynamic asset loading. You may even get away with paging the memory. At a certain point there though it'd make sense to almost treat it like a database with postgres or something.
But if I leave the original dialogues or change them to the same ones in Spanish, the text is visible in the game. I'll show you a screenshot, give me a minute.
we told you why your tokens werent working in dialogue.json
if you don't want to do this thing then you will have to change the Load of Characters/Dialogue/Gunther to a blank.json
and then do EditData to get tokens into that asset
you cannot use tokens in dialogue.json right now
no {{i18n:blah}}
hm instead of making everything edible myself ill just have snack anything as a possible dependancy for people to eat if they wanna ig would be the easier solution aye
But I've already changed them for others and it doesn't recognize them. The only way for it to translate the dialogue.json is if I translate the dialogues within it myself.
yes. because it cannot use tokens. because it is being Loaded.
a file that is used inside a content patcher Load action will not have any of its tokens work
they dont get parsed
they would require either manual translation inside dialogue.json itself directly, like you say, or the other method chu suggested
It's not my mod, I'm just translating it. If I do that, I would also have to upload a copy of the content.json, and I only want to upload the es.json as I do with all the other translations.
I can try what you suggested just to rule it out.
you would make a separate CP mod that depends on the original
No, it's too much work, I don't have experience with that. So I'll do a direct translation of the dialogue.json. I prefer to upload the es.json and the translated dialogue.json rather than uploading an edited content.json or creating another mod separately to handle the translation.
what's this mean [game] Failed to create Galaxy lobby.
unfortunately you will have to for this mod 
we can help you with it though, it is literally just that one patch
the other thing you can do is, get in contact with make gunther real author, and offer to help them do i18n
I wrote to him a few weeks ago, but he never replied. Do you mean that making the patch isn't complicated?
if you aren't using gog galaxy it should be ok to ignore
yea i don't think it's too bad 
You don't have the app Gog open
take a look at this guide for general content patcher stuff
this is the thing i recommended earlier
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md#how-do-i-change-assets-in-another-language
It's just that I literally have no idea how to do that, but it could be useful for future situations where something like this happens with another mod, right?
oh but I guess a user is saying they cannot join a multiplayer game
this will happen with any mod that Loads dialogue directly or is not set up for i18n
ok Then it's better that I learn how to do it... there's no harm that doesn't bring some good, haha.
I dont think a GOG copy of the game requires gog to play multiplayer. They should not be related. I would think worse case they cant use the gog friend list to join.
Time to study... I'll write to you if I need help, right?
oh ok
Hi, I'm curious about what would be the easiest way to set up recurring 'nicknames' that can have more than one value, as is multiple variations I could specify depending on what I want to write (not pulled from a list and randomized in other words), and also having it only ever occur if triggered by picking one dialogue option earlier on. Would that be a dynamic tokens thing?
maybe they need to join by using the invite code method!!!!!!!!!!!!!!!!!!
dynamic tokens and mail flags (from the dialogue option) would be the way i would look at doing it
Yup, or by entering the ip address. Ip address methode is fool proof.
Do mail flags need to be sent through the mail, or is it just an internal way of flagging something?
you need to "send" them with the AddMail trigger actions or some other mail command, but they dont need to exist as actual mail in Data/mail
if you send them to the "received" inbox directly, the player wont ever know you did so and you can use them as flags
(you can use normal mail that they do see as flags too ofc)
but basically yeah you can send anything with AddMail, even a nonexistent mail ID, and it will just add it anyway
Ooh, interesting.
(vanilla does this all the time, so don't feel bad about doing it, even though it's a bit quirky)
i cant see it being anything other than coincidence
Not sure how they verified via steam with a gog copy. But that is beside the point. The gog error, does sound like it is trying to connect over gogs server. They should do the ip address method. I agree, the chances that it is Cape stardews fault are very slim.
Would you recommend one method over the other for my idea, or are they pretty equal options?
there is no difference between them when it comes to sending them
sending mail is the same process whether its a mail flag, actual mail, or both
the only difference is which inbox you send it to
I meant dynamic tokens vs the mail flag
those are also one method
god i wish you can use tokenized text in dialogue
you use them together
elaborate on this
well dialogue is like dialogue.json right
i dont think i can do [LocalizedText blahblah] in Characters/Dialogue/Abigail can i?
i thought its already resolved at that point 
tokenizable strings are not Tokens
content patcher has no control over them
the game parses dialogue strings using the tokenparser
i think the point of tokenizable strings is that the game parses them
protected virtual void parseDialogueString(string masterString, string translationKey)
{
masterString = TokenParser.ParseText(masterString ?? "...");
does this not do what you want
why didnt it work last time then 
where were you using it exactly
then my confusion probably comes from "its already localized"
well localizedtext is but one of many tokenizable strings
but i imagine using it to load itself is probably uh
i probably just used it wrong 
not ideal
yea wouldnt it recursion...
seems like an infinite loop to me
hey atra remember when you could spinlock the NPC schedule code by doing
"spring": "GOTO spring"
but yea i guess if you hate dynamic tokens for some reason you can use a string asset for your nickname 
you could, but then you're doing more work than a dynamic token
Technically that would stack overflow!
Hmmmmm
but it can be outside of content.json
My disorganized heart
fine /lh
thats even more work
some people like complexity 
Hey, a spinlock never ends
"now where did i place my dang nickname asset?? let me just look in all 50 of my includes rq"
also itd be cross mod
A stack overflow eventually does
its already cross mod with CMCT
with no deps
then use a dynamic token, and then use that dynamic token on your asset edit
dont shove a bunch of conditions on just the asset
Pls. Use ripgrep lime the rest of us
(i never tried it. i thought it was an infinite loop and not a recursion)
we r at 3 things now 
tokenizable strings cannot be used everywhere
they cant even be used in all the places you'd normally expect they could be
but yea putting aside the nonsense extra complexity parcy
- you use several mail flag to remember which choice is picked
- based on the flag, assign the nickname to a dynamic token
(did you know you cant use tokenizable strings in LetterViewerMenu? have fun with your custom asset there)
oh u know that explains it
i did know that one
(I debate adding tokenizable string support to letter view menu every day)
i was prob thinking about that for "cant tokenizable text here"
(I'm a sad, sad person)
and have it mixed up with dialogue cus they look similar syntax wise
mail data has the [letterbg] stuff which is likely the reason why
as they share the same [] syntax
i mean, any problem can be solved
[itemid] came first though and i imagine tkstrings were b uilt around that rather than the other way around
but the letterbg stuff is new
i expect betas mail update by next friday \j
although this is one of the things mfm can do now i believe
tokenized text in mail body, if u use the mfm model to create your mail
you can change the contents of a letterviewermenu string with BETAS Harmony
somehow i got mr qi arena totem in my game despite not having ANY mr qi mods, so i think i accidently included that code or maybe the UniqueID as a mistake last night since i was pretty tired when i was fixing up the toast mod. . i do wonder what happens if i use it xD
not very specifically, but you can. ApplyCustomFormatting returns a string, just alter that
nah that's an unused vanilla thing
It can go in smd
what is smd
Also in smd is a random 4pf capacitor
sommand prompt?
..oh
Surface mounted device!
||slightly more dehardcoding||
explains why LookUp says its not modded
super mario dbrothers
oh, is atra modding again
its atra's dehardcode haley event (+ some other things) mod
Nooooooooooooo
the retired status has never been so questionable yes
it can go in smd then
smd is how you're supposed to pronounce cmd
(I am irl laughing my head off)
Don't forget the smd opamps.
I am assuming Pathos does not want pings about bugs in the mods they maintains. There is a strange automate glitch in modded tech. Was not sure if I should let them know. I told the person to report it via automate. But was not sure if they had a preference on being told directly though.
i think its fine to ping pathos about that, but perhaps even better to go open proper bug report on nexus/github
ok so im trying to add some alternative gate types but it keeps saying 'Craftable_325 has no alternative textures for this season!" which means it has an at texture it just wotnt let me use it i think 
oh when i was like "add new fence"
i was thinking they r new items entirely 
like this mod
well if you knew you probably wouldn't have done it 
real
the thing that annoys me is im not getting any erros like (too big too small) or (wont load) so its in there >:L
Hi, any idea why my medium bush tile placed on the paths tile layer is not spawning a bush? Does it need extra tile data, or a brand new world to spawn in? I tried loading it in a test world that I never save on, so it is still on day one.
Hi there, i'm making my own mod and i'm getting an error that i can't find out about anywhere online. is there anyone who can help me? or anywhere i can ask?
This is the right place!
https://github.com/Lake1059/ResetTerrainFeatures_NET6/ you'll want this one i believe, unofficial update not on nexus
so i've never really coded before, so mind my ignorance, but i'm getting "can't be used as a token because that token could not be found."
im takin a break to angrily bake bread
!log when asking for help with errors you'll want to upload the error log here, and if relevant theres a link on the left side of this site in the governor command for uploading jsons too. a full log is always beneficial to send, even if it might not look like theres anything useful in it. however, it sounds like you might just have a typo in a token you wrote, though ofc i cannot say for certain without a log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnโt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
the uploader will change the url to a link you can easily share here for people to read and help with
please use the link...
please do not send the log text here, please send the link
SORRY
aint the first time someones done it, wont be the last, no worries as long as you keep it in mind in the future
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 6 C# mods and 1 content packs.
okay in this case i will actually need the json too to see the context. the "JSON Validator" link on the left side of smapi.io is what you want
can upload your json file there and share a link the same way
this is your entire json for your Everglades mod? your log mentions an edit to Data/WorldMap that isnt present here
(unrelatedly, but CustomLocations is deprecated, and if possible you should move away from that method of adding a new location)
(also also are you intentionally overwriting the entirety of the Town map)
guide for 1.6 way of adding new location https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Custom_Location_(CP)(1.6)
Rokugin here with a quick tutorial on adding a custom location to Data/Locations using Content Patcher.
Github repo can be found here, with the download for the whole mod here.
This tutorial assumes you have SMAPI and Content Patcher installed.
I suggest using VSCode for automatic formatting and real...
(and if you are intentionally overwriting the entirety of the Town map, are you aware of the many, many downsides of that?)
and guide for editing only a portion of existing map https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md
I haven't done a lot, and i tried starting with the map and here I am, I have a manifest file as well, but yea that's it.
(that's good to know)
(I'm trying to do the tiny one that comes up in the inventory, also trying to conect my area, which is outside of the walkable spaces)
my area would sit in the forest behind joja clin't and the museum
no i mean, the warning in your log is talking about json that does not even exist in the json you sent, so something must be missing or have changed since then?
you likely do not need to replace the entire town with your patch to connect the area, you can (should) select a specific area to replace. otherwise, you are likely going to overwrite a bunch of other mods edits, depending on mod load order
when i say replace the entire Town map here, i mean the space you walk around in
my bad, forgot to save it, her's the newest saved version: https://smapi.io/json/none/7766be06eaab481690798fe687d0b334
this is the same json
ok then don't worry about it T-T
i mean i would like to help, but i literally cannot without the full json, or an updated log, as the log and jsons you sent cannot both be whats loaded for your mod at the same time
this is really helpful, thank you T-T /srs
im not sure if thats sarcasm or not
(thank you for the tone tag edit, hard to tell sometimes)
IDK why, but it didn't all treansfer over, so this is derectly copypasted from my software: https://smapi.io/json/none/5855fa67da674705aceb2f4725bf0007
and this is my very latest (as in i booted up the game and moved around in my house) log: https://smapi.io/log/848c2a0f3b5f414893728d2654469319
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 6 C# mods and 1 content packs.
this is a lot better, thank you. there is a decent amount to unpack here however
this is first time coding anything, so i have no idea what I'm doing
to start with your "EditMap" action:
your "FromFile" line must be a path to your actual .tmx, which i assume you have an "assets" folder in your mod and inside that folder is a file named "sjpgTown.tmx." therefore, the FromFile should be "assets/sjpgTown.tmx"
the "Target" is the asset name (not file name!) of the in-game map you are editing, in this case Maps/Town. without a ToArea or FromArea, this means that your entire sjpgTown.tmx will replace everything inside the vanilla town, not just the parts you changed
as for the WorldMap thing, doing it this way similarly means you are replacing all of the data that exists by default for the "Valley" section of Data/WorldMap. you are erasing every other mod's edits in order to add your own
oh no! /srs
what you should instead do is look at content patcher's TargetField documentation to figure out how to add things only to the spots you want, instead
amazing, ok i'll try this and post the results
ill admit im not very familiar with Data/WorldMap as an asset but i dont think you want to touch the BaseTexture space at all, either. i believe what you actually want to do is do an EditImage patch instead on the original, which is LooseSprites\Map, to add your little spot right where it needs to be
you would use the TargetField stuff to add your own section inside the MapAreas part, though. currently since you're replacing everything, it also means that whatever you dont have here wont exist anymore, so you're deleting all the vanilla data about the map, too, and only keeping your own
as for the token warning, you wrote {{starsjpg.Everglades\\sjpgmap}} in the Texture field inside the BaseTexture at the top, which isnt a token or anything, thats just kind of meaningless to content patcher. i assume you meant to use InternalAssetKey there like you did below? but, you should be getting rid of that stuff anyway and only doing an EditImage onto LooseSprites\Map, so dont keep it or anything, just letting you know what the problem was there
yes T-T i thought that was something i had unique to me
EditImage, by the way, can also be found in the content patcher documentation and has similar ability to only replace a small portion of an image. you don't want to overwrite the entire image just like you dont want to overwrite the entire Town map
amazing
i believe this is what your patch would look like? it would go inside your "Changes" list like the other stuff ofc
https://smapi.io/json/none/f2edf2dc5222457f80ab1bc6e859e694
i did move around some of the data here itself too, as some of it was incorrectly placed or not valid in the first place, but i didnt like, double check your coordinates or anything
Yeah I've been there
