#making-mods-general
1 messages ยท Page 335 of 1
The two sigils at the bottom. I currently have them on the path layer. I see your window shows object property.
Let me try both of those methods
Does someone happen to know, if you use the square_x_y schedule entry, does the NPC avoid building tiles within the specified box?
Yes - the TileData goes on the Back Object layer as it's a TouchAction
You can ise AddWarp for this i believe
Aka the warp property
Did you need it to be magic?
Biiiu
Or you can add it with EditMap directly via CP too
I think I'm just too inexperiences. I see that the properties window is for an objects layer, but I can't seem to get anything to populate within my objects layers. I'm doing something incorrectly
inexperienced*
It's all good - we all try something for the first time
If you open the vanilla Forest map for example you can find all the different TileData objects - you can just copy/paste one of them first and just edit it's properties
(I did find the Tiled menu confusing at first as well so this is how I got started with TileData
)
oh thank you! I was trying to find the SVE Wizard basement file to look at, but it's wrapped up in a tbin
you can enable a tbin plugin in tiled to open those too
no need to install anything new
!unpack
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!
If you use stardewxnbhack it'll be tmx
I have that. I assumed it was programmed to only work on Stardew Valley base stuff, so I didn't try moving it into the mod folder
Assuming gets me every time
i dont think it does i think chu thought you were talking about the vanilla basement
the other xnb unpacker out there makes em tbins
I did try looking there. It was one warp set to the path layer, and one on a different layer
For the tbins from other mods you need to enable the tbin plugin and then just open them in tiled like tmx
I'm going to try this map properties way firs,t and see how it goes. I just need to make the useable portal object to get me there
for testing?
debug warp <your custom location>
what chu said (but I wanted to check in case you wanted one for your mod in general heh)
๐ I appreciate both of you!
I've heard from a mod friend that there's currently a weapon framework being made. I'm really curious about that
did your mod friend happen to give you any details of who was making it?
Unfortunately no
I thought there already is one (1.6 update of aedenthorn's weapon framework)
OOOO
ty! that's what I was looking for
Oh Selph! there was a question I wanted to ask you about extra animal config
is it possible to make an animal that has things it can dig up seasonally?
sure, don't even need EAC even (well, you need it if you want your animal to dig up different items in one day)
animal produce has a Condition field
so you add four entries to ProduceItemIds, the first one with LOCATION_SEASON Target Spring for spring, repeat for the other seasons
thank you! really excited to know that's possible!
I wanted to make an animal that digs different kinds of roots/forage depending on the season
so there was an issue in one of my heart events, which i've now fixed, but is there a way to 'reset' it so that players who triggered the bugged one can now see the fixed version?
(now that she's somewhat back, you guys may even be able to convince her to turn it into an official update haha)
Hello. I have joined this server to recieve help with a Content Patcher pack that I am making. The pack adds a new recipe (which works fine,) but the food item itself (empanada) will not load. It will only load the error texture, and eating it softlocks my game so I don't even know if the edibility is correct. The SMAPI log error is "Failed to load texture...asset doesn't exist."
I can post links from the log parser if need be.
!json post what you have
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
!log can be helpful too
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnโt occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 6 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Here is the log. The repeating base loop error is after I eat the forbidden empanada.
(can you upload the file at smapi.io/json? thanks. on my phone so the parser link is more convenient)
Sure
yeah it's really hard to navigate
so you loaded your food texture into the asset named "Content/Data/Objects", which is definitely illadvised since Data/Objects is a vanilla asset
load it into something like "{{ModId}}/FoodTexture" (example name)
then use that value in the Texture field in object data
Alright. let's see. Thank you in advance.
you can also just load it into something like Mods/{{ModId}}/Pngname
side note, but I also noticed that:
- you use both the old CustomLocations method and the new Data/Locations way to load your locations. you should remove the former
- you seem to also be including a dispositions file of mysterious purpose, while having already defined the character's disposition in Data/Characters below
just load it somewhere that doesn't replace the vanilla file
Okay.
I have never coded before so my organization is a mess, I appreciate the advice
It works! However, the asset is way too big (i made them 48x48 because i genuinely thought for some reason that's the item size) so I will fix my content.json then fix that
I have two characters. The mystery dispositions file may be for Zero, who I have not added in yet.
I am using MissCoriel's npc creator as a base. That is why my methods are outdated
you seem to be mixing old and new methods a lot, are you following a reference from somewhere?
ah, I see
There is an additional error I am confused about.
I made a custom tilesheet for my character Alta's house.
Inside, I made a custom tile that is a purple telephone.
It shows up fine within Tiled, and none of the other items on the same tilesheet are having any issues. But this specific tile, for some reason, becomes this:
What should I be using?
Can you try looking anything with tile lookup enabled
Question. Should I still be using the "action: load maps/{{modid}} thing if I have already edited the location data to account for this new area
It seems like it is out of bounds
yes you need to load every tmx you use
I found that out the difficult way. Thank you though
To-do list (immediate):
-redo item sprites
-reformat custom tilesheet
You know how it draws stripes of pixels? That's what happens when the bit of texture that game tried to draw is below the actual loaded texture's bottom edge
You need to validate that the tile index is the correct one (and matches what tiled show you)
If it doesn't then fix that
If it does then look at whether the tilesheet getting loaded is correct
Tile index? Like the tile number on the sheet?
Okay. Once I am done verifying a schedule I will check the map in Tiled.
The tile ID on the map is "0", which is the correct position on the tilesheet.
The correct tilesheet is loading, and I can verify this because every other custom tile that I have added is completely fine.
Puzzling but try patch export <your map asset>
huh??
Not on that tile, no
when you make a temporary sprite in an event, it says it gets the texture from the tilesheet animations png. i don't want to edit it itself, because that might not be compatible with other mods. how do i use a different tilesheet for the temporary sprite?
action load maybe?
in the terminal window
i mean, i don't want to replace the texture. there's got to be another way
but it's a png
how do i specify that it is a map
or am i patching the tilesheet
then i think load texture into like a separate folder like
It's whatever target you loaded your tmx to
okay
If it's a custom map
i know, but the event command is hardcoded to use that specific png
should i just do a temporary actor?
You can use other textures pretty sure
idk how to, does anyone know?
because it just says to input the sprite index, and it will get the texture from that png
i think you gotta make some extra sprite/texture sheets
Okay, done. Do I just check the folder now>
i don't know how to get the temporarysprite to use a tilesheet other than the TileSheets/animations one
are you sure you don't want temporaryAnimatedSprite instead?
The patch export shows that all my tilesheets are normal
I believe that the best course of action is to simply move that tile within the sheet
haha i made the same mistake so i've been there
No, it is a custom location, an NPC house
And I moved the tile
And it's now a different pattern of stripes.
I would like to reiterate: every other tile is completely fine
Why is this? Why?
I think this one would be hard to troubleshoot without actually looking at your files (so json, tmx and your tilesheet) as there could be a lot of moving parts between those - if it's just those three files you could share them for us to take a look? (zip and drop here if you are comfortable?)
of course
Here's the whole mod
I didn't know if grabbing just the few files would mess anything up
The tilesheet in question is the "custom items" thing
and the tmx is AltaHouse
in assets/Maps
Perfect, thanks - I'll have a quick look at the tmx and the load actions, see if anything stands out, give me a few mins
Thank you so much
i tried to add support for farm animals & pets to my hearts overflow mod but... i dont think i can pull it off
npc friendship is controlled at a single central location and everything, and patching that function to capture overflow friendship was simple enough
but pets and farm animals...... every time the game wants to increment your friendship with one by n, it individually does animal.friendshipTowardsFarmer.Value = Math.Min(1000, animal.friendshipTowardsFarmer.Value + n)
i can't patch that ๐ญ
why not
I think your custom_objects tilesheet isn't embedding properly
it does that individually in like 25 different places ๐ญ
z_fallspice_custom_objects
may i introduce you to Harmony's Replacer Transpiler
for some reason it's coming through as town interiors actually
yup
if thats the only time Math.Min is used in a method, you can set a transpiler to just replace every call to Math.Min with a call to your own function
it also shouldn't be tile 2196 tbh
wb mods that change friendship with pets and animals though
oh it's a tsx?
Every other file embedded perfectly
unless the other mod also replaces Math.Min, nothin else would change if you made sure you patched last
(patching last in case they do match on it)
the problem is that the maintenance and compatibility issues with doing that individually at >20 call sites would be too much
you dont have to do it individually
harmony transpilers have an extension method that literally does it for you
yeah there are a lot of extra files in your maps - you should only really have your tmx and your png tilesheet, nothing else when actually testing in game
finds all calls to Math.Min and reroutes it
(yeah but the other files are also vanilla sheets so they probably just got replaced with those tbh if they didn't load)
the only downside is if a method you need to do that in uses Math.Min for somethin else too
i mean that if another mod adds friendship to an animal it won't be patched
since you're using non-embedded tilesheets, are you loading them into the game somehow?
those situations would need individual patches
if not, you have to embed the tilesheet in the map
yeah, in my json folder i think
json file*
content.json
actually, im just noticing that friendshipTowardFarmer is a NetInt
just hook into the animals NetEvent
be alerted for every single change to it from any source
no, you load the map but you don't load the tilesheet
you are not loading anything into the tilesheet
Oh
(I could be wrong though, I haven't messed with maps in ages)
everyone uses tiled to make maps
you need to load your custom tilesheet in as well
The reason why I have so many extra tilesheets in my folder is because i edited the town
Ok, I will do that
How do I...?
Like maps load into maps, tilesheets need to go to maps as well since they are meant to be in the same location
Ok got it
oh waittt
maybe if i do this and also patch Math.Min(int, int) then i could figure out how much friendship was added over the limit
(does this work for tsxs, lina?)
this?
the only catch is i dont know how you'd get the actual animal from the netevent on its friendshiptowardsfarmer value
supposedly its possible, so says atra in the past. i dont know how though.
I don't think you are meant to have tsxs, just pngs for the tilesheets, the game reads the rest from the tmx file
Maybe u can make an AnimalWatcher
you can use tsxs if theyre in the mod folder
To hold a weakref to the farm animal
would the netevent run if the value doesn't actually change (if its set to its current value)
And do the event handlers
no, so this is your map name, you need to name the tilesheet when loaded the same way you refer to it in the map, else it won't be able to make the connection
disclaimer: idk the rest of the context of the convo or what you're doing im just saying you CAN use tsx's in general, not "You arent meant to"
okay!
good question! thats for someone smarter than me to answer
(or someone who has the free time to test it)
(that's for embedded tilesheets)
i suppose i will be testing this
You get the old and new values just compare em
is this correct?
without the modid - needs to be the same as the file name
the png
this was not the black magic I read about 
ok so
- patch math.min to store rhs in a static if lhs == 1000
- use some kind of netint event stuff to associate the stored value with an animal and determine if your friendship with the animal just overflowed & by how much
hopefully will work?
It did not work
So
What other options do we currently have
- give up on purple telephone (never.)
- ignore problem? (no
- ????
Give me a sec - going to try it on my end with a another experienced peep, I'm sure there is a reason, shouldn't need to give up on the purple telephone 
Okay!! Thank you!
i never thought making a mod of moderate scale would be so exhausting
not haunted
New quote added by atravita as #6415 (https://discordapp.com/channels/137344473976799233/156109690059751424/1381766569255764008)
Chu arrives to save the day (faster than any of us
)
im puzzled tho all i did was embed the tsx
well, i also yote all the vanilla sheets but thats just normal stuff u should do
Did you also yeet the mod added tilesheets when you yeet the vanilla ones
Smpai looks at the relative dir firsf
i moved it to a subfolder (sheets
was it that the custom was appended to the towninterior tsx?
which is why the index was beyond what towninterior normally has?
is there an easier way to edit tmx files than copying the sheets you want to use into the same directory as the file ๐
edit your tmx in the maps folder
write ur own Tiled extension
magical fixings 
to fix this
good plan
I can just remove all of the vanilla sheets in my maps folder right?
besides that not really, i also just symlink stuff everywhere
I edit mine from unpacked and yeet a symlink over to my mod folder
.choose fix mod problem, cry over machine rules
Choose result: fix mod problem
im surprised there isn't already a stardew tiled extension
DecidedlyHuman was making one
im having a slow fuzzy head day so i was wondering if anyone maybe knew how i could check if a piece of forage i created is spawning as its supposed to without it going in the inventory? so far there's no smapi errors, and i have the item in my inventory but i wanna make sure when it spawns everything is all good and that its...actually spawning and not just an object that u need cjb item spawner to retrieve

i think it is just that the friction exist but is not so dire that you can't just get used to it
quirks like 'dont use any fancy tmx features' and 'dont tileshet climb' and 'keep objects on 16x16 grid & name em TileData'
yes you can, you don't need to include any vanilla tilesheets with your mod
Fancy tmx features?
like tsxs
and that person who tried something and got failed to find .ts
who was using typescript for their stardew mods
New quote added by atravita as #6416 (https://discordapp.com/channels/137344473976799233/156109690059751424/1381770262705475625)
i dont recall context specifically tho but there sure is a lot of things xTile doesnt have 
my method is to just load up a modtesting save, sleep until saturday, then change speed to like 5 and go around the whole map (or wherever you set it to spawn) and look for it
that includes tsx files right
(tangentially related but has Pathos ever said anything about the idea of SMAPI itself fixing tilesheet climbing at runtime)
hm well how exactly does it fix such a thing 
thats what ive been doimg but lowkey forgot theres set times/days that stardew actually shifts its spawned forage
thank u
np
when a map tries to load a texture asset name just remove the climbing
while (texture path != exist as asset) remove ../
The way it climbs on your computer isn't the way it may climb on a user's
delete climbing and allow non-maps located assets at the same time
You have to remove segments and .. in pairs
this is irrelevant to the idea of removing the climbing from the path found in the tmx
that is what i was thinking yes
Removing the pngs broke every single map
You propose it to Pathos
didnt chu send a fixed zip of your mod fallspice
fyi u need to look at what i changed in the content json too
i tried to fix an issue where people complained they couldn't plant anything out of season in my pif greenhouse... But i can plant stuff just fine
Button, my blood sugar is nonexistent at the moment
Sigh
i did not send you anything i didnt need to change
i can mail you a twix
Does this just mean that whoever was having the issue had a separate issue not caused by my mod at all
I'm raiding the snacks at work
by broke do you mean when you open the map in tiled?
yes.
yea so thats what we spoke of
yep - when you make maps you need to make them in the folder where all the vanilla tilesheets are
but when you pack it, you only pack your tmx and your own custom tilesheets, none of the vanilla - like chu said
another way to do it is put a dot before all vanilla sheets
that guarentees game will not just load em from relative
okay
Does anyone know how to make access to a door conditional with HasReadLetter flags?
I want the text from the door to change from "It's locked" to "You don't know ___ well enough yet.."
when the NPC moves into the valley following another npc's heart event
(thinking about it a bit more i suppose if you just silently fix this behind the scenes, a user may not realize theyre shipping a mod whose assets might divulge some paths on their computer which may have privacy concerns... and if you fix it not-so-silently, then you may as well just make it an error and not fix it since the mod author is gonna need to fix it anyway to silence it)
don't know if you can do that vanilla, but you can definitely do it with Chu's framework (mmap) and the tile/touch action mushymato.MMAP_If GSQ ## if-case ## else-case https://www.nexusmods.com/stardewvalley/mods/28423 it has a lot of really awesome map stuff - there is a link to documentation in the mod description
hm im pretty sure mailflag is a thing warp supports
idk about doors tho doors are haunted
chu can i ask what the image is for mmap
they support doors i think
yeah, couldn't get door stuff working with just vanilla so I default to mmap for most stuff
(but then again I do stupid conditional stuff so....)
i have no idea it was just in ~/Pictures when i had to pick something
somehow, this is a more interesting answer to me than what i was expecting
i think its the desktop wallpaper bmp of a really old OS but i never found the source
so its possible that i hallucinated it
the filename is scatter.png
(also cant you just customize the message for a locked door already? is this an interior door you're talking about?)
you wanted door to be locked behind mail instead of hearts?
you can change the message for that too
assuming you mean ConditionalDoor
which is just a Tile/Touch action (you need both i think) you can put down on the door spot to make it accessible according to a GSQ
btw? for this framework? how can i make custom kids to work with any spouse? idk who i plan to marry so i'd like for my children to match specific sprites without being restricted to marrying a particular npc
https://www.nexusmods.com/stardewvalley/mods/15152
??
in events, when does the advancedmove command stop if i choose to loop it? when the npc has a command line?
I need opinions. Older bachelor, or younger?
advancedmove is magic and doesn't follow any rules, anecdotally. Sometimes, the character will stop after the commands, and sometimes it'll just keep going. forever
(shoulder-devil whisper) config setting
lol ok
when you tell it to by issuing stopAdvancedMoves (there may be another way but i'm not remembering it if there is)
ohhh okay thanks!
I think older stands out more given that most bachelors are young
Making the younger a config setting. Good ideaaaa
i live to serve 
Now to figure out expressions
older please please
havent been able to discover my forage item spawn naturally still...this is quite frustrating
(* ยดT โฝ T*)
ooh that's a good idea too
I wish c# had something built-in for handling file drag-and-drop
this is looking really good so far :D
it's uh.. it's a learning process.
This man's unsurpriseable, because I can't draw it.
if you want you could try keeping the pupils their default size in the normal expressions instead of expanding them up with the eyelid, and just adjust their position to try and make it work as needed?
and if your looking to add more pop to the expression maybe make the lips part hust a tiny bit like a triangle?
yeah, showing more of the whites of the eyes will convey surprise!
ofc!
so i was writing a harmony postfix for CheckItemPlantRules, and then I realized the method actually has 2 variants. how does harmony patching work with methods with multiple variants?
are you using AccessTools to get the method? or are you using annotations?
AccessTools
AccessTools.Method(Type type, string name, Type[] ListOfParameterTypes)
pass a list/array/whateveraskintellisense as the third parameter to that method where the types are the ones used in the specific overload you want to target
i.e. [ typeof(string), typeof(int)] would target CheckItemPlantRules(string whaterver, int whatever) but not other overloads
if you dont specify which overload when there are multiple available then harmony will complain
it'll look something like this
// GameLocation.doAction(Vector2 tile, Farmer farmer);
var method = AccessTools.Method(
type: typeof(GameLocation),
name: nameof(GameLocation.doAction),
parameters: [ typeof(Vector2), typeof(Farmer) ]);
(or without using <LangVersion>latest</LangVersion> in your .csproj, new [] { typeof(Vector2), typeof(Farmer) })
you specify the one you want and it patches only that one
if you want to patch all of them, you have to iterate them and patch them one at a time
otherwise you can specify by parameter types or filter based on access level or declared/inherited
(This requires the net8 sdk and langview latest. It's also the proper way to go.l
do I need to write all of the parameters, or is it fine to just name the parameter that's different?
all of them
ew
all parameters, you're providing the method signature to match
okay, got it
reflection is verbose, better get used to it now lol
it would have no way of knowing which was "different"
it has no idea which one you think is the default
and there may be multiple overloads
some time try writing a method using Emit
I did that before
it's fun as a project but I would recommend using expression trees instead for most things
unhappy little trees..
i looked into expression trees for BETAS but i ran into some issue that made them nonviable i think
i dont think Harmony liked em, maybe
expression trees can only emit to delegates and harmony requires static methods
and since CheckItemPlantRules has an out string, does that count as a parameter?
static methods or methods generated by a factory
yes
DynamicMethods created on demand 
perfect, thank you
I think you might need to use MakeByRefType to make it match?
I don't remember if that's required for GetMethod
maybe try without and add it if it doesn't work
(im only just now realizing that this code still names them as if they were coming from Special Power Utilities, where it was originally planned for, instead of BETAS. oops)
what are you using that for, anyways?
creating harmony patches via content patcher, of course
That's so powerful.
I thought betas was trigger actions and gsqs 
it is!
and crimes
this creates postfixes and prefixes
if BETAS does not react to an event that you need for your mod to react to, create your own trigger!
this way, BETAS can technically provide a trigger for every single thing that can happen in the game. just postfix the relevant function 
why did u want this in special power utility
did you have any better ideas for creating a custom power framework
yea such as defining Power first
!yellowbook
A good book for learning c# is https://www.robmiles.com/c-yellow-book

i feel like that is the real conundrum
okay but how do you define what a Power is
given that it can be literally anything
and may need to interact with any arbitrary function
It's voltage times current
in order to work
ill believe it when i see it
i like atra's answer 
(its better than my initial idea anyway, which was to have people use a minimally functional custom programming language that id compile into actual C# to run)
(please keep in mind that at the very onset, it was nothing more than a fun experiment for me to fuck around with, and the initial intent was not for it to be used by anyone. i just had fond memories at the time of my college course where we created a programming language)
(does casey's Console Code still work in 1.6?
)
i believe so
oh right, two separate mods, Content Code is the one I was thinking of 
but yeah, Console does work
I personally believe that at some mod complexity "do your own c# " is a reasonable response
using existing programming languages is cheating /j
this does actually reminds me of the <dps simulation thing that informed trinket tinker> which did indeed have a custom DSL that was basically "if X use skill 1"
to be fair, this is also what i initially thought about custom trinkets, despite me also considering a trinket framework before chu
it had this cus the alternative was exec python 
still i think u can sorta make content pack powers with BETAS now if whatever you came up with isnt too arcane
but i dont really think it's 'create Power', more like represent thing player can unlock with 'Power'
yeah that was part of the initial BETAS inspiration
tbf thats how the vanilla game uses the word Power too
Hey- me again. Anybody know how to make custom keg recipes?
the power part is nice way to depict it visually tho
unless you count extreme spring onion barganing power as an active ability
[[Modding:machines]]
you'll add item processing rules
My power is that, after a decade of schooling, I can Google this image when I need it
make sure you move your item processing rules to the top of the item processing rules list via Content Patcher's MoveEntries function
you cant recreate it from memory? what was the point of your education then
THANK YOU
(/s)
hm is there enough Things in BETAS or whatever to replicate every vanilla profession
well with BETAS Harmony patches you can do whatever yโ
some of them dont need anything like that crab pot one
0 chance of me doing a profession rework mod
Back to the "God I wish someone reworked professions"
So you know how furnaces require two items: ore and coal in your inventory? can i make a keg do that, where if you click on it with a blackberry and have mead in your inventory it'll make blackberry mead?
forage tracking is the one that stands out to me as "only with harmony or a per-tick trigger"
But like, the way I want professions reworked
its very important to understand that im really not in my lane if i try to make a mod with. how do you call it. "content"
Also no I don't know how much I want
Also if I rework professions you bet professions suddenly become a single int
Oh! yes! additional consumed items nvm
you need Extra Machine Config for it. The problem with AdditionalConsumedItems is that it applies to every recipe
surely there's already a massive dramatic mod or two about reworking professions
(Selph is resident machine expert)
Yes but I want it my way
Also I don't know what my way is
pretty sure it's a song
if u wanna do it all vanilla then make a new machine mead keg
well, you already need content patcher
I'm gonna make a mead keg, and it's gonna be cute, and this may accidentally lead to a brewing rework
yes...and that will be all >:)
i dont think it's a bad thing to want to draw ur own mead keg
i shall program it too
however, people will probably ask you about things like "hey can i use <different mead mod's keg>"
another thing to note is that you will probably lose money in the recipe
if u were to use honey fuel + black berry input
and the honey's like, fairy rose honey 
(that's why I made https://www.nexusmods.com/stardewvalley/mods/21086)
(ahh, my very first mod. one that I should fold into EMC one of these days if I'm any less lazy)
hm does emc have this rn
it does, but only for EMC fuel, while the mod's specifically for AdditionalConsumedItems
ig it does just let you flip the ingredients around to benefit from normal mulitpliers
(that's the reason I haven't folded it, since I can just tell ppl to use EMC fuel instead
)
anyways you can consider it doing like
- no EMC, do vanilla stuff
- with EMC, do fancy stuff that helps ppl never lose money on the produced mead
whether you care about it is separate problem dependent on things like if you use ExtraMachineConfig in your own modlist
ability to have optional bonus feature is nice thing about CP based framework
so I am happy to confirm that GetMethod does in fact require MakeByRefType to match, or harmony will complain very loudly about non-existent methods
eh, don't blame harmony. AccessTools is just a thin wrapper on C#'s built-in reflection API.
the console blamed the harmony.Patch() method, so I'm blaming it, too!!!
Honey fuel, berry input?
Oh..
No.
Mead fuel.
Also I think this is a bad idea because I started making this mod to put some ocs in the game. I need to stay focused. I already made drinkable battery acid.
Maybe another time
I have 4 total recipes: empanada (cooking), battery acid (cooking,) blackberry mead (?) and something i'm calling Void Tea where you put 10 void essence in a keg
drinkable battery acid and void tea are given to you by this fool
you're inspiring
hii i could use a little help-
hold on button is Book not Contentโข๏ธ
i love when i think a transpiler is broken cause im getting weird errors about methods being malformed, but actually its because i did dotnet build while the game was running and my mod's assembly was overwritten in the mods folder ๐
books are data in their purest form: words.
sure! what with?
I'm surprised dotnet build let u build
the most "fun" error I ever had with a transpiler was when I got a NullPointerException on a line that was if (x is null)
can you guess how that happened?
have you heard about my friend "hot reload"?
wdym? is it not supposed to?
oops didnt mean to send yet
although a transpiler won't really be hot reloadable so maybe nevermind
I feel like it bonk me with another process is using the dll
Maybe it's only if debugger tho
im on linux we dont have file locks
if you have a json, please use the json parser on the smapi website instead of pasting/uploading it here
Im also on linux 
whaaaat
But yea probably cus i was using debugger
prolly yeah
yea thats what im trying i just accidentally sent it while shifting down a line bc im not use to typing w my laptop and theres multiple jsons
some day i hope rustc_codegen_clr will be up to the task of making mods so i can horrify people with it
yeah my stardew mods are written in ๐ ๐ ๐ฆ rust ๐ฆ ๐ ๐
it happened because I passed the wrong local type to the injected method call, and somehow the compiler didn't catch it, so it just exploded horribly trying to access it
they're ๐ฅ ๐ blazing fast ๐ ๐ฅ stardew mods
yea makes sense ๐คญ
I mean you could write it in rust and then just use a c# component to glue it together, but then you'd have to ship the mod with native libs for every platform
Lol
and c# is pretty fast already
Once someone used __instance on a static method
Needless to say
It died on mac
But hilariously did not die on windows
(Not me)
itd be a huge pain in the ass to do anything that involves actually interacting with the game though
Tbh c# is pretty fast but writing fast c# feels godawful
rustc_codegen_clr, on the other hand, will someday allow this
C# normally - great language
I dunno, I like c# more than most of the other languages I've used
i still havent been able to find a forage item i tried creating spawn naturally and i was just wondering if maybe i did something wrong preventing it from being spawnable forage or if it just unluckily didnt spawn at any point of me trying to test it
CP Json
https://smapi.io/json/none/a055327cfd104e9f95c4fd9ba7644819
FTM Json
https://smapi.io/json/none/3d30d417f22346c6884322bc41c5555a
Object Json
https://smapi.io/json/none/42a854868d5e44d1a68d4912a4ee57dd
But when I'm buried in pointers trying to not fuck up concurrency it sucks
This project is still early in its developement. Bugs, crashes and miscompilations are expected. DO NOT USE IT FOR ANYTHING SERIOUS.
modding seems like the ideal unserious thing to use it for
i've had problems with c# being far too slow in mods before, although tbf rust compiled to dotnet il probably wouldn't be that much better
why not use cp to spawn forage as well?
excuse me, i take modding very seriously
would you like instructions on adding forage to a location with CP?
i was struggling to find and understand the instructions and things to write and a lot of the things i was using for reference to help involved ftm 
the problem with CP spawn is that your spawn either overwrite vanilla's, or you increase the spawn limit to account for it
(i'm probably going to have to rewrite most of my subnautica terrain patcher mod in rust for performance -- there are some features that i can't add because they'd be too slow in c#)
FTM allows you to just spawn your stuff on top, which is simpler relatively speaking
(fwiw, I haven't found C# "too slow" for mods, but also.)
well
mostly i gotta move a lot of data around in a way that's very parallelizable and very difficult to do in c# without a ton of unnecessary copying & allocation, especially with the limited features available in framework 4.7.2
oh framework 4.7.2
having done advent of code competitively, with myself on typescript, others using C# and others using rust/c/etc.
the C# code is competitive, and sometimes does beat C
it's also just so much more of a pain in the butt to do parallelization in c# tbf
rayon saves my life daily
{
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": ["Forest", "Forage"],
"Entries": {
"{{ModId}}_D20": {
"Id": "{{ModId}}_D20",
"Chance": 0.05,
"ItemId": "{{ModID}}_Spring D20"
}
},
"MoveEntries": {
{"ID": "{{ModId}}_D20", "ToPosition": "Top"}
}
}
oh rayon is amazing
and tbh while you can get really fast code in C# it sucks to write
(also do see my posts above as to why you may want FTM instead of CP spawns)
In the FTM file, you're using the ID G0th1cc80HDBvnny.GBsForage_Spring D20, but in the object data, the ID you're giving it is just Spring D20
I just wish you could have a zero-cost string -> ReadOnlySpan<char> conversion instead of it doing an extra alloc
there's a bunch of things I want
Dotnet even did one of them -> being able to index a Dictionary<string, whatever> with a ROS<char>
Another is being able to call string.intern(ROS<char>)
thank you for teaching me and helping me correct my files, i really appreciate this community

@drowsy minnow oh, and also "MapName": "Cindersap_Forest", should be "MapName": "Forest",
(you can go to a map in-game and type whereami * in the SMAPI console to see what name to use there)
also, last time i tested some very similar code (same data format) it somehow got a 50% performance increase from compiling with profile-guided optimizations ๐ and honestly i know jit is supposed to do the same thing but it does Not measure up in practice
wait that's such a funny command
walk into the forest shouting "WHO AM I" meanwhile lewis is calling the town psychiatrist
(it really doesn't.)
you can tell I've been on hiatus for too long because I forgot how to spell that
esp on net framework
it gets a lot better by 6 but a LOT better by 8
it's still not great.
otoh, I feel like the number of times I've been like "no jit stop breaking my benchmarks" has gotten a lot higher lately, vs "dude jit can you not constant fold that?"
(I use ILSpy to look at the disassembly)
sorry
LinqPAD
linqpad is great
if i'm editing Data/WorldMap, do i need to use text operations?
depends on the specific field/goal, like if you want to add more aliases to a MapNeighborIdAliases entry or expand one of those Text fields
okay, stupid questions time
endertedi sent me a PR, but they targetted the wrong branch
how do I move it to the right branch?
in general i'm still learning how to edit the field/entry i want XD i drew over the worldmap and successfully patched it in, and now i'm trying to add locations to it. i think what i want is to add to MapAreas?
ah got it
@finite ginkgo - just fyi, alpha is the only current branch in my repo
all development is on it, in theory I will merge into main when I finally do my 1.6 updates and releases
in practice that will never fucking happen
(because I'm a terrible person)
I'll fix the conflicts and merge - done
Oh, by adding locations, do you mean being able to warp from a patched to a new location?
no, sorry, i'm referring to like, being able to hover the mouse over an area on the map and seeing the scroll with the location name, and being able to tell when the farmer/NPCs are in that location with the NPC location mod
there's a tutorial on the modding wiki but i think it may be incomplete
Ah, ok. Iโm afraid I canโt be of much help with that then
that's okay, thank you for offering!
I'm not really familiar with all the settings, but if you're adding a new area to the map, you'd probably want to add an entry to the MapAreas list in the Valley entry, yeah 
would the syntax of that look like this?
"Action": "EditData",
"Target": "Data/WorldMap",
"Entries": {
"Valley": [
"MapAreas": {
"Id": blah
"PixelArea": blah
``` etc?
the table on the modding: world map page is several layers deep and i'm not sure how i write that
that would probably replace the whole Valley entry, so you'd want to do something like this to just edit MapAreas:
{
"Format": "2.7.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/WorldMap",
"TargetField": [ "Valley", "MapAreas" ],
"Entries": {
"YourMapId": {
"Id": "YourMapId",
"Condition": null,
/* etc */
}
}
}
]
}```
(disclaimer that I don't work with CP much)
if you unapply the transpiler patch and then reapply it, you can get a slightly-more-steps hot reload though!
thank you so much, that's exactly what i was worried about
good point! i should consider putting that in debug builds for future transpiler work 
despite the scope of my mod i still don't know exactly when to do targetfield/field/entries
one of the reasons i always keep ariuybd a ButtonPressed event too, so i can slap a F2 -> unapply -> reapply in there
around*
ariuybd
i usually just add a blank console command with the same effect. keyboard real estate is expensive these days and i'm not waiting for the bubble to burst
my basic understanding is that "Entries" overwrites everything, "Fields" only overwrites the specific fields you edit, and "TargetField" lets you zoom in farther before doing either of those 
e.g. here, TargetField moves you inside the Valley entry, then inside the MapAreas list; after that, your Entries save over whichever ID(s) you edit
fields can usually do what TargetField does anyway, but it depends on how nested everything is
omg tattooing this on my eyelids thank you
Entries doesnt necessarily overwrite but rather everything you dont specify is reset to default values
so not ideal when editing a checks file 3,000 line json, got it lol
Entries makes a new Entry (with default value where not specified)
Fields edits the Fields
y'all think I can break a thousand?
yeah, this is the example that usually comes to mind 
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"MossSoup": { /* this makes MossSoup use all default settings, except the ID and description */
"Description": "Maybe a pufferchick would like this."
}
}
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"MossSoup": { /* this just edits the description and keeps the existing MossSoup entry, if it existed */
"Description": "Maybe a pufferchick would like this."
}
}```
it's contextual, but if you're just modifying an existing entry (like a MapAreas ID that already exists), you probably want Fields
iirc that would reset id too, its only in a list data structure that CP will understand its semantics
saving this as well, thank you!
actually Objects doesn't have an id field, so doesn't matter
my understanding is that using Fields like that is very similar to TargetField, though there are probably assets that don't handle it
(and it's been years since I learned about Fields)
though many of the stardew data models with an Id field are properties with a computed getter which will try other stuff if its backing field doesn't have a true value
Fields is editor.GetEntry(outerKey).SetValue(innerkey, value)
TargetField rescopes editor to point to the inner data model
it uses the same semantics as Fields (and entries) to get deeper, but it baselines everything else to talk in terms of that nested data model
Thanks, sinZ!
(this won't add new patches, but will automatically cause existing patches to be re-applied)
probably should be in the updateapplication lifecycle hook, but I'm not entirely clear on the distinction
will this stop Rider from telling me i cant reload if i affect a lambda or w/e or does this only even work if i specifically use dotnet watch
this wont make changes that "cannot hot reload" start hot reloading, its more when a successful hotreload occurs, have the assembly react to it at runtime
ahh, gotcha
wow reapply harmony patch
i guess for transpilers specifically thats handy
overkill for the others tho a bit atra 
now we just need BETAS Harmony Transpilers and retranspiler on invalidate
im halfway there
genuinely the only thing preventing harmony transpilers is the fact that literally 0 people would ever have even the slimmest chance of using it
whereas with the other stuff i still havea tiny amount of hope
but itd be trivial to take in a list of opcodes to match and a list of opcodes to insert
that was my stance with profiler doing dynamic harmony patches too
and i already got my "well this is a fun experiment" proof of concept out with the prefixes and postfixes so i have no reason to do more
i been thinking about the list of "will explode game as an error item"
rn ik placed floor explode draw loop on bad texture and fish tank is also no good if it errors with a fish inside
will break renovations in ur house
animals too i believe though idr the circumstance in which an animal can end up with a texture that broken
too much effort to have a serializable format to describe IL pattern matching, particularly for me where I need before/after at all times, which is why I expose the profiler API to C#, and let child mods do the transpiler patches
i thought animals just error chimkin
in normal circumstances they do
but i recall someone iun this channel some months ago having an issue with supremely broken animals
i coulda sworn you were around at the time too and also said "i thought animals just error chimkin" possibly in those exact words
ah yes. error chicken
see i vaguely remember the animal problem being related to uiis2 not handling the error chicken (this is fixed tho)
idk if it was game itself not liking it
https://smapi.io/json/content-patcher/6b329e8e68e3449ab57f2f1e87b843be i cannot for the life of me find the syntax error, help
wait wrong json hang on
I'm semi surprised they had enough self control to not make it an error pufferchick, but I guess that might have been too much effort for a easter egg
https://smapi.io/json/content-patcher/e2e7a2599cf0484bb73870aad9bb1faf correct link this time
I think we found that pets explode the game when their texture is wrong but farm animals don't...but I didn't actually write the results of my testing in my test mod.
do all lists need {} inside?
no but this is a list of models (WorldMapAreaPositionScrollTextZoneData)
if you are doing "Key": "Value", it needs to be in a {}
if you are doing ["a", "b", "c"] then no {} needed
you can have a list of e.g. ints like [ 1, 2, 3 ] since those are not objects
ah i see
("those are not objects (laymans explanation)")
[1,2,3,4] // fine
[{"Id": 1}, {"Id": 2}] // fine
["Id": 1, "Id": 2] // nop
listen i failed out of OOP in college lmao
something something use vscode(ium) my beloved
[1, 2, 3, "apple", {"Id": 42}, 6] is also valid, but semi annoying to do well in C#
tbh also annoying to do in json
implicit operators or an explicit JsonConverter to interpret it, or do what CP does and just say its a JToken and tell newtonsoft to stop trying
just bc of how uncommon it is and you have to remember what it is you're doing
does it tell you syntax errors more specifically or something?
hmm i'll look into it!
also lets you use my upcoming debugger mod/extension if I ever release the vscode half
https://smapi.io/log/cea55b0afc494f5fa244e3905bc54dcc
https://smapi.io/json/content-patcher/07e5079906df4c05ae7f8fbf769f75e8
i'm seeing the editimage patch being applied to the worldmap, but none of the tooltip/scroll stuff is happening
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 16 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
does anyone know what the pixel size for a fruit tree growth png is? I know crop growth png is 32x128, but I can't seem to find how big the fruit tree one is supposed to be
look in Tilesheets/FruitTrees
looks like 80 pixels tall, 432 wide
does farm animal friendship run on the same scale as NPCs where 1 heart = 250 points and full is 10 hearts?
no, animals cap out at 1000
yeah, 100 per half-heart on the display (out of 5 hearts), 1k total
https://stardewvalleywiki.com/Animals#Friendship_2
thank you!
hi there, does anyone know if itd be possible to make cgs (like those special sort of heart events) with crystal clear images? I'm creating a mod with portraits that are using portraiture but when I'm drawing the cgs it sort of bothers me that I can only get the ingame images that go along with heart events to be pixelated. Any help would be appreciated! If I have to code this myself instead of following someone else it's fine but I'm kind of new to it so I'd rather not ๐ฅฒ
I feel like it would be possible so long as you had a large enough map, but I don't know if it's like, actually possible to do so in game
But also idk if you can do magic with c#
๐ค
hi there, can someone help me change layout without having problem with the bushes
!rtf does this command exists
Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).
and there's a mod to switch farm too
i don't remember exact name but something like farm switcher
easy farm switcher!
once more im uncertain whats gone wrong, this smapi error log only happened after i added the 'spring D10' item stuff in the json
https://smapi.io/json/none/b76a27acbed742ba8d8976ccb3174a79
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 7 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
quick question, what do i put in the "Texture": - when i plan to use a vanilla texture?
basically this
@vernal crest sorry for pinging, but do you have any experience with this?
I'm fine with being pinged :) You'd put the vanilla texture name in there. So Buildings/Rustic Cabin.
Not for the texture, no. It's already in the game and doesn't need to be Loaded there by you.
so i'll remove it then, thankss
it works thankssss
next update of the mod will be compatability with other mods
okay unrelated to modding how do i update a mod in nexus? i have the file change the version in the manifest also, but it doesn't show that there is an update in the console window
if you just updated on nexus, you have to wait up to an hour for SMAPI's cache to find it
(SMAPI asks its own server for update checks, and the backend only periodically fetches live from the hosts)
You have the nexus:num update key right
yes
ohhh okkk thanks thanks, i thought it does it instantly
@vernal crest do you still remember the mod that adds a delivery truck? the one that add a warp on the right side(i think) of the bus stop
Ayeisha
thanks thanks, ill create the compatability of my mod lol
also mineral town has compatibility in the same spot
I need help figuring out what resolution and asset-size I should use if I want to make a replacement for Junimo Kart. I want to make a retrostyle arcade game to completely replace the Junimo Kart game. I am using Godot GDScript for now because I am a beginner and haven't learned C++ yet, so I am just going to make the game in GDScript then remake it in C++ just to get in some practice.
Anyway, I want to make sure all my assets are the right size starting off so I can reuse them when I make the final game. I am going with 16 by 16, as per the tile/sprite sizes for Stardew and the native resolution for my game is 640 by 360. Is that a good place to start? I tried to do my own research but I just got more confused realizing how little I understand about how resolution and scaling actually work, lol. I know for pixel art you should start small and scale up, but 16 by 16 looked pretty tiny in Godot, and when I transformed the scale by 2 in Godot it looked blurry. Does that mean transforming the scale in a game engine is different to how images get scaled up for different resolutions and I shouldn't be relying on that? I tried a 36 by 36 sprite and it displays much better, but I assume that won't work for a mod. Does Stardew scale up it's sprites in-game?
Also, I noticed the assets for Junimo Kart are all done with a tilesheet, do I need to be creating everything in a tilesheet instead of as separate image sprites?
TLDR; If I want to make a Junimo Kart replacement to use in my mod, can I develop the game in a 640 by 360 resolution with 16 by 16 sprites and have it be compatible with Stardew?
theres a doom arcade machine mod you can probably dissect
So junimo kart is a IMinigame, I don't think make it in godot and then importing it over to stardew which is on monogame is any easier than just developing the game as a mod
FYI I figured out the scaling issue I was having in Godot, lol
I'll have to ask what exactly the goal is here cus in a sdv mod u can just start junimokart
I'm very confused why GDScript and then C++ is being talked about in relation to making stardew mods
I'm sorry, I meant C# not C++. I am just making the game in GDScript first to practice because I haven't learned C# yet and so far I am only using content patcher mods so far. So the end game is to make a C# mod so I can replace the Junimo Kart game in my mode with a custom game that fits the theme of my mod.
And the final version of the replacement will be in C#. I'd essentially be making it twice as a way of practicing programming.
u don't have to replace any game in particular (unless you want to) cus u gotta implement the part where player can start the minigame
Using GDScript assumes using Godotโs engine, which has literally nothing to do with Stardewโs MonoGame
MonoGame is less of an engine and more of a framework
Aka it does less for you
and learning the ecosystem is arguably more important than the language syntax
So that experience in making the GDScript game first will probably be mostly for naught
Yeah it is probably better to implement a simple minigame like tic tac toe directly in sdv/monogame first
Then u can make the fancy minigame
(I say simple but u have to do all the draw loop and game tick stuff by hand
)
heyy, I am right now trying to added the overgrown garden farm by daisyniko, but i seem to have some problems.
I just wanted to change 3 tiles, because i moved my house and the tile decorations that are directly right of the player house are now just in the way, I have never moded but i got the point where i got the custom map open in tiles and added the tilesheets that it requested but the map looks just outright wrong and the tiles around the water just keep changing?
could anyone help?
Start over
Instead of adding custom sheets, find the sheet it used and place them in same folder
!unpack
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 did add the vanilla tile sheets by unpacking the content
yeah so you gotta make it like
Somes folder/
YourMap.tmx
spring_Outdoors.png
(or whatever the name is)
Don't accept the Tiled prompt to find missing sheet on disk
i did add all the tilesheets it prompted me to locate, in the same newly made folder with the map. should i just close tiled and open the map again?
well that didnt work XD
I recommend backing up whatever u have rn and redoing things
i closed the programm, opened the custom map which is in a newly made folder with the tilesheets together, but it still looks the same... Im sorry maybe iยดm misunderstanding something?
Redoing things as in begin from the original map tmx
so there is no way of just editing the mod map? i really only wanna change 3 tiles 
Well there is but you are in a bad state rn
Now another way to just edit 3 tiles is to just do EditMap without a real tmx
oh okay that sounds good is EditMap a feature of tiled?
EditMap is a content patcher patch type (action)
Okay everyone! How do I edit the existing data of kegs to allow for a recipe: 10 void essence = 1 void tea?
Oh wait hang on
I think I need to make a keg specifically for void tea?
But i dun wanew
Would be an entry in data/machines
Thank you!
alright then back to work I go, so what are the keywords I should be looking for if I want to add more NPC animations and control them with c#, not events or schedules?
This one can just be a new rule to keg (BC)12

AnimatedSprite is the game's class for this
got it, time to study 
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.
Suggested fixes: One or more mods are out of date, consider updating them
json plz
json at smapi.io/json pls
you're missing TargetField to drill into the keg entry
["(BC)12", "OutputRules"] should do it
same level as Target/Entries
Okay
(also you dont need to specify default/null fields)
"TargetField": ["(BC)12", "OutputRules"],
oh ok
thank you!
It's still giving me the same error...
It's in yellow though not red
Should I continue?
post your json again
ah wait I know
You also need to wrap your fields around a key
so
"Entries": {
"{{ModId}}_VoidTea": {
// stuff
}
}
right now you're putting those fields directly into OutputRules instead of inside a new entry in OutputRules
missing bracket ๐
then add em
i knoww
seriously though, two weeks ago i had never touched code in my life and now i'm building a mod with no previous experience and most of my errors are just missing brackets which i think is pretty good
Okay I added the recipe correctly but it produced an undrinkable error item
And smapi showed. No. Errors.
Err item is the error 
post your new json just in case
HEY! THIS STUPID TEA BROKE MY DRINKABLE BATTERY ACID TOO!
It didn't break my empanada
So it must be an issue with the drink
"It's helpful to format yer json, lad. You learn to spot issues like this." -Willy
The Void Tea restores 90 health and 200 energy, requires 10 void essence, what should I do to make it not so overpowered
A debuff, maybe?
It's not that overpowered
dude that's like. Killer early-game
No one really eats food for health
Unless i just lock it behind friendship
skull cavern
It's for buff 
Hmmm
Well for Battery Acid i double-nuked it by making it need 2 joja cola and 1 battery pack to make 2
and then giving +4 speed for 1 min 30 sec but nausea for 2 min
But yeah if u want u can tune the recovery to same level as tea but add some fun buff
I don't think balance is that important just do whatever vibes
well, there's a reason ppl bring giant stacks of cheese into the cavern, it's easy hp
I think I'll do that
Yeah but i think cheese is actually lot easier than this void tea
Unless u had void essence producing crop
tru
yeah gotta have no-buff food to replenish hp without wasting/overwriting your buffs
Idk about you guys but I always end up with stacks and stacks of void essenc
if you're worried about balance i would compare your food to salad, which can be bought cheaply in infinite quantities starting on year 1 day 1
hm yeah that's fair
I think void tea is fine as is
Solar tea, however, would be CRAZY
has a pretty good g/hp ratio if memory serves but i don't think it's the best. just cheap and no conditions to access
pretty sure you can give crafting recipes via letter, yeah. just set up a trigger action to send the mail after a certain friendship level
You can lock it behind a GSQ yea
but it's like
a keg recipe
oh i see what you mean. check out what chu said then
For clarity i would do it via trigger action dayending send mail, keg gsq on mailflag
Vmv has examples of this
And the benefit is that the player get a notif about it (cus they get the mail)
I like your funny words magic man
Basically the machine input trigger part can take a Condition
YES thank You
so
condition: has read letter [void tea recipe letter]
letter send condition: f {{ModId}}_DelKior 2
sm like that
Yeah but take look at game state query page for how to format that
It's not event preconditions
heyy guys
what chu said (it's not event preconditions), but even if it were event preconditions you should do yourself a favor and start using the new human-readable versions since the short aliases are deprecated
I just noticed that in an event "Weather rainy" is true for indoor locations on sunny days. would "GameStateQuery Weather Town rainy" work if I want it to be raining outside?
hmmm i tried running that weather check query from a debug command and it returns false regardless of the weather condition I'm checking
the Weather event precondition honors the weather in the current location context, so if you're getting the wrong result it could be that your indoor location's context is incorrect?
say for example you have a custom context zone where it's sunny, but in the default context it's raining. if your indoor map in the custom zone is wrongly set to the default context, it will be rainy inside
as for the gsq, it has slightly different accepted values for the weather:
WEATHER <location> <weather>+ The weather ID in the given location. The <weather> can be one of Festival, Rain, Snow, Storm, Sun, Wind, or a custom weather ID.
Is it possible to mod the game without having the steam version
Yes
OK thank you it seems I need to read up on location contexts.
You can also mod the gog or Microsoft gamepass verisons
SamBoss, further questions should be directed to #modded-stardew
Using SMAPI?
Alright
well I tried updating the location context but must be doing something wrong. in the end I got the effect I wanted with a gsq didn't see that it needed to be 'rain' instead of 'rainy'. reading comprehension fail.
tiny errors like that annoy me sooo much lol
is it possible to create a record player item that would have the same functionality as the jukebox, or is that hard coded somewhere?
Very hardcoded
You could maybe fork/update Handy Headphones because that's a mod that sort of worked like a record player
hmm iโll look into it!
i just thought it would be a cute character-themed item to include haha
Note - I have no idea what that would entail. Maybe there's a reason it wasn't updated to 1.6.
another optionโmaybe i could create a config option to reskin the jukebox
Well if u just want yer music in jukebox it should work
Can the mine maps be edited in content patcher? I'm interested in editing this but I'm not sure I can find it in the unpacked game files. I'm on mines level 58 but this doesn't match 58.tmx in Maps/Mines
Is the custom jukebox supposed to just play a few songs?
This sounds like a soft request for a Jukebox Framework
i was just going to have it be vanilla music tbh
So u can edit that BUT all levels with same layout get edited too
i donโt think my skills lie in creating DRM-free game music lol
You do it
I'll do it as soon as I get back into modding
Do it for Chest and then Expanded Storage can be replaced
๐
Any idea what tmx has this? I don't have think I have this unpacked map file by name: Map name: UndergroundMine58 but I guess it's been a long time since I unpacked the game files?
check 28.tmx
in the Mines folder
most mine layouts are the same first ~30 but repeated with the main tilesheet swapped out
i want to throw together a soundboard mod that just throws up a big grid of all the sound effects with their cue ids to make it easier to find/look for a specific noise, but i'm 1. lazy and 2. doing other stuff rn
Can u list cue ids tho
i dunno i haven't really looked into it
so much easier than hunting through my zip file of sound cues by category lmao
seems like it'd be easy to do and test
-# maybe
But not for 1.0
oh, for sure, but see my excuses above /lh
rest assured that was me soft voluntelling chu to do it
new mmap feature ๐
probably one of the few asset types where you'd be able to tell if one was modded or not reliably
I agree chue should do it
wait atra as long as your here
how do you make your own content manager, do you just initialize a new one
You did that once right
It depends on why you want a new one
In particular, do you want a smapi tracked one or no
No
Yeah just init a new one
There was a thread awhile ago where I believe we found a way to do it, but the person asking only wanted to export it into a csv
I think it was for Coriel
If i make it it's going into pelcan mouth jail
put feature in pelcan mouth
For listing sound cues:
#making-mods-general message

