#making-mods-general
1 messages · Page 514 of 1
@finite ginkgo @tame burrow Sanity check this SpacECore build to make sure it doesn't break existing mods using the dungeons stuff? I'm not entirely sure how it's working to begin with but anyways (ping on reply, if you don’t mind)
Unless y'all moved off of spacecore I guess
I haven't heard of any other mods using the dungeon stuff yet though
Mainly just want to avoid releasing it and y’all suddenly get bug reports and having no clue why it broke suddenly
(there's no rush on releasing it on my end, i'm months and months away from this being done)
(I’ve had a release for it and GMCM for a couple months I think?)
I'm trying to make it so when you read "Note4" it sets a tile property at 31, 95 in the forest and you right click it to get an item (done with PEEM and SNFW) yet when I read the secret note nothing happens. PEEM is working fine it's the "when" that is the issue since you can get it from the tile without it
https://smapi.io/json/content-patcher/1c9ce2357f114f87ba04fa82ce1a2211
i've tried game restarts, sleeping, leaving the area and going back, patch reloads
lines 133-167 are the important ones
can you run patch parse "{{ichortower.SecretNoteFramework/HasModNote}}" in your SMAPI console and paste the output here?
sure just give me one sec to load the game again
Metadata
----------------
raw value: {{ichortower.SecretNoteFramework/HasModNote}}
ready: True
mutable: True
has tokens: True
tokens used: ichortower.SecretNoteFramework/HasModNote
Diagnostic state
----------------
valid: True
in scope: True
ready: True
Result
----------------
The token string is valid and ready. Parsed value: "NotAGardener.MoreSecretNotes_Note14, NotAGardener.MoreSecretNotes_Note10, NotAGardener.MoreSecretNotes_Note9, NotAGardener.MoreSecretNotes_Note8, NotAGardener.MoreSecretNotes_Note15, NotAGardener.MoreSecretNotes_Note7, NotAGardener.MoreSecretNotes_Note5, NotAGardener.MoreSecretNotes_Note4, NotAGardener.MoreSecretNotes_Note12, NotAGardener.MoreSecretNotes_Note03, NotAGardener.MoreSecretNotes_Note02, NotAGardener.MoreSecretNotes_Note01"```
It's a very unfortunate pair of acronyms that I don't know what they are, considering what each is close to
PEEM is just another version of MEEP and SNFW is Secret Note FrameWork
Another version? Was there a fork or something?
ok that's working, so it's not that.
i'm not very familiar with meep/peem, but could it be because you've sort of duplicated the data in the map tile edit and the peem edit?
DecidedlyHuman was very kind to make a new version for something i needed with a new feature
i.e. you have a maptile to do the peem interaction to give an item, but then you also patch peem's itempickups and tell it what tile to use
so maybe you only need one of those?
Oh, so like a beta build?
Let me check
I guess so, yeah
Did DH come up with that naming convention for the beta
I guess it was just the acronym, I'm not sure
Papping Extensions and Extra Mroperties
@blissful panther Is PEEM the beta for MEEP? And if so did you come up with that name for it?
'Mroperties' has big 'tractions' energy
I removed the one that edits the forest map directly and it doesn't work, I can't remove the PEEM one as that gives it the data on what to do on the tile/pickup.
Wait...
I might have an idea of what it is.
Don't worry DH, I'm only asking so I can decide who to pass judgement on
Since the list has commas it has to be referenced as so, just an idea.
Nope.
ugh. how do i say in trigger action "one and only one of these doors spawns treasure; the other two spawn monsters"? i was thinking i could use pinned keys but i'm completely lost with how to format that. if context helps, here's the trigger action in progress:
"Id": "{{ModId}}_DungeonDoors",
"Trigger": "Manual",
"Actions": [
"Spiderbuttons.BETAS_WarpFarmer [Spiderbuttons.BETAS_CharacterLocation Farmer] [Spiderbuttons.BETAS_CharacterCoordinate Farmer X] [Spiderbuttons.BETAS_NumberOffset [Spiderbuttons.BETAS_CharacterCoordinate Farmer Y] -3]",
"mushymato.MMAP_UpdateMapOverride + {{ModId}}_Door1Override", // remove override on exit
"Spiderbuttons.BETAS_TriggerAction {{ModId}}_DungeonDoorSpawnChance" // separate traction with condition 0.33? should be pinned key or smth instead?
]
},```
rn each door runs the same traction, but i could give each one its own traction. i could also potentially not do it in this traction and instead do it in tile actions on the map, but same deal, how would i say "1/3 is treasure and 2/3 are monsters"?
i guess i could have a spawn group with .33 treasure and .66 monster chance? it's not perfect though
i'm not smart enough for crimes :/
Maps\Mines\mine.png
torches are a spring object, their flame is in cursors, and lanterns should be on cave tilesheets iirc
ohhh torches
ok thanks
i thought they meant these
btw the code was taken from a mod i made in 1.5 and tweaked to fit this one which is a remake of that mod so it could be to do with that 🤷
well, i'm not sure what other help i can be here. afaict SNF is working correctly, so my guess is something is misconfigured on the PEEM patches
it could also just be something difficult to notice, like a minor typo
well when i remove the "when" bit it works fine and PEEM's purpose is to give me an action so i can pick up items from a tile
ill copy and paste every ID needed so I can tell if there are any typos
hold on, is it supposed to be "contains:" or "contains="?
=
peem. lol
I asked for either torches or lamps, and these ones in the picture were actually the ones I needed.
Oh, In that case it is Maps/Mines/mine.png
Ya I already found them. Thanks again.
@dusk mulch i figured out the problem. SNF is returning the token data incorrectly (it looks correct, but it's not). i'll put out a patch fix when i can
in the meantime, you can use ActionsOnFirstRead to set a mail flag or something, and check that instead of the note status, to get it working right away
hey folks, is there a convenient way to search for textures already included in the game's content folder? Sometimes I find it difficult to pin down certain things (such as cooking recipe icons being in springobjects! took me ages to find that). Perhaps some sort of website that helps you search based on the texture you're looking for?
.q 6218
there is no such way 🙂↕️
that's a joke but the real answer is not really. ask the brain trust on here is the fastest way
after a while you'll get a feel for it. helps if you're looking at all the spritesheets all the time
fair enough, I'll probably start keeping a lookup for myself so I can find them easily
oh alright, ty!
Are mail flags hardcoded?
no, you can add your own mail flag whenever you want
@urban patrol well idk if u figured the SC version but here ya go u can now do relative map overrides https://github.com/Mushymato/MiscMapActionsProperties/releases/tag/1.13.0-rc.2
i did not, hell yeah!
so u are still only allowed to apply {{ModId}}_Chimkins_Relative one time to the map
and if u do remove it's still that id regardless of where u applied it at
but i could do {{ModId}}_Chimkins_Relative1 {{ModId}}_Chimkins_Relative2 {{ModId}}_Chimkins_Relative3 on one map?
sure
its just that i dont want ambiguity when it comes to removing
i may change this later tho, gonna sit on the thought for a while
helps if u can tinker and tell me what u want to do with it
what is it relative to? i'm calling it in a trigger action which is triggered manually by a tile action
it's relative to the player's TilePoint when it's a trigger action
(and relative to the tile of the tile prop when it's a map action)
hmm so i should make it a touch action then probably
yea its more stable that way 
warp player with BETAS to touch action tile -> touch action reveals map
okay hang on let me rewrite stuff
i did also make wrphere take a relative arg
didnt test that so hoping it just works lol
mushymato.MMAP_WrpHere 12 32 -1 false true
the last bool is the one that says "this be relative"
while i'm at it i can test that too
i didn't test the BETAS version of it yet either
I've managed to make the mail but it's just that... mail. How do I hide it so I can use it as a mail flag?
don't give it an entry in Data/mail
So I use the addmail trigger action without giving it an entry?
when you use AddMail or an equivalent action, it's setting the mail flag. it just so happens that if there's also a Data/mail entry for that same id, it'll be added to your mailbox
alright, ty!
Well shoot, I think I need to patch a map...
hmmm well big problem my tiledata don't seem to be working
are they not getting plonked down to the map 
did i format these correctly?
"Id": "{{ModId}}_DungeonDoors",
"Trigger": "Manual",
"Actions": [
//"Spiderbuttons.BETAS_WarpFarmer [Spiderbuttons.BETAS_CharacterLocation Farmer] [Spiderbuttons.BETAS_CharacterCoordinate Farmer X] [Spiderbuttons.BETAS_NumberOffset [Spiderbuttons.BETAS_CharacterCoordinate Farmer Y] -3]",
"mushymato.MMAP_WrpHere 0 -3 -1 true true",
"mushymato.MMAP_UpdateMapOverride + {{ModId}}_Door1Override", // remove override on exit
//"Spiderbuttons.BETAS_TriggerAction {{ModId}}_DungeonDoorSpawnChance"
]
},```
oh mismatch hang on
that would be why
let me turn that on, i was pressing f1 to no avail
https://smapi.io/json/content-patcher/c57ca39e10084096ac61774213e3d6b6 okay yeah unless it's another typo...
let me make the trigger action play a sound or something to check if it's even triggering
however i don't even see the hand to interact
"Query: '{{LocationName}}' LIKE 'DLX.PIF_MINE_cryomancer.fishfactory_FishFactory*'": true
if i wanted to add another location to this, how would that look?
a specific location at that, i'm making a building version of a PIF room
i guess they would just be cryomancer.fishfactory_fishfactoryT0, just not sure how the syntax goes there
you can use OR
({{LocationName}}' LIKE 'DLX.PIF_MINE_cryomancer.fishfactory_FishFactory*) OR ({{LocationName}} LIKE cryomancer.fishfactory_fishfactoryT0*)
added parentheses just in case
ok yeah @lucid iron walking over this tile does nothing, but i'm having other (probably) unrelated issues with the other tiledata so ?? https://cdn.discordapp.com/attachments/804462800235528282/1460498243975643339/image.png?ex=6967227c&is=6965d0fc&hm=f8f8fe187b70be5c2ac39ad46efc043a65d9330188b3fa6b94d92f1a91117893&
i am also kind of assuming the game can handle me using the same maps for a PIF and a building, guess i'll find out soon lol
should i be concerned that your string is not getting the green formatting
i may have missed a comma or somethin
if it's >50 characters it turns white
yeah it's just a N++ thing
well somethin there is borked i guess
worse it's not loading the maps so i'll work on that first
oh yeah missing single quotes around the strings
('{{LocationName}}' LIKE 'DLX.PIF_MINE_cryomancer.fishfactory_FishFactory*') OR ('{{LocationName}}' LIKE 'cryomancer.fishfactory_fishfactoryT*')
you need to use Action as the key i think?
or was it TouchAction im eepy
oh i'm forgetting basics ofc it's that
we can both be eepy
oh boy
how the f did i do that lol
that happens when i try to open the door into the building
PIF version still works at least
okay so good news the trigger action on the door works, except i get this error https://smapi.io/log/4d8d49b17f2948618a638ba07c2770ad the touch action still appears to do nothing. the traction is this:
"Id": "{{ModId}}_DungeonDoors1",
"Trigger": "Manual",
"MarkActionApplied": false,
"Actions": [
//"Spiderbuttons.BETAS_WarpFarmer [Spiderbuttons.BETAS_CharacterLocation Farmer] [Spiderbuttons.BETAS_CharacterCoordinate Farmer X] [Spiderbuttons.BETAS_NumberOffset [Spiderbuttons.BETAS_CharacterCoordinate Farmer Y] -3]",
"mushymato.MMAP_WrpHere 0 -3 -1 true true",
"Spiderbuttons.BETAS_PlaySound crystal",
//"mushymato.MMAP_UpdateMapOverride + {{ModId}}_Door1Override", // remove override on exit
//"Spiderbuttons.BETAS_TriggerAction {{ModId}}_DungeonDoorSpawnChance"
]
},```
Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on Windows 11 (10.0.22631.0), with 22 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
oh maybe i have to actually set some locations now that it's not just PIF
that could explain things
or wait is that even still a thing?
i'm on bed now so cant help more but you shouldnt need to
(e.g. the vanilla sheds)
does it do nothing even if u walk over it after the warp
oh actually u missed an arg
mushymato.MMAP_UpdateMapOverride Here + {{ModId}}_Door1Override
ahhh ok let me fix
oh u mean the WrpHere doesn't work?
correct
[SpaceCore] Trigger action handwrittenhello.dbda_DungeonDoors1 failed: required index 4 (string toPoint > y) has value 'true', which can't be parsed as an integer
oh yea why did i write it like this lol
i made the trigger action require 2 more args for origin point but that defeats the purpose 
silly chu
that's what i'm here for
truly this is fuck-around-and-find-out driven development
isn't all dev
the worst part is i can't even test quickly for you because sc dungeon requires game restart + new save every time
if it still no work then it'll have to wait for tmr cus i actually eep right after this 1 thing
Have More Kids now has a basic sprite only template for anyone hoping to do simple convert from existing baby/toddler replacers!
https://www.nexusmods.com/stardewvalley/mods/36459?tab=files
Ah shoulda mentioned it's misc files alas
oh. inverted baby.
the ybab
pffft i was going too fast and it mayyy have worked? i can't seem to recreate it with the other two but i'll test more. in regards to the warp, it dumps me at the dungeon spawn-in point
i clipped thru walls and may have accidentally stepped on it
is that a haunted apartment?
Hm sounds like some nonsense with points that I'm not handling correctly
p much, it's called the doll house
Just use the betas one tbh
may also be a spacecore override thing
Oh actually
since it makes me define where to spawn
Maybe try false?
oh hm ok
False on arg 3, the mode that skips fade to black
WAIT i'm stupid i had commented out yours, uncommented out BETAS
so it's betas that doesn't work
let me reverse that
Oh i mean i think the mode that does the fade would work the same way
Only the no fade to black mode might make difference
no i mean literally i wasn't testing yours 🙃
Yeah and i was saying me and button probably both just call Game1.warpFarmer
oh i see
For the fade to black case
I made no fade to black bc it doesn't proc smapi warp events
Lets me go upstairs in kisaa farmhouse seemlessly
one day I should go back to my Debugger mod, but I simply struggle with it as I don't actually make content packs myself
What's ur 2027 projects list sinz
well I've stopped playing osrs until further notice, so its just a case of motivation to do so instead of playing the backlog of singleplayer games
(to be fair i don't think the debugger as awesome as it is helps with nic's elaborate rube goldberg nonsense)
Debugger could automatically generate those red comments
YOOOO
it did take me moving to trigger the touch action but i'm more than ok with that
You can probably use BETAS delay action for that
Like just queue up the map thing for 100ms after
100 ms after touching it?
Debugger is allowed to have semantic knowledge of assets and apply more semantic rules on them, and throwing a parser at it is possible.
though 1.6.16/1.7 only adds EventValidator metadata, not GSQ/Action
Does mean ppl might go zoom and mess up the room tho hrm
Naw i mean inside the trigger action block itself
but it has to be on touch action for the relative points
Well it's known that
- No fade to black warp is essentially instant
- Farmer gonna be on the right tile after warp
- Trigger action version of map override is relative to farmer
Hm actually since the position of farmer already changed...
It might even just work™ with no delay?
that looks cool
I dunno u can fiddle with it
ye you go sleep
i think this will work for now and people can just Deal TM. nobody touches a door and then just sits there in blackness forever, they'll move eventually
Do u actually have to move off the tile then back
no not back, just move at all
That's probably fine then
i think. the other 2 aren't working so i just have one data point lmao
ghost baby
this would be useful for times when i make a stupid mistake but there's not obvious log output :P
Debugger shows its info directly in vscode
👀 i'd consider switching for that
man i can't seemt o track down this error
oh sick it parses tokens?
it technically doesn't parse anything, its exposing the runtime CP diagnostics back to the editor
still really handy to be able to quickly see their value
hmm this problem persists if PIF is disabled even
oh my god if i don't have to spend 4 irl hours following these assholes around...
I don't think I simulate void warping correctly, but that schedule visualizer code is ancient, it was a miracle how little changes it needed for 1.6 compat
these new ones i'm making all do it, yeah
none of my previous mods have ever done this
what is the Warp map property in PIF/fishfactoryT0, PIF/fishfactoryT1 and PIF/fishfactoryT2
where would i check that
in their tmx files
a building interior needs a warp to leave the building to know where to put them into the building
oh yknow that might be it
good call
i probably need to just clone the maps and change those to the usual farm data
cuz they are currently going to the PIF doors
taking a brief look I believe its blowing up on this line
Game1.warpFarmer(interior.NameOrUniqueName, interior.warps[0].X, interior.warps[0].Y - 1, Game1.player.FacingDirection, isStructure);
where interior.warps is empty, so its trying to access a warp that doesn't exist and raises an ArgumentOutOfRangeException as a result
makes sense
ok yeah you were correct, thank you
...now if i could remember how to change the spot you spawn in to aaa
that also seems like something i've not had to actually set before, hmm
ok there's that. now i just need to actually make it so i can build in these things, lol
hm was there really no other way than PIF to do building in indoor maps
...and now one of my exits is instant warping to bed??
maybe i'm too tired for this
Sorry for the late reply!! I'll take a peekypeek in a couple days. Haven't had a free second to mod in a couple weeks 
PEEM is just MEEP but... flipped. 
And it's not a beta version, it's just the feature skeleton of MEEP stripped out and one single feature slapped on top because I didn't have time to integrate it into MEEP properly.
In hindsight, the name was pretty likely to cause confusion...
I love confusion! /hj
The Horse: 1 wide right and left, 2 wide up and down. Is there a gameplay reason for this? Like, preventing trapping?
No, it's just janky horse iirc
Arguably balance cus horse faster?
Oh apryll can u merge in some fixes from free love 
There's the mermaid pendant ofc but also usage of cangetpregnant in the pick personal farm event that i asked erinthe for some months back https://github.com/aedenthorn/StardewValleyMods/blob/4c5a0066c923ebf0dac06a16e9bde68177ae3978/FreeLove/Pregnancy.cs#L18
I don't consider it a late reply until it's been a week or something. 😛
No rush, just let me know so I don't make things explodey for y'all
My poor cow!
vanishes when I'm needed the most
Sure! Let me see what's going on!
What was the peeem feature i completely forgor
It was a sort of... tile interaction that gives you an item with a customisable cooldown.
Only reason it didn't get put into MEEP is because I didn't have time to come up with a nice... clean more feature-global cooldown type system. It felt wrong having a feature that relied on something like that without also making it something a future system could use.
The postfix there used to be a prefix and I patch it for compat reasons in have more kids, easier if i can use same patches for both
The mermaid pendant thing you have a PR for i think? It's somewhere inside the NPC try receive object patch
Hm isn't that just doable with a stat 
Utility_pickPersonalFarmEvent_Postfix This one, right?
Yep it's what i linked earlier
...wait, custom stats on the player are a thing? I ended up just going with modData on the player.
Either which way, I wanted something a bit more generalised before I added it to MEEP proper!
Yeah u can just incrementstat whatever you want
And when u incrementstat -1 down to 0 it automatically goes away
may I point out conversation topics are the general cooldown system teh game uses
I may point it out
it will, as usual, be ignored

I don't like them they don't appeal to the programmer brain
emoji are annoying on PC
Same way i try not to acknowledge blank events used to be the mail sender 
eh, the entire game is like that
from "the dialogue box is blinking bat eyes" to "single pixel in the moon used for the drinking animation"
mailflags vs NetWorldState...
god i'm so glad this era is over
ipretendnottosee.png
i still have a thing using modData that could (should) be a stat, but in my defense it dates from before stats were a thing
is the slime sprites 16x16 i cant tell
is that to me
if they were (i don't think so), they weren't as easily accessible due to no tractions
or perhaps it wasn't a thing you could extend? like maybe there were just the n hardcoded stats
anyway the point is converting my thing to a stat is on the ol' todo list
Stats were weird
There was a giant class with properties but at the very end there was a string, uint dictionary you could use
No they are 16x24. You can check this sort of thing by opening the files in your art program and drawing a grid from the top left that encompasses the whole of one frame without containing any other frames, like this
Game was always counting up monster kills with stats pretty sure
Tbh their sync is also pretty weird
tyy! im using procreate so it doesnt show automaticly
So I dont blame you for not using them
I don't think any programs show grids automatically. You have to do it yourself.
Working on it, I see the pull request is like two years old… i am sorry indeed!!!!!!!!! Also, my kid stole my computer, so this is going to take a while. But to summarize: i need to change the prefix into a post fix, is the only on the first? And for the second, implement the pull request for item 460? (It’s a patch in my life right now, sorry for the fog brain, but i just want to ensure I am doing what is needed!) 🙂
I think the code body changed too but you should be able to copy that whole method yeah
The PR u can just press merge on i think? If no particular conflicts
when you make it through so much of your crimes mod without harmony but it turns out that you probably need a transpiler on a terrible function 
i don't mind patches or transpilers in general but it's nice to avoid, especially for a thing that's chiefly about adding event commands, which is generally not a crime zone
everything is a crime when you do it! /lh
i have an alternative, which is copy-paste reimplement the terrible function. i'm not sure which one i like less /lh
which one would get you more time behind bars?
unclear. for now i'm doing reimplement, since i'm irrationally attached to not having smapi warn people that this mod is dangerous
honestly, it's probably a benefit that reimplementing this one dodges anybody else's harmony patches on it, since i sort of need it to work how it does in vanilla
yeah it says "these mods change the game code and are more likely to be unstable and cause problems" and lists all the mods that have harmony enabled
ohh so that's what that warning means
i mean i have a bunch of those and i care not usually
the warning is true, but i assume every mod user doesn't even see it due to alarm fatigue at this point, since nearly everyone uses such a mod (e.g. spacecore), so i don't think it's useful
spacecore has never hurt me
i do not use it, but i picked what i assume is the most widely-used mod with harmony enabled
And then you get the users who see the warning and take nothing from it but "this mod is dangerous and will break your game!" so then they blame every single mod error on SpaceCore 
also that ^
or the people who say spacecore has been useless for the last 19 months
The other day i searched pathos' repo and found only 4 harmony patches 
Across all of them
i dont understand enough about harmony to join the conversation in a meaningful way but i gotta love how sometimes harmony mods cause the game to fail until i remove one of them and add it back, sometimes with another. i do not understand what is going on. i am afraid to ask
oh, nobody understands that one
!harmonybug
sometimes if you do too much harmony the library goes "aw shit" and you get an AVE and it's not consistent
Where
Yeah sometimes i fix that just by recompiling the mod in release mode and im ??? about it
usually just rebooting fixes it. or swapping mods in and out
the first time i encountered that error i panicked and thought i had broken(????) my game fr 
i have never hit it myself but i think i am usually way under the threshold (chronic few-mods user)
is that command supposed to work
I just restart the game with no changes and that usually fixes it for me
i encountered it twice, restarting never helped so i had to swap out mods. harmony go brrr
Yeah i forgor what the command is called
I am lucky to have never needed to remove a mod even though I've had AVEs dozens of times
Are HMK compatible with custom farmhouse maps like Aimon’s - Unlike LittleNPCs?
Why is littleNPC not compatible?
Some users said if they use a farmhouse map like Aimon’s farmhouses, the child NPCs won’t be able to make their way out or something
Hm well i guess hmk would be compatible
The NPC version never enters your farm
If you see kid in farm or house then it's the real Child
I have seen the Child get stuck on trying to get out of house but it's a purely visual thing, NPC will be outside even if that doesn't work
What do you mean in that case?
Is there a website that lists out the sprite's names or something? I'm trying to get Vincent to sleep, but I think I'm missing something.
hmk actually manages 2 entities that are your kid
- the Child that runs around really fast in your house and farm
- the kid NPC, who is a normal NPC in all regards except for where their character data comes from
Going outside actually means Child becomes hidden, kid NPC becomes visible
Or should I change NPCs to another one if that's what I'm going for?
If a Child fails to make it to the door in 10mins then HMK gives up on that and directly skips to toggling the visibility state
So there's no case where they'd be stuck at the door
where would i find mob drops,,
I imagine all this complexity explodes with quicksave/save midday mods tho
depends™; most drops are in Data/Monsters, but stuff like monster-agnostic drops and slime color drops are hardcoded, and any monsters spawned by FTM have drops defined in the relevant FTM pack
what's the context
wanted to dumbify the slime dop texture
the what
slime drops*
I was assuming drops = actual loot drop
yea
Maps/springobjects then if you're talking graphics
how would one go about manipulating the rgb values of drawn pixels?
Mathy mathy
im guessing its 12x12?
all object sprites are 16x16
set your editor's grid to that size and edit the coordinates of the object you want
he doesn't have one
Jodi checks on him at 1am and he's not sleeping 😭
i started getting baffling CIL invalid program and Bad IL Range exceptions from my normal C# code and i thought i fucked something up real bad but it turned out it was hot reload problems
sometimes a cold reload is the ticket 😌
if i want to many edit images for code, how would one do that? im getting red lines when trying
You forgot some comas
even then though
And then, I think you can just fuse both Changes array?
I mean, it's an array, so you can put more than one dict inside
wdym,,
Instead of
Changes: [
{
props
}
],
Changes: [
{
props
}
]
Do
Changes: [
{
props
},
{
props
}
]
Do not do the format line twice, it only needs to be at the top of the json 

if that's where it is, then yes
!unpack you wanna unpack the game and take a look to find the answer for this
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
i have it up- i didnt know if it should e jsut chacters or monsters too
How much overhead does state monitoring actually does when using UpdateTicked? Im checking if this boolean field is true before executing the logic
Some shenanigans are happening with the new CP Mask code. It is most certainly my fault, as the original woodpile texture should be fully hidden, according to the update, so I probably fumbled with the code somewhere. Ah well, back to coding...
Can see code?
very little overall, but every bit of work you do every frame makes it harder to hit frame windows
{ "Action": "EditImage", "Target": "Maps/townInterior", "FromFile": "assets/Accents/Accents_Mask.png", "FromArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 }, "ToArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 }, "When": {"UseMod": "True", "Farmhouse Accents Changes": "True", "LocationName": "Cellar"}, "Update": "OnLocationChange", "Patchmode": "Mask", }, { "Action": "EditImage", "Target": "Maps/townInterior", "FromFile": "assets/Accents/{{Cellar_Beams_Color}}.png", "FromArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 }, "ToArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 }, "When": {"UseMod": "True", "Farmhouse Accents Changes": "True", "LocationName": "Cellar"}, "Update": "OnLocationChange", "Patchmode": "Overlay", },
uh. looks weird sorry I forgot how to put code in here
i tend to avoid updateticked unless i really need to do something every frame
it's basically what the example says to do in the patch notes but I often fail at reading code since English is my second language
ah heck I forgot, there's two layers, the one with the woodpile and caskets is after the layer for the floor.
so there's another mask and overlay sprite -under- the woodpile sprite, basically. not sure f it's relevant
I haven't split all the layers so they aren't supposed to be all the same color I'm basically testing the code before I do all that work
Will do!!
Before I forget for the millionth time - the dungeons seem wonky for farm hands. Monsters freeze and they can't pick up items
yeah it was the easiest way to test the code
(NPC shenanigans) how do the vanilla NPCs with no beach outfit entry in their Appearance data actually change into their beach outfits?
i'm doing some time wizardry and NPCs can get warped to ginger island (following their schedule), but they don't change into their swimsuits and calling ChooseAppearance() has no effect. any idea how i should tell them to change?
I will try to have these sprites in a separate smaller sheet later
It's handled by a bool set by a change_swimsuit (or smth like that) animation
(BTW, I dont think your doing anything wrong, I'm just remembering what the code paths used to be)
so it turns out that the Mask covering sprites around the map borders (aka that 'spills over' to the black zone around a map ) need to be almost invisible- I put it to 1% opacity- or they show random textures, whereas the Mask that cover the insde of a map (like the woodpile and barrels -i remembered the right name- need to be fully visible -100% no opacity. For some reason. Anyway now it seems to be working?
You can use a stopwatch to time a specific bit of code. visual studio also has a cpu profiler,if that's the ide you're using
In general c# is very fast, though, so unless you're doing something with high time complexity, large volumes of information, or loading textures, it should be fine
remind me in 6 days to look.
sorry to clarify how accurate do you need that reminder to be? (#7029650) (6d | <t:1768845252>)
Thanks, botto
see the floor spilling over, the Mask for that is 100% fully visible. If I out it to 1% it doesn't show up.
(The reason why I asked? Full width textures have a fast path.)
Ooooh coding shenanigans I will never understand but will always fully appreciate the work put into them to, well, work. It's fine and it's not urgent at all, it still works fine with a workaround so it's no problem even if it can't be adjusted. 😄
i love your pfp oh em gee
eated
Forr the full width textures, I need to use it since the townInterior spritesheet has the textures all over the place, for the beams and floor for the farmhouse and cellar, so the new mask thing is perfect to save space and loading time since I don't have to write 20 separate codes anymore, so I don't mind if I have to adjust the opacity in weird ways for each layer so long as it still works. 😄
with content patcher, is there a way to add a face to big slimes without c#?
No, what you want should work!
is that to me,,
If there's a spritesheet for big slimes you can do an overlay and add the smile on them with Content Patcher
i wanted to use the same expressions like the smaller slimes
It should be possible but I don't know where the big slime images are located in the game files so I can't check myself, but again, if they exist, they should be able to be edited. People edit the game monsters and slimes all the time
wdym? like add the faces to the sprite itself [copy ofc]
hey do have a sprite ! i made a custom texture but it looks so wonky without face
they*

You need to find out where the images for the big slimes are located in the game file, and edit them in your art program of choice to add the face to it.
!ContentPatcher
i would draw it ON the slimes correct?
i know how to use content patcher, im just confused on how to add the face 
Copy the slimes, draw the face on them on a separate layer so you are sure they are positioned right, then delete the slime layer and keep the face one, then use CP to overlay the in-game slime sprite.
I cannot tell you how it would look like but that's how I would do it
im asking abt if i can do different expressions like the small slimes do
ah my English comprehension fails me once again
idk why its not showing that well but small slimes have different expressions. im asking if i can add that
My deepest apologizes. I have no idea if you can add different expressions that changes dynamically like the smaller slimes, at most you can add a "random" code so it is a different one each time you encounter them but that's all I can say about it, I'll leave the rest to actual coders. Sorry for wasting your time.
nono im sorry for wasting your time!! D:
it's not a waste, if I can help with something -and- I have the time to do it, I speak up, today I couldn't but it happens, don't worry about it. I hope you'll work it out eventually! 😄
cause liek you can see how it looks off
If the big slimes have no expression, then i doubt you can give them one in the same manner as the small slimes

Possibly with spacecore texture overrides
https://github.com/camiska/PregnancyOdds/releases/tag/expanded1.0.0
sorry it took me so long, here is the compiled mod!
Morning all. I recently updated my mod to use ItemQueryResolver.TryResolve(fruit, queryContext, logError: (query, msg) => monitor?.Log($"Failed to parse Fruit Tree item query '{query}': {msg}", LogLevel.Warn));, however I'm receiving some reports that players are now seeing this error from the game Failed parsing condition 'LOCATION_IS_OUTDOORS Target': no location found matching 'Target'. I assume it is because I'm trying to do this resolve at start instead of while in game. Is there anyway to suppress this error or change my TryResolve call to ignore whatever conditional parsing is happening?
i browsed your code and it seems like you're trying to cache the result of what a fruit tree produces via its data and using that cache instead of just getting the actual fruit being saved on the tree
is there any particular reason to go that route, or is it a legacy thing from 1.5
because I recommend tearing all that out and just call FruitTree.fruit
same with wild trees and etc.
to answer your question, the error happens because mod authors can add conditions to fruit tree produce, one of which is whether the tree is outdoors or indoors, and if you're preemptively calculating that the moment the asset is ready (which will happen before a save is loaded) you won't get that data
The caching is done because I allow players to have config toggles for everything that could be foraged
And I'm trying my best to parse everything at launch time to allow for config with GMCM at title screen
like you have config values for every possible fruit that could be produced?
yes
you'll never be able to guarantee a complete knowledge of what is forageable at launch
how do you mean?
the data can change at any time during gameplay
including adding new data that previously did not exist
Sure, that's fine. Any content files that are relevant I have watchers on. I'm tryign to get as much as I can at launch.
though, hmm, if you're just calling TryResolve it shouldnt care about Condition, unless the mod author set PerItemCondition
¯_(ツ)_/¯
do you know which mod caused the error? setting PerItemCondition to LOCATION_IS_OUTDOORS is probably an inadvisable pattern
but worse comes to worst you can extract just the ItemId and RandomItemId fields and TryResolve those, if you only care about what possible items a fruit tree can make for the purpose of forming a config
The one I got a report on is Visit Mount Vapius
oh wait no it's not (just) from PerItemCondition
forgor about stack modifiers
but yeah what i said
Yeah I think for the trees that probably the best bet. I'll work on that change.
Thanks for the insights
you can look at the source for TryResolve (item query version) and see how it calls the TryResolve (string version)
hm, should folder names in a mod (other than the main on that you plop into the Mods folder ofc) avoid using spaces, or just filenames?
just file names
thanks!
I think it's fine in file names too? but I would avoid it for asset names or ids
It's probably fine for both asset names and file names but I would personally avoid it
well asset names and ids I mention specifically because some things are still space-separated in stardew and having spaces makes it impossible to reference something in those contexts
yeah definitely do not do it in asset names
this has bitten me more than once with audio cues
(a few of the vanilla ones have spaces in the name)
I consider assets the same as files, but better to avoid
am I doing the dependencies correctly?
missing comma between the two blocks (note the red squiggles)
yall i need a pair of eyes ive been staring at my includes for too long i dont find the missing filepath ending the validator screams about https://smapi.io/json/content-patcher/af36e984441848a38106ffc53031dd8a#code.38
maybe remove the comma at the end?
it's gotta be that. I ran a regex and all the files have a json extension
(my search was even easier: find and replace ".json," -> ".json,\n", look for an odd line out
)
I looked through it manually...
if I want to test a mod without having the asset yet, how do I do that?
hell yeah its fixed and everyone spawns in now, but i think this is time for a break
Bright magenta png?
Smiley face?
Scribbles?
good idea
, but im going to see if randomly picking a sprite index out of the default tilesheet does anything. I don't understand sprite index or tilesheet size
😭 it's just a lil mouse
is there a wiki section on tileactions?
sprite index = which 16x16 box your cursor is on/ are looking at on a spritesheet at any given moment
tilesheet size = the size of the tilesheet, in pixels (most art programs will tell you how large an image is)
for example, in a 64x64 sized canvas (which is the tilesheet size) if i had my cursor on the very top left box, that is sprite index 0, because all of them start from 0 at the top left, and go left -> right and then down to the next row's left -> right
thanks so much, that makes a lot of sense 
is there an obvious way to make a building that can have buildings made inside it i am forgetting?
i dont know if this is actually a solution or not, but would it be possible to make some kind of big craftable that acts as a teleport 🤔
feels like i have definately seen that done before but all i can think of is PIF
that could work in theory, yeah
i just keep seeing all these map property options and i'm like....why are these not doing this fairly obvious thing
like there's CanBuildHere
but that has to be outdoors
and setting things to count as outdoors doesn't work?
sigh
i guess not
oh
maybe it is possible
i know there's some additional farms magic
that lets you choose where to place buildings at robin's
if you were able to make the interior of a building into an additional farm maybe it might work?
there is also "IndoorMapType": "StardewValley.Shed",
so i dunno if that like overrides stuff or what
allegedly that field is optional tho hmm
maybe i'll go eat first before attempting brain usage
a last ditch option might just be to make a building without a door that you can slap a PIF door onto i suppose? lol
just noticed that the letter where robin offers to upgrade your house doesn't have a title
huh
unless its an SDE thing
yknow a mod that would be nice is something to color code or categorize mail
the CP modders lie in wait, hoping their scope creep trap may ensnare a stray C# modder..
lol
mail data hasn't even been dehardcoded yet nor is it on the 1.6.16/1.7 migration guides :(
i mean i can think of a theoretical way i (not a csharper) would do it (maybe something like context tags) but i have absolutely no idea of how to implement it
i'm surprised mail is still that locked down considering how much it's used
CanBuildHere T
(valid in any outdoor location)
Outdoors T²
(valid in any location)
i think it's sort of an iceberg situation where we don't even know the beast that lurks beneath (mail flags, for example)
you'd think this would do what i want
oh yeah i don't think you can build in instanced locations
There is a c# mod that allows you
then every building will open into the same map
i also do recall some mod that changes that but i'll be darned if i rember
do you know the name?
Nope
yeah this seems like a problem that's likely to have been solved by now right?
like PIF does all this stuff kinda
just not in the context of a buildable building
how 2 build buildings in my buildable building
i think it's this? not a framework though https://www.nexusmods.com/stardewvalley/mods/21233
one of the screenshot shows a slime hutch inside a coop
it's not hardcoded, it's just not a data model
it's fine, jukebox usually doesn't work 🥪
[game] Location fishfactoryT0buildingd8aff6bc-4155-496c-a6e1-36f8b1a26e8a has the CanBuildHere map property set, but its AlwaysActive option is disabled, so building is disabled here.
oh, that's interesting
"MapPath": "Maps/PIF/fishfactoryT1",
"Type": "StardewValley.Locations.DecoratableLocation",
"AlwaysActive": true```
so the PIF version has this
but the building version doesn't have location data
it's been established that you can't do what you want unless you scope creep a framework modder into adding it
or just tell ppl to use Build Anywhere idk
yeah that doesnt' work because of the above, unfortunately
like i'm testing stuff and i can build in like, the farm cave, but not my new buildings
because the farm cave is not instanced
what you can do as a workaround in the mean time is having your building's interior be non-instanced, albeit with a build limit of 1, and maybe a couple clones in the building/location data if you want your users to build multiple
build limit would be ok i think
you also don't really want to make locations always active willy nilly
it does come with a cost, it's not a free solution
unless you care 0% about multiplayer I guess
like performance?
yes, and in this case especially network performance
oh hey PIF doors can indeed be placed on their own eh
maybe i will just do the dumb workaround idea i had earlier then
good to know btw Button, thanks
genius or insanity, who could say
totally works too lol
feels like this maybe changes the scope tho. perhaps i should splinter the building off to it's own mod like "PIF shell buildings" or such
that could be another day's project tho
this reminds me of that idea i had of making a "pond" barn for water animals with no exit door
Milestone: the first-ever automated SMAPI build complete with downloadable zips and attestation, thanks to @blissful panther ! 
I have no clue what that means, but YAYYYY 
The main benefits are...
- Significantly improved security:
- It eliminates the risk of hidden malware infecting SMAPI releases.
- The GitHub builds include attestations and SHA-256 file hashes, which allow verifying that a file (a) was compiled from the code on GitHub and (b) has not been tampered with.
- You can download a preview of the next SMAPI release anytime, since every
developcommit results in an alpha build. - It simplifies future planned work like signing builds to reduces Windows/macOS antivirus alerts.
- It lays the groundwork for doing the same for mod builds.
wow, nice! that's really cool!
I still don't get it but YAYY
/silly
signing builds would be amazing, might finally put !macsmapi to rest
anyone used spacecore's cooking recipe stuff before?
i see that it's an override, does that mean you need to make like a dummy vanilla recipe first?
Eyy this is great! will this lead to an official location for reference assemblies? or would those still need to be generated by mod authors?
Ah I see the repo on StardewModders github. very cool
Yes
how do attestations work, anyone got a good tutorial explaining it?
An attestation is essentially a page on GitHub which includes all the info about how the release zip was created (Git commit, workflow file, build run, file hashes, etc).
You can download SMAPI, get the file hash for the zip locally, then double-check it against the attestation. If it matches, then it's guaranteed to be exactly what it says (e.g. nobody secretly compiled it from different code, added malware, tampered with the zip, etc).
For example, here's the attestation for the first dev build.
Very exciting! I am personally excited about the possibility of signing in the future
(Do I compile mods….nooo…maybe later?)
Would mods basically do the same kinda github cicd setup
I vaguely understand that u need these reference assemblies of game
Since u r not build against real assembly of game
Eventually yes. It's not quite possible yet without a few hacks (e.g. you need reference assemblies for SMAPI too), but that's one of the upcoming things I want to do.
I wonder if u can do this to detect incompatibility with android game ahead of testing it for reals
If there was an android ref assembly too
That if is ofc load bearing as hell
Not really. You could build the code against the Android version of the game assemblies, but you'd have false positives for anything SMAPI rewrites for compatibility.
True, ig ultimately the goal should not be 2 separate per platform builds anyhow
Question
I'm writing a compatibility patch (I annoyed everyone about it yesterday, lol). Now, I don't have the time to fully test and see if every single custom animal is working as it should, but I'm going to assume that since my JSON is valid and I followed their instructions the patches should work.
However, I noticed that despite me changing the housing of several animals they're still allowed to be placed in buildings they can't feed in. Is there any way I can guarantee that the "house" field on the other mod is ignored? Priority wouldn't help would it?
does your mod have a false dependency on the other mods
that ensures your edits run after theirs (provided they're not using manual priority, which is rare)
oh so attestations is for manual auditing. how would that improve security for the average user if they don't check for these things?
You mean in the manifest?
yes
Ah, no it does not. (I'm making configs for another mod, I always wondered what the dependency false thing was about!)
Well, let me test what would happen if I put a mod ID as false underneath
There's three layers of security here:
- The security that the release packager (me) applies. For example, making sure that my computer isn't infected with malware when I compile the executables. Having the builds generated by GitHub automates this, since SMAPI releases are no longer affected by the state of my computer.
- The security that savvy players and mod authors apply. This includes checking attestations and file hashes. The vast majority of players won't do this, but if there's a problem someone will likely notice; so it's much harder to slip malware into a release with nobody noticing, and it guarantees that it matches the code so they can review that too.
- The security that most players apply. This involves things like downloading from a reputable site, running an antivirus, etc. Attestations don't help with this, but having a GitHub build pipeline simplifies signing builds which will.
ohhhhh, thank you, that makes a lot of sense.
Alright, I'm testing one of the compatibility patches after I updated the manifest
Hmm, it was still allowing me to put the animal in the coop
Stupid question: would putting "RequiredBuildings": "the same buildings" lock it out of the option to put it in the coop?
I'm wondering if it's just adding the two other buildings as optional locations to put the animal on top of the coop as opposed to excluding the coop
RequiredBuilding is the building the farmer must have at least one copy of for the animal to be available
tl;dr no
what's your animal data look like
maybe one of those other mods adds extra eligible animals to the coop
I also forgor to reply timely sorry 
I have given it some thoughts and at current time i feel tje best approach is to give you direct control over the timing of the kid question event on any children via API of some sort
I'm not sure what to do about the night time dialogue stuff though
"Action": "EditData",
"Target": "Data/FarmAnimals",
"Fields": {
"Fellowclown.TAE_QuillbackSkunk": {
"House": "HamioDracny.TCLE.CP_RabbitEnclosure, HamioDracny.TCLE.CP_BigRabbitEnclosure",
},
},
},
{
"Action": "EditData",
"Target": "selph.ExtraAnimalConfig/AnimalExtensionData",
"Fields": {
"Fellowclown.TAE_QuillbackSkunk": {
"FeedItemId": "HamioDracny.TCLE.CP_VegetableFeed",
"OutsideForager": true,
},
},
},
This is just a snippet of it, the example data I'm trying to edit is from Arcanian Exchange
In that mod the skunk goes in the coop, so I've been trying to figure out how to get it to be unavailable for placement there so anyone using the patch doesn't fuck themselves over
House only accepts one value, you can't have comma-separated values, I don't actually know if that's responsible though
by "it still goes in the coop" do you mean new animals or existing ones
the skunk in the mod arcanian exchange goes in the coop in that mod. In this mod, which makes it so that different animals eat different things, I am trying to move it from the coop to the rabbit enclosure, since I'm trying to edit it to only eat their vegetables
you can also run patch export Data/FarmAnimals to see the final form of the asset
I mean if you buy new skunks with your mod does Marnie still allow them in the Coop
Yep, that'
s what's got me scratching my head
I should clarify, I'm making patches for Hamio's The Cowboy Life Expanded mod. It's not my personal work lol
in that case pls run the command and post the file it generates on smapi.io/json
alright
I'm going to change the skunk's house value to remove the second part, maybe it just couldn't read the code?
Hmm, interesting. It definitely isn't reading any of my patches
try patch summary asset "Data/FarmAnimals" and post the output
hold on, I may have figured it out
I don't know how tf I did this, but the content file wasn't updated but everything else was when I downloaded the mod. I think I'm missing a config
Therefore, the mod just ignores everything I ask it to do
Quick question, this may be the wrong channel, but I wanted to ask if a specific animal is in the vanilla game, or this might be old data from a mod that i found
this one right here
i was wondering if it was in the base game
thanks in advance <33
no, I do not believe so. for future reference the wiki has a list of every animal in the base game
(sorry it was a joke of the oia/uia cat)
(and i hope u have wonderful day)
(that was also a joke
)
Note to self: the simplest answer to all of my problems is that I simply copied or downloaded something wrong
[Content Patcher] Error loading patch 'A Vida de Vaqueiro Expandida > Include code/Compatibily/CustomAnimalsConfigs.json > Include Compatibily/DwarvenExpansion.json': file 'Compatibily\DwarvenExpansion.json' doesn't exist..
I'm so confused, why is it swapping the slashes then saying my file doesn't exist
did you mean Compatibility?
No, the guy who made the mod spelled it wrong and all the code references the misspelling lol
He's not english native so I'll allow it
so you named your folder that too?
Yes
ok just checking lol
So, Compatibily is a folder inside the code folder
I'm wondering if there's an issue since there's a separate "compatibily" json made by the author in the folder of the same name
filepaths need to start at the same level your manifest and content.json are at
is A Vida de Vaqueiro Expandida your mod?
your mod does not care about how other mod organizes their files
Yes, it's the mod I'm patching
unless these are just patches you're dropping into the mod folder as is?
but yeah what nic said
all paths are relative to the root
So yeah, he had one file for adding custom animals in that folder. I decided to split it up into a bunch of patches (as advised by nic) with the one file referencing the others in the folder.
so, just change the filepath so that it's referenced to the CP folder's manifest
did you create a mod with your own manifest and content.json in its own mod folder?
or are you inside the A Vida de Vaqueiro Expandida folder?
you mentioned a manifest earlier so I assumed this was a separate mod, in which case what I said earlier applies
you need not be beholden to the original mod's spellings or file paths 
I am testing it now, I just changed the path so it went back to the start of the CP folder
Their manifest lol. I'm just adding patches into one of their folders, it's by no means my creation
hmm is this only personal
Maybe one day I'll make something really cool! But I'm not an artist and my wife isn't a pixel art girlie yet lol
The patches? I figured I'd make them to practice CP, and to of course use
then proceed, but I'd say that porting all your changes into a separate mod is not that much of a step further, and would protect your changes (even if only personal) from further updates to the OG mod 😉
it's ultimately your choice 
Well, I imagine once I'm done with these I was just going to send them to the creator and they can credit me if they want. I don't mind honestly!
Obv a thank you or something somewhere would be appreciated
honestly, you might be doing them a favor by publishing your compat patches between mods as your own mod lol! but yes up to you for sure
You know what? You've got a point, I'll PM them
The promise: "PowerShell runs on Windows, Linux, and macOS".
In practice: 
if ($IsWindows) {
# On Windows, mkdir creates parent directories automatically and the --parents argument isn't recognized.
mkdir "$folderPath" > $null
}
else
{
mkdir "$folderPath" --parents
}
hmmm can i use a vanilla category for an ingredient item in a spacecore recipe override
just doing -5 didn't work
you can't, have to use the category instead
like as a context tag ingredient?
ok that does work
thanks
guess i'll need to manually make a little egg (any) thing tho
(get fucked if you want to use any book in your recipe, then)
cornucopia recipes just did that i think
yeah flexible cooking should make this mod i'm workin on easier to use
sounds like a 1.6.16 ask (the book context tag)
just annoying since vanilla HAS this
yeah you do have to do it again
but you can't use it in this context i don't think
i thought it had been but ive not downloaded 1.6.16 to check so i havent wanted to be the one to ask again
it is definitely not in the (3 months old) source decomp
sounds like you get to be the one to ask again in february
does book_item not work?
sure, it works. what if i dont add it to my modded books tho
ah gotcha
funnily enough that tag still gets a couple special checks in the code even though its presence is not enforced
maybe i'll just set this to standard egg and the flexible can take the wheel from there
only two checks though and theyre very very inconsequential
Flexible Recipes (if you're talking about the mod from six thousand four hundred and eighty) don't magically make your recipes work
no, it will just be jerky + egg
but if you also have that, it should become any egg
if i understand correctly which is always a question
if you're doing the work anyway why gate it behind another unrelated mod 
the context based cooking requires doing several extra steps
if i just use vanilla stuff mine will work fine but also optionally be enhanced by that mod yeah?
so you're praying that 6480 makes a compat patch for your mod?
it's totally fine I just wanna confirm
i don't think i have to even do that
i am adding context based jerky via my mod
as flex doesn't have that since it doesn't exist outside of this mod
i'm just using regular egg/cheese/vinegar etc and presuming flex will make those flex, i may yet be wrong
no, I think you're severely misunderstanding how it works
Flexible Cooking is another CP mod using the feature
if i could just use the category in spacecore i would
eggs are already flex
i could be wrong tbh
like the game itself already has egg (any) recipes
i did attempt to just add in the flex context tags but then you get in this situation where you need it's localization as well
yeah it does, which you do as -5 in a recipe
hmm yeah that's more understandable (the string thing)
maybe i should just try it, sec
though for eggs you can just use the vanilla string in StringsFromCSFiles
hmm that's an idea too
LocalizedText my beloved (SC recipes do support it)
Swap different types of cheese, cooking oils, mushrooms, and anyt
hmm red mushroom stir fried in truffle oil
ok i am indeed mistaken
thought flex would like intercept the vanilla cheese use for some reason, my bad
yes, that's what I meant by Flexible Cooking being just another CP mod
i guess it probably "does" that, for vanilla recipes
as in they did that manually
"CraftingRecipe.cs.572": "Egg (Any)",
this what i want?
yes (in LocalizedText form)
need the asset name
[LocalizedText Strings/StringsFromCSFiles:CraftingRecipe.cs.572]
thank you
that's just the override text though, how do i make that the ingredient value, hm
text does work, cool
guess i'll look at flex's docs
yeah that is easy enough
it's still just accepting standard egg though
oh i think i see
with category_egg?
there we go
so yeah the missing link here was the loc strings, thank you
uh oh no Cheese (Any) lol
that's ok i'll just make one
Alright, I've gotta go to bed soon so I'm not fixing the rest of this tonight. But I have a SMAPI log that confirmed that, while my patches were indeed read, not all of them were applicable
Log found, uploaded to: https://smapi.io/log/1db0e043892b4d2c908b38b83a9083af
However, notably this isn't every patch. Mods like SVE, East Scarp, and Camelus worked just fine for some reason
you're probably missing the false dep for a fair few of them
Oh, I have it for none yet except, ironically, one of the mods in the didn't work pile
probably should add for all of them then
the ones not working may also be because the animal in question is disabled
Disabled?
It's so weird because a bunch of the patches clearly worked
hmm, I'll have to sleep on this. It's still progress, but I'm a little saddened lol
hmm did my jerky context tag only work with flex enabled
that seems wrong somehow
oh, lol, opposite direction problem
didn't tag pork jerky with jerky_item
ah thats' a fun wrinkle, my recipe items are also tagged jerky_item and thus can be used to cook each other
not sure if that's wise
You're the best, it was absolutely that
Wait, replied to the wrong one
It was adding the extra mod configs in the manifest
perpetual stew's lesser known cousin, perpetual jerky
Okay, well I'll play around with that tomorrow or Thursday, when I'm not dead tired. Thank you guys for your help!
is there an existing convention for "this tag means this is a finished cooked item so don't use it"
the item being category_cooking maybe
"food_seafood" exists in vanilla it seems
andother similar ones, ok
so i'll just give those food_jerky
yeah there we go, rad. that's my cooking stuff done
now i just need to actually tackle my machine outputs aaaa
oh wait cheese_item is still being a hassle
right, cuz vanilla does not actually have a cheese_item tag or category
so either i make it just cheese as the regular item or i edit both cheeses to have the context tag, yeah i'll just go basic cheese then
" invalid flavored item type (must be one of Wine, Jelly, Pickle, Juice, Roe, AgedRoe, Honey, Bait, DriedFruit, DriedMushroom, SmokedFish)."
is this stuff hardcoded?
yes
if you want custom flavored objects use PreserveId/price modifiers/custom display name/custom internal name
cornucopia artisan machines has examples
ah, smart. thanks
For HMK, if I want to make a custom NPC kid that:
- Must be adopted via the adoption registry
- Isn’t adopted from a specific NPC
What can be inferred?
I am trying to think of a name for my mods. The first one is a framework that allows you to make custom channels, and the second is a mod that adds 2 new channels, with plans to update the vanilla channels too. Can someone help me? 
Custom TV channel framework and New TV channels
i think there is a custom channels mod already with a similar name
not updated for awhile tho
so maybe a new one would be nice yeah
Custom TV Channel Framework is too close to Custom Channel Framework. And New TV Channels isn't that fitting because my mod right now only adds 2 channels, but in the future, I am gonna do much more, and it's supposed to be a channel overhaul more than just more channels. Which is why I have been leaning towards something like Better TV Channels, but it seems a bit boring.
This one hasn't been updated in a while, and it's limited to what you can do with it, especially when you compared to mine.
hell yeah good luck
Oh not bad.
If you're worried about Nexus search being ass, "Cable Package - Custom TV Channel Framework" or something like that is a way to go
hmmmm how many pieces of meat should it require to make a bag of jerky
An immeasurable amount of meat... I'd say maybe like 30 pieces?
lol
is that why it's so expensive
i think i've got it set to double the edibility and quad the sell price of a single piece of the base meat
so maybe 2 or 3?
never been great at the balance part of modding
mood
yeah 2 or 3 i think
looks like all vanilla dehydrator things do 5 items into 1 dried item, huh
wonder how the prices change
grapes go 80x5 (400) to raisins 600
shroom is 200 ->325
yeah i'm just gonna go with three i think
i am yeah
"PriceModifiers": null,
"PriceModifierMode": "Stack",
so shrug
well i can always tweak that stuff later
item ID 666 is bacon eh
why the hell is the pants spritesheet so big compared to others
for special pants reasons of course
alright
is it the different colours?
cause its a little hard to handle this for the 3ds
if i had everything in white i could just tint them
no it just genuinely is that many sprites
shorts, pants, long skirt, short skirt, grass skirts, bathing suit, etc
goddamn
there's 2 sets of the same pair of pants for both body types, for all pants
alr
ill have to figure something out
i could split those into seperate files though
Whats the field to look for if player has unlocked the walnut room
You could do "WORLD_STATE_FIELD GoldenWalnuts 100" to check if the player has 100 walnuts, since you need 100 to enter the room but ill see if there is a mail flag or something
give me a sec
There are 2 mailflags you could use, "FizzIntro" is raised when the player interacts with the perfection tracker for the first time and "HasTownKey" is raised when the key to the town is bought
both of which are in the walnut room
but they don't check specifically if the player has entered the room, just if stuff in the room has been interacted with
i love the mod list, makes it so much easier to find mod ideas and it helps people out
it's very simple to check if you've entered the location, check PLAYER_VISITED_LOCATION at the bottom of Player info & progress
https://stardewvalleywiki.com/Modding:Game_state_queries#Player_info_.26_progress
as for unlocked, the game really does just check if you've collected 100 or more golden walnuts
oh yeah
i forgot about that lol
i was using ctrl+f and searching for "walnut" on the Game_State_Query wiki page
I mean for here
{
if (//here)
{
Utility.TryOpenShopMenu(Game1.shop_qiGemShop, null, false);
}
else { Game1.drawObjectDialogue(Helper.Translation.Get("condition.qiGemShop")); }
}
I cant find the right condition
you can use if (IslandWest. IsQiWalnutRoomDoorUnlocked(out int actualFoundWalnutsCount)) { ... }
Hello, sorry to bother you again, but I tried doing exactly what you suggested — using SetProperties and setting the value to null — and unfortunately it still doesn’t work 🙁
The player can still dig on that tile. I tested it carefully.
I also tested teleportation on the same tile, and it works correctly, so the code itself is being applied and executed properly.
Did you confirm using Lookup Anything that the diggable property has definitely been removed from the tiles?
Hello! Honestly, I didn’t even know that Lookup Anything could show things like this 😨
Is this some kind of debug mode or something similar?
If you turn on Tile Lookups and Data Mining Fields it will give you lots of information about the tiles. I would show you an example but my Stardew just crashed lol
Is it supposed to look like this, or am I checking the wrong thing?
You don't appear to be using Lookup Anything, or at least not in any form I'm familiar with. If you have it installed, you should be able to check the tile by pressing F1 on your keyboard.
I only have Lookup Anything installed, and I can press F1 on an item or a character to see information🤔
Then that's what will work, have you gone to the settings in GMCM and enabled tile lookup and data mining fields?
It won't do anything until you enable those
So it should show in the tileproperties (I think the name is something like that) that it doesn't have Diggable anymore
You can compare with a tile that should be diggable to check
Hopefully, I’ll be able to figure out what I’m doing wrong now. Thank you so much!
I’ll check the tiles.
I checked, but for some reason it’s still showing as true.
It's possible that the tile property is overriding the tile object property that you're setting in your json. Tile properties affect every instance of the tile, while tile object properties only affect the individual tiles the object is placed on.
It might be worth having a look through the spring_outdoorsTileSheet to see if there are any tiles that still have the appearance you want but which don't have the diggable tile property.
What map is this? Is it a custom farm map?
Yes
custom farm map
You can control it then. Open up your map in Tiled and have a look through your tileset to see if there are any tiles that either don't already have the diggable property or which you don't use in any other places and can therefore remove the diggable property from it.
Hmm, I understand. So you can add a property to a tile, but you can’t remove it through an object. That way, on back you can have a non-diggable tile, and on back2 you can use the one you need for the visual.
Is it something like that?
That's a better idea than what I was suggesting lol. Yes, put a tile without diggable on Back and then put the one you want to see on Back2. It shouldn't allow digging because the numbered layers don't usually have any function.
Thank you so much, you’ve been a huge help — I really didn’t know what to do🥹🥹🌸🥹🥹
You're very welcome! I hope that fixes things for you but if it doesn't I'm sure there are more options that someone else will be able to suggest.
Smh these used to be checked in order, @Pathoschild. Was that always undocumented behavior?
@dusk mulch the patch fix is out
Can I get a pointer on how to do SMAPI's new feature of spritesheet referencing. I tried to set up a relative path to TileSheets/Craftables but I got this message: StardewModdingAPI.Framework.Exceptions.SContentLoadException: Mouse Friends in the Forest loaded map 'assets\Maps' with invalid tilesheet path 'TileSheets/Craftables.png'. The tilesheet couldn't be found relative to either the map file or the game's content folder.
It requires having ../ at the front, so ../TileSheets/Craftables
I had to look at Button's PR to figure it out: https://github.com/Pathoschild/SMAPI/pull/988
it starts "in" Maps/, so the ../ (which means "up one directory") strips that off so you can go "into" other ones
(scare quotes are because the conflation of asset names and file paths is fraught with peril)
Okay that works. Thank you!
Can a tile property have more than one Action?
how do I set a flag?
context: I want to test if my map patches work and they should be activated with a specific hasFlag
smapi preferably cause else I'll need to install another mdo first
oh, if you're testing, run debug seenmail <your mail/flag id> in your SMAPI console to set it, then patch update to repatch whatever depends on it
ehi i'm trying to create a mod that allow me to plant and buy potato seed all year and to create seed maker at level 0 farming
enjoy!
how do i start?
!cp
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
check the wiki or content patcher and just read shit until you have an idea
!startmodding is good too I guess
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
(you'll need the first point)
To give you some direction after you read some documentation: you'll need to edit the data of the potato crop and seed shop for the potato thing, and I think the seed maker thing is in the big craftable data (not sure about that)
alr thanks
the recipe (including unlock requirements) is in Data/CraftingRecipes, not Data/BigCraftables
where does one find this sprite? yes i have the game unpacked
some cursor for 1.6 or a similar file
.q 6218
its one photo
does indoor/outdoor NPC appearance not work? I assumed the game resolved both appearances on day start and switched between them when the NPC (or player) goes indoors/outdoors
but I just tested it, my patches are correct, and the NPC did not change portrait upon exiting the house
indoor/outdoor works, i use it
so if you first meet an NPC inside and then outside, you'll see 2 different portraits, correct?
Assuming they specify portraits for each appearance yes



