#making-mods-general
1 messages · Page 313 of 1
Hello, I'm having problems with the first dialogue of an NPC that I created. I put the Introduction key in Dialogues, but the NPC ignores this speech and goes straight to the speech related to the day of the week.
The furniture itself has a different "draw height" when it's an item placed down as compared to when it's part of the scenery, I think
Introduction only applies for the first 6 days of a save file, are you trying this on a brand new save?
Okay, is there anything showing up in your SMAPI console log related to your dialogue entries?
no
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.
"Action": "EditData",
"LogName": "Add Kya",
"Target": "Characters/Dialogue/Kya",
"Entries": {
"Introduction": "Olá, eu sou a Kya",
"FlowerDance_Accept": "Vamos então",
"AcceptBirthdayGift_Positive": "Obrigada",
"AcceptBirthdayGift_Negative": "Era melhor me dar dinheiro",
"GreenRain": "Aff, essa chuva atrapalha sair de casa, e faz o mato crescer",
"GreenRainFinished": "Enfim acabou",
"GreenRain_2": "De novo esse matagal",
"Mon": "Ah credo, trabalho começa hoje",
"Tue": "Tá puxado, mas a partir de amanha fica mais tranquilo",
"Wed": "Achei que ia ser bom hoje, mas pelo jeito não",
"Thu": "Dia maravilhoso pra trabalhar",
"Fri": "Fim de semana, vamos trabalhar",
"Sat": "Eba so mais um pouco.",
"Sun": "Ai ai que tédio."
}
}```
When talking to the npc for the first time, she goes straight to speaking in "Mon": "Ah credo, trabalho começa hoje",
It really is something very strange, it doesn't make sense for him to ignore the Introduction, since it's on the first line.
And that's the only place you've patched the dialogue for Kya, yes?
If you do a Patch Export for "Characters/Dialogue/Kya" and it's still in there, and the patch summary for the asset shows it applied, then I am also stumped.
I have no idea how to do this.
It's a console command in smapi
You type patch export <The file path for the file you want to export>
thanks Shrimply, I was trying to pull up the full command and got distracted
@ivory plume Hello, Have you ever had a bug reported in Content Patcher related to file paths? I'm getting an error saying it can't find the files in the specified location, but the files are in that exact location. I had been adding quite a bit of content to my mod, and everything was working fine until I added one more object and recipe—then the issues started. Now it won't detect my objects.json or Shops.json.
I tried recreating the folders and files, but it didn’t help. I also simplified the paths by removing subfolders and shortening the directory structure, but that didn’t work either. I really don’t know what else to try.
Lol, im always lurking here
It's appreciated, had to take a work call so I unexpectedly stepped away LOL
Have you put your object and shops JSON in the JSON Parser to make sure there are no errors making them invalid JSON?
Do you have file extensions displayed in your file browser?
Some of the common issues are things like objects.json.txt
No, because I copied the files from another recipe I made that was working and just changed the values that needed to be changed—just like I did with other recipes today, and all of those loaded fine. But this last one didn’t.
Now I tried simplifying the paths for all the recipes, and all of them are throwing the same error now.
If there’s an error inside the content of objects.json, could that cause content.json to not find it even if the path is correct?
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
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.
(worse case, there is an error that pathos needs to look at, but there's some info, best case you got it solved faster)
and a screenshot of your mod folder content where the stuff is
I validated objects.json
Validation
No errors found! (You have no schema selected, so only the basic JSON syntax was checked.)
Please show us a log i beg you
In this case, it would be significantly quicker to just upload a zip of the folder so we can look it over if there's nothing obvious from the log.
I don't know if you're talking to someone else or to me haha
We need your error log, and I'd also appreciate the link that the JSON parser gave you.
ok
Log found, uploaded to: https://smapi.io/log/904eed0e4bb149b1afb5939b7c60e960
Yes, I needed the log and JSON parser link from you, Hayato, Lumina was speaking to you as well. 🙂
I see now, it was a bot that replied under my log... hmm, it’s pretty clear my eyes are tired since I didn’t notice that.
Give me a minute—I'll send the log now as the bot instructed.
Is this the pack?
Yes, the mod is Nando´s Artisan Goods
you don't need to send the log, the bot automatically uploaded it for you. however people did request that you send your json
Are you absolutely sure you have assets\Recipes\DDL\objects.json
Json parser isn't that relevant here, we need to validate your folder structure
Hayato, can you get a quick screenshot of your assets/Recipes/DDL folder? should be something like this:
(except for your filepath, obviously)
this isn't the whole folder structure, but this is the problem that was originally presented, if that helps
That will help us confirm
a) exactly where the file is in your Mods folder and
b) what the recognized filetype is of your objects.json in that folder.
Well, that's one of the problem spots apparently, Nic, so it does help a bit.
I was hoping the log would show something like the file having access permissions or something that was preventing it from being seen, but no sign of that there.
Guys, give me a little breathing room, haha—I’ll try to reply one person at a time.
Yes, the files are where they’re supposed to be; we already checked that with another user on this Discord. Still, here’s what we can do: if you want, I can roll back to the version of the mod that was working and then add the recipes that caused the error.
I can also send you a screenshot of the file location to confirm they’re there. With how tired I am, it’s totally possible I made a mistake—I won’t rule that out.
Of course
LOL, I need to go get ready for a work event, so I'll back off a bit since you're getting a ton of help. 😛
As DH said if you want to just send your current version in a zip here, people can help check directly
(id maybe also not completely rule out the possibility of Vortex fucking with it since it seems to be managing your mod folder)
But as log says, it doesn't think assets\Recipes\DDL\objects.json exists
could perhaps try launching without mod manager just to see
I think I know what happened — it seems like Vortex interfered with the files. Depending on how I access the mod files, they show up differently.
If I open the folder from Windows Explorer directly, I see the old version of the mod. But if I go through Vortex and then open Windows Explorer from there, I see the new version of the mod.
I'm going to delete the mod and reinstall it using the new version.
From Vortex
From windows explorer
Hi, I'm trying to create a teleport in cjb, for a custom map...
I can even add the section to the map, but it's not adding the entry for the teleport
{
"Action": "EditData",
"LogName": "Add section to cjb",
"Target": "Mods/CJBok.CheatsMenu/WarpSections",
"Entries": {
"turmamodssdvbr.SDVbrVillage_sdvbr_principal": {
"Id": "turmamodssdvbr.SDVbrVillage_sdvbr_principal",
"DisplayName": "SDVBR Village"
}
}
},
{
"Action": "EditData",
"LogName": "Add warps to section to cjb",
"Target": "Mods/CJBok.CheatsMenu/Warps",
"Entries": {
"KyaHouse": {
"Tile": "13, 15",
"SectionId": "SDVBR Village",
"Location": "sdvbr_principal"
}
}
}```
What could be wrong?
All done, it's fixed! Believe it or not, you guys actually helped me a lot—I didn’t know that could happen with Vortex, that it wouldn’t update the mod data.
😁
Thanks
I think you are missing a display name for the added warp
{
"Action": "EditData",
"Target": "Mods/CJBok.CheatsMenu/Warps",
"Entries": {
"{{ModId}}_PufferVillage_MayorHouse": {
"Id": "{{ModId}}_PufferVillage_MayorHouse",
"SectionId": "{{ModId}}_PufferVillage",
"DisplayName": "{{i18n: warps.mayor-house}}",
"Location": "{{ModId}}_PufferVillage",
"Tile": "16, 32"
}
}
}
I've made an entry in Data/Quests but I'm wondering how to trigger the quest? I know there's AddQuest as a trigger action, but I'm not quite sure how to use it
you can of course add quests anywhere that supports running trigger actions, like even inside dialogue, but mail is the most used method (and familiar to a mod user)
(quests listed in the "next quests" part of the quest data are also automatically triggered once the initial quest is completed)
(if that is relevant to you)
Yep I saw that on the wiki, useful to know 
Just made (technically tweaked someone else's) CP mod
i'm officially a modder
Prismatic Tools has a prismatic sprinkler so I added compat to Upgrade Sprinklers, very simple lol
Makes me want to get into modding fr tho
I am completely lost on how to make a custom map using Tiled in 2025, are there any recommended tutorials that aren't too old? 
Oh yeah I looked there! I even figured out how to unpack xnb files into png files but theres nowhere that explains how to turn files into TMX files? ;v;
!unpack you should be following these instructions to unpack, not converting xnb files
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!
the unpacked game folder has tmx files in it
good luck!
Another question how do I edit TMX files so I can draw my map? ;v;
I want to give the player an item from my mod. I add the item via CP. I want to use C# to give them the item. I'm currently creating a new StardewValley.Object and then using Game1.player.addItemByMenuIfNecessary to give it to them. Is this what I should be doing or is there a better way. I know the ItemRegistry is recommended for creating objects, but my object doesn't exist in there (should it?) so I can't use it.
!tiled
If you want to make mods that add or edit maps:
-
Use Tiled to edit .tmx or .tbin files.
-
Refer to the Maps wiki page for details on how maps work in Stardew Valley.
-
Content Patcher allows you to create custom locations through editing Data/Locations
-
Vanilla Maps can be edited via Content Patcher as well: EditMap
wdym doesn't exist, is it a fancy custom type that's not (O) or (BC) or etc.
no, it's just a plain old (O) object of my own, but if I print out everything in the ItemRegistry, it's not there and if I ItemRegistry.GetDataOrErrorItem(POINTER_ID) (qualified id or not) then all I get is an error item
why is it not in Data/Objects
that's a very good question... since this is how I add it
"Target": "Data/Objects",
"Entries": {
"{{ModId}}_Pointer": ```
creating a new StardewValley.Object works great... I just remember hearing that's not preferred for some reason
... gotta love Nexus
Perfect blur
But you know what your object is gonna be so
right, I was asking because I'm confused why ItemRegistry would not work if it's a plain object
ItemRegistry.Create is for when you don't really know what the type is gonna be
But i usually use it anyways since it's convenient
related, then, how do I get the metadata about the object? because GetDataOrErrorItem is just giving my code an error item's data
Why is your item cursed
yes
Can u patch export Data/Objects
it's there... one sec... I am
at something here
nope, still cursed
patch export found pneuma163.worldnavigatorcp_Pointer
ItemRegistry.GetDataOrErrorItem("pneuma163.worldnavigatorcp_Pointer") gives an error item's data
Try putting in the qualifier
ItemRegistry.GetDataOrErrorItem("(O)pneuma163.worldnavigatorcp_Pointer") is the same, error items data
I just want the metadata for this thing so I can use its data for stuff rather than hard code things in other roundabout ways
But StardewValley.Object p = new("pneuma163.worldnavigatorcp_Pointer", 1); is what does work for getting the object itself. I just can't retrieve data about it programmatically. It's my own object so I obviously have control over it, but this seems weird that this other stuff isn't working.
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 Unix 5.15.0.139, with 25 C# mods and 3 content packs.
The WN: ??? line is just printing the description of the item created via the new Object... and that's the correct string
Hmm, when do you first request the object
typically as requested by the user during game play. In this case I'm writing this in the game launched event
CP edits, at earliest, two ticks after gamelauncyex
I see...
lemme be smart and move this.. yeah
(Your logging appears before the line from CP about editing)
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Unix 5.15.0.139, with 25 C# mods and 3 content packs.
You sure?
ignore that
lol - I left the game launched code in an looked at that before scrolling down my log...
That log was in the middle of a bunch of api requests 😛
thank you for teaching me that CP does stuff two ticks after game launched... now it seems I can actually do what I wanted to do
I'm still struggling a bit? The wiki says for adding custom tilesheets to place a png next to the tmx file and then add it as a new tile but whenever I import it as a new tile nothing appears???
WAIT NVM IM DUMB
I figured out the issue gsdasghd
oh? i was under the impression ItemRegistry.Create() was the recommended way of getting new instances of any object/item type.
oh goodness the ui drawing code is a mess of inlined constant offsets 😔
oh me oh my
Is it possible to not have a time limit on a special order?
not without mods, no
Ahh okee
there's two or three different ones that allow it, though i don't know them
yea it is, i was saying that in cam's specific case it's probably fiiiiine
the nice things about ItemRegistry.Create is mainly the arbitrary type handling plus the error items to let u know something went wrong
Well I'm trying to make a quest where you gather resources to fix the minecart system. What would the best way be? I thought it would be a special order lol
it's possible to have unlimited and cancellable special orders in the vanilla game in the upcoming 1.6.16 update, though:
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6.16#Special_order_changes
Oh no, that's perfect haha
(remember, no ETA though, so you'll likely want to either omit the feature or use a stopgap solution in the meantime)
I don't think a regular quest is doable for this?
With an ItemDelivery quest, can you only deliver one item or can you do multiple?
Just every expansion 
ItemDelivery quests take one-or-more of a single item, per the wiki:
<NPC> <Item Id> [Count]
where [] marks optional fields, and <> required
https://stardewvalleywiki.com/Modding:Quest_data
Always thought it's a bit of a shame that 6480's cat portrait only appears for three days per year, so I put her in Central Station, at least.
Oh the handsome sailor cat
I was concerned that was the case. What would be the best way of doing a quest delivering several items?
Special orders
Just require this mod only if you don't have SVE/ES/VMV/SBV/etc
Do those other mods have it built in?
Yeah it's a feature people keep making again
guilty as charged
Is it possible with CP alone?
nope
I think we already said no
I'm trying to avoid too many dependencies y'see
if it were, you wouldn't see every expansion doing their own implementation plus several mods for the same feature
hence the last 5 minutes haha
Oh! That's a good idea. I'm already using UB, so I will use that instead
But yeah my joke was
Implement ur cp to be false dependent on all the other big expansions with this feature
you don't necessarily need to compromise, though. if you're not planning to release anytime soon you can just omit the special order entirely until it's supported
Surely the player will have one of em
alternatively just use the Unlimited Special Orders mod until it is, since it's literally exactly what you need and can likely be cleanly removed when the feature is supported
That's a good idea also. Thanks all c:
if we lived in a good and caring world then every major expansion would've just used that instead of their own bespoke workarounds, but here we are in this cruel earth
or like, the base game could've just included some more sensible way than having to list TwoWeeks as a duration value. but that's neither here nor there
it is, after all, not actually needed in the base game at all
Is this: "Event.cs.1025": "That was a beautiful ceremony. Congratulations!$h", some kind of leftover dialogue for Lewis from previous versions?
Cause it seems he just uses his married dialogue, not StringsFromCSFiles
Well, CT dialogue takes over event end dialogue
That will be visible though after your third wedding
clearly my man is being sarcastic
Noted
"That's a gorgeous ceremony, @! Pity none of the town is here because you divorced all of them"
silly mod idea
If you divorce someone, their friends and family freezes you out
Would be fun to see a ghost town after that 
Except for Wizard... he doesn't care probably 
You try to buy something and Pierre refuses to sell to you
Oh, you divorced him too
just like Caroline, huh
Finally found how to add dynamically generated mails to the game during gameplay (so new mails that are randomly generated instead of static pre-made ones)
they key is to reset the cache before sending the mail
...
PendingMails[mailId] = mailContent;
_modEntry.ResetMailCache();
// Add mail to mailbox
Game1.player.mailbox.Add(mailId);
Game1.player.mailReceived.Add(mailId);
...
so that OnAssetRequested gets called:
{
if (e.NameWithoutLocale.IsEquivalentTo("Data/Mail"))
{
this.Monitor.Log("receivin request to mail asset", LogLevel.Info);
e.Edit(asset =>
{
this.Monitor.Log("adding asset", LogLevel.Info);
var editor = asset.AsDictionary<string, string>();
foreach (var mail in _trialManager.PendingMails)
{
editor.Data[mail.Key] = mail.Value;
}
this.Monitor.Log($"{editor}", LogLevel.Info);
});
}
}```
Idk why but without resetting the chache it doesnt gets called. kind of weird, had to make ModEntry public and change/interconnect quite a few stuff
but it works 😄
if nothing invalidates the cache for a particular asset, then the next time it is requested, the content manager returns the copy from the cache instead of reading the data files again
before i do anything dum theres no gsq for IS_DAY_TIME IS_GETTING dark etc right
which respects the season/location's getting dark times
@boreal pulsar to be more explicit, your OnAssetRequested does not fire if the asset is served from cache
mh so is this the correct procedure?
yeah, pretty much. if you have new data to add to an asset, it's normal to invalidate the cache on it
Minor asterisk, per content manager.
Game1.content and GameContentHelper have independant caches and you could load from one, cause AssetRequested to fire, and then a tick later load from GameContentHelper and AssetRequested will fire a second time
InvalidateCache however will clear from all content managers and the vanilla asset propagation (for non textures / maps) would only cause Game1.content to get repopulated
interesting. feeling good in that case about my lazy policy of always using Game1.content
In general Game1.content is always the correct answer
is npc.isDivorcedFrom() forever or npc will forget it after a time?
dark shrine of memory
i think it just checks relationship status, so presumably dark shrine and/or remarrying them would change the result
There's also another fun quirk, in that if an asset is requested multiple times in the same game tick, SMAPI will just reuse the results of the AssetRequested event, and call the Load/Edit method delegates the N times needed
....fun
Why
Let's say in four separate mods, in game launched
I regksrer my event handlee
Then I call invalidate
Same asset
Ehat haopens
mhh I guess adding dynamically generated quests will be very similar to adding dynamically generated mails
im losing to map wide screenshots what r they
Fun
A map wide screenshot simply starts at the top left corner
Sets the viewport to 2048x2048
Renders everything to a render texture
Then grabs that
Then moves the viewport one tile
Renders again
Grabs that,
Repeat until entire map
i get that somewhat but im too eepy to math how to math the coords to make tiling texture still work
Is there a reason for GameContentHelper to exist at all then?
i havent found a real usecase yet, but you can load different class to same target
You can do that with Game1.content too
can u tho, it just explodes for me
Really? That's odd. I looked at it in ILSpy and it seemed like that would work fine
No, it has type checks for the cache
I think you can also get game1.content to make you a temporary though
what i attempted to do is that
- i have a shared project that adds a new custom asset to a target specified by the caller
- i have 2 mods using this shared project, so they have classes that are identical shape but ultimately different classes from different assemblies
- i tried to load dynamic using the other mod's target with Game1.content, no go
- i switched to helper.GameContent, it's alright now
but ofc theres not much practical reason cus they r still different classes 
Did you use the DataType from the event or just hardcode the load method?
No I mean for the thing providing the asset in assetrequested
nop
wouldnt that still cause a problem when both mods are installed 
it would have become cached to one version or another of the datatype no?
Oh dynamic specifically might break the type checking on the cache since it's usually treated as object. I'll have to take another look at how it works layer
It can cache multiple of the same asset with different data types
Then it'll just give you whichever one you ask for
if i wanna post a screenshot of the ui stuff i did i need to post it in #images-and-memes and link/forward here, right?
Yeah until you have higher rank
i thought image permissions were loosened in the mod making channels
but that might be my memory making it up
lemme try
oo look it works !!
anyways is there a smaller font than game1.smallfont
What does that measure? Friendship change over the day?
nah it collects friendship gained over the maximum and shows it as a number that keeps going up forever
itll be hidden at 0 hearts when im not testing the ui
+2147483647 ❤️
ah not quite
i wonder how many years it'd take assuming u did everything optimal
and no stardrop tea
Should go with uint64
roughly long.MaxValue / 250
i suppose i could do unsigned. not much reason not to
changing it to ulong brb
is this the correct way of writing item IDs? Im used to having [454] ingame but from what I see in code its (O)454 ?
girlllll i think even w stardrop tea itd be impossible to get to ~2^64
What type of item is it?
ancient fruit
but u can give infinite number of these
Then yes use (O) since it's a regular item
alr thanks
what are non regular items? tools/weapons?
ig its closer to 2^56 hearts but still
Big craftables, weapons, boots, rings, furniture, wallpaper, flooring (not the placeable kind), trinkets, tools
I believe [[Modding:Items]] explains qualified ids
Sorry, forgot to @, see above
tbh I don't know
(where are you writing that data though bc that looks like quest data but it should be a slash delimited string)
Thanks!
ok yes now that ive changed it to ulong the maximum number of extra hearts is +73786976294838207 ❤️
Still not enough
Not enough to express my love for lacey /jk
i think it will overflow the ui either way
speaking of
is there a smaller font
or should i just lower the scale on game1.smallfont
Lower scale is the only way
okii
for numbers only theres a tiny font, and tiny digits (which is what item uses)
the digits r not fonts they r just sprites
does it have +
no
hmmm maybe thats a better idea?
you can do what the game likes to do and just draw Game1.staminaRect in a cross shaped pattern real small
yea valid 
Staminarect my beloved
how do i use this special digit font that is not a font
Why are you so weirdly sized
wait is it not a single pixel 
No it is not
Utility.drawTinyDigits
I don't recall the exact dimensions but it is much taller than it is wide
they come from somewhere on cursors
it should be just a single pixel tho
Oh they must've changed it!
you have decomp repo access dont you
i wasnt aware it was ever anything but a single pixel
i did tho i dont use it much
I remember drawing it in 1.5 with the sb overload that just draws the whole image and being surprised that it wasn't a single pixel
But maybe I'm misremembering
takes an int i guess im writing my own 🎉
oh also i switched from ulong to BigInteger bc why not yk
modding is about having fun
this mods faq:
q: "what is the maximum hearts i can get w this mod?"
a: "how much memory do you have"
Does stardew package Numerics?
If not then you probably shouldn't use BigInteger
Oh it does package Numerics, nvm
are the fire sprites in Tilesheets/animations.png the only fire? i'm trying to put a TAS in an event that's a bonfire on the beach and hoping to use already existing assets, but i'm not sure if these look right--they almost seem to be a different scale
theres another fire on tilesheets/animations
the cursors fire is used with fireplaces
let me check those, thanks
i swear i looked in cursors but it must be too big, i get lost XD
you should know better than to question the almighty 
it shouldn't be a problem when i define the texture, right? since it goes by pixel?
your sprite will be whatever source rect you give so should be fine if you define it
awesome
is there a better way to add light/glow during an event than doing a map patch/temporary map change?
you can use the addLantern command and then removeTemporarySprites I think
idk if that rly counts as better tho
the digits looked bad so i edited them im using these things now
wow discord cannot display that lol
bonus benefit to using my own i can just add a + to the texture
I have a question
How do i edit a entry within the location data for a vanilla map
wait i figured it out
I made a vanilla map that is usually not pathable for npcs pathable
I just edited the crops xnb file in data. I intended to edit the crop season. After I tried it, why did the game crash? I'm sure I edited it according to the format
!xnb
XNB mods often break the game and are not recommended. See:
- using XNB mods for more info and a list of Content Patcher alternatives;
- reset your content files to fix problems caused by XNB mods.
For mod creators, see editing XNB files for help unpacking & editing them (including for use with Content Patcher).
heloo just a quick question; there isn't any difference between NPC's when it comes to what chores they perform after marriage right? Like, its only calculated on random and friendship levels but its the same for everyone
@brave fable Hello, thought of asking.
There's this daystarted error going around that blocks you from getting the book. You know which one, am not here to ask about that. Since I know your working on an update.
Can we get a compatibility with "Item Bags". Just the ability to use the items in the bags while cooking, while you finish polishing that bug. It's one of the many late game inconveniences I have.
If you plz.
yeah there's no difference, yo ucan change the dialogue if you know which strings they are though
i take it including assets directly in c# mod dlls via embedded resources is discouraged or doesn't work?
I mean if u handle the reading of stuff yourself i don't see why not
But i don't think smapi helpers are setup to use those
Im just remaking this entire mechanic and wanted to know if there are already any variables to go off of, but in that case Im just gonna define my own for each character
Yeah consider opening a custom asset
So that ppl can edit in their own info for their NPCs
yepp Im gonna make a class that basically extends the information and functionalities of NPC's and reads them from file when they become spouse
so customizing a new NPC should be as easy as just making such a file for them, however given the nature of the mod to properly work they would need to have a whole set of specific animations Im gonna include
now that I think of it compability would require contact with me since my mod is gonna make them do things they never do in game, so I will have to whitelist spouses it will even activate for
Tbh for maps and even images, not having the helpers to get the correct data structures would be kinda annoying.
And anything else why bother even having it as an asset
oh oki, i figured it was discouraged since i haven't seen mods using it 😅
I haven't seen it because I don't know why you would even want to, seems like extra effort
Even in winforms it was kinda annoying accessing embedded resources.
Only times I bothered was to have a clean portable executable, but for a smapi mod why bother, the manifest.json has to be there anyway
i think im still just used to bepinex modding where the entire mod is the dll file and avoiding having any separate files means users who have no idea what they're doing are less likely to mess things up
ik my smapi mod wouldn't be loaded w/o its manifest anyways though
so i should prolly just leave it
you need 100 of them then
what could i possibly use those for
oh i suppose i could split it up into individual images for each sprite
since those 39×5 pixels are really 13 3×5 sprites
that only gets me to 13 images though
and that sounds like itd be a huge pain to deal with........
waowww good idea
also i will have you know i did not end up drawing the + with staminarect, my font.png has a + character!!!
and a - and a × hehehe
- only shows up if someone corrupts their save data i think lmao
Rmbr to make the color configurable
Depends on what ui interface mod is used
There is a mod that just let ppl set thosw colors tho
Iirc most of my schedule debugger mod was me just drawing with a 1x1 pixel
Which is how data layers did it iirc
Clearly just encode your texture as a binary number and make it at runtime
thoughts on the code in general? https://github.com/Esper89/StardewValley-HeartsOverflow
Terrorfy 1 line transpiler 
Would you say it makes sense to limit map and asset loading just for the wedding day?
And if yes, why does the game seems to randomly find or not find the map even if I don't change anything 
hi! I'm trying to add a new ore to the game using Content Patcher. I already have the ore and bar items, but i don't know how to melt the ore into bars. Could someone please help me? (sorry for any english mistakes)
There's no point in doing that
Your load runs when it's needed
Though hm if ur event is happening on some kind of permanent but hidden location would it load all the time 
I'm assuming temp map is as advertised
!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!
Take a look at Data/Machines
ok, thank you! ❤️
Yeah.. I was going with that approach 😅 Not sure how temp maps work exactly...
Where can I find an example of temp maps being used? 
Ik the command is changeToTemporaryMap
Doesn't it still need the map to be loaded normally and have Data/Locations?
Or at least that was it seemed like when I tried it before
Oh yeah nomori what did u do about the arches
it creates a new location from scratch with the name "temporary"
you can't apply location data to it, and it's always either GameLocation or Town
worth noting festivals do this too
temp actor for now
Power...
if you want to use a real location with actual location data, you have to use changeLocation instead I think
@analog flower was looking into how to utilize the cursors wedding arch too
Instead copying arch to tilesheet
That's what I'm doing now, but Temp would probably be better
Gotta find a mod that does it and see how it works in practice
Oh? That'd be neat
The theory is several temporaryAnimatedSprite that essentially does specificTemporarySprite wedding
But at a custom position
i haven't messed with it yet but my gut says it wont work 😆 currently i just yoinked it from cursors into one of my custom tilesheets, but if i can get it to work with TAS ill let you nomori 
you just give it the map name and warp coords IIRC, and then the game does some hackery to paste you into a fake non-persistent location with the given map
it doesn't actually use the warp functions, because those draw from the game's persistent location list, instead it just directly changes the player's location and position, along with some other housekeeping stuff
im looking at airyn's custom wedding ceremony to get me through this because the wiki is very vague unfortunately, so if you havent seen it it could be a good reference https://www.nexusmods.com/stardewvalley/mods/29885
Now that I think about it, it'd probably be better to make the arch part of the map instead of temp actor (if not using the one in cursors)... buut oh well, I'm too lazy to change 😅
@finite ginkgo thanks for the PR! You can kinda tell how active I am...not at the moment because it took three days for me to realize it existed. Would it be easier to transfer that part of the code to you? Otherwise, I'll get it merged post haste
I can also straight add you to my repo since I'm apparently just into doing things like that
Sigh
I also meant to knit Elizabeth socks but lol that ain't happening
if i changed the category for a recipe how do i make it so that the player can obtain it again ?
i.e. I have a recipe that I incorrectly tagged as 'cooking' (with category of -7) and i changed it to 'crafting' with a category of 0, but if the player already bought the recipe it doesnt show up in their crafting tab
Use a trigger action to unlearn the recipe i think?
Finished... finally 
conditionally? I don't want to continuously have people unlearn the recipes ... (im really just trying to fix this bug so i can ... not do mod stuff for a while so sorry if I seem confused or anything my brain is a bit muddy lol)
trigger actions only run once by default and there's separate actions for cooking and craftinh recipes
MarkCraftingRecipeKnown
I would still try unlearning the cooking one
And there's GSQ for checking cooking known right
ohhh thank you thank you
As knowing it may have perfection implications
Especially if they've already cooked it
So yeah if cooking known, unlearn cooking learn crafting mark as applied
No they couldnt cook it
because it had a crafting recipe not a cooking recipe, but it showed up in the cooking tab
(there was a discussion about it a couple? of days ago)
my cat just decided to hang out with trashbear 
Test save default tabby cat gang
default orange cat and default male farmer with red shirt, name a more iconic duo
Demetrius and the 25k in my bank
i always change to cat 2, even for throwaway saves
I use an old save for testing FF, but that very close to what I have, this is scary (green shirt instead of red)
should I make it easy for myself and use NetInts or use NetBytes for small values?
...what are you doing
well the question is if its even worth optimizing it down to bytes since its gonna get converted back and forth every time I perform calculations
actually using NetWhatevers that aren't already in place is fraught with peril
huuh
anyway it's almost certainly not worth optimizing a few bytes away unless you're like, rewriting the network protocol or something where even a tiny gain would reap huge dividends
hm well that answers that question but this raises more
would you mind elaborating on that?
in order for a NetThing to actually get synced by the whatever-it-is that syncs them, it has to be in the hierarchy below a NetRoot that the game knows about and does syncing on
i think there might only be one of those. like WorldNetRoot or something i don't remember too clearly
i'm not sure how (or when) to add items to it, and i'm not sure if it breaks the save serializer if you do so without accounting for it
these are the sorts of perils i was talking about
do you absolutely need to use NetInts/NetBytes for what you're trying to do?
To get around that the next UB update will store tons of bundle data in a fake location context 
big optimization
To expand further - my personal opinion is that this level of optimization is an unwarranted obsession 99% of the time
I've seen too many examples of modders obsessing over nanoseconds when there are much more glaring oversights in their approach to things that make a much bigger difference
There's a root for the world state, and then another for each farmer, as well as one for the team and one for each location.
Multiplayer.updateRoots
I'm not sure how the game knows which roots are which
Hey just @ me next time there isn't any need to talk about me behind my back /j
my friend started modded, she has a Y3 gameplay Vanilla. Would she corrupt her save if she added all the expansions?
i have a list i gave her
the people in #modded-stardew might know more but i believe SVE is recommended to be added to a new save
Thanks for the fast answer ! Will do
for somebody who has 0 experience with coding, where should be a good start to learn and understand some basics of making a mod?
!startmodding depends on what you’re trying to do—content patcher mods are easier for someone with no experience than C# mods
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.
so to be specific, I would like to make a portrait mod that can change any vendor NPCs portrait in their shop window
in HD
that’s doable with content patcher then, but you’ll need to use the portraiture framework
Naw u can use spacecore for this, probably easier
oh! i stand corrected
spacechase0.SpaceCore/TextureOverrides
Use SourceSizeOverride
that's the approach I wanted to take yes
Before we get to all that though, it's best to learn about content patcher usage
Follow the tutorial first
I'm gonna need some time to get familiar with the usage of content patcher, these are all new to me
hey? is it ok to link the thread i made for help on a new project im working on to here?
sure
it's mostly for art but since i plan to make this a content patcher mod and not a replacement some help on that would be good too
bit rusty with content patcher cause i've been busy attending a special needs day program
Anyone has a layout for Frontier map that is good ?
too tired of making mine lol
for other saves
hey there, this channel is generally intended for code/content discussion for making your own mod. for questions about modded gameplay like this, its best to ask in #modded-stardew !
no worries!
I feel like I'm beating my head against a wall. I've tried searches, but my Google-fu is failing me. I've tried reading through my favorite character mods. I feel like I'm missing something outrageously stupid. Maybe I'm just tired from staring at it for so long. Can anyone help me, for lack of a better term, nest questions?
For example:
Sebastian: What's your favorite color?
Farmer: Blue / Red / Green
Sebastian: What kind of blue? / I hate red. / Of course a farmer likes green.
Farmer: Blue like the ocean. / Blue like the sky. / Blue like a bird.
Sebastian: I get that. / The sky can be different shades of blue. / NULL
Farmer: Midnight blue. / Rainy blue. / Cloudless blue.
Is this events or daily dialogue
I really didn't want it to be an event. I'm already writing plenty of those. I just wanted it to be regular dialogue.
I feel like that's probably going to be my answer. If I want something more "complicated" I'm going to have to make an event, aren't I?
No it's not the answer at all
I ask only to know what docs to link lol
I believe you need to make the response key(s) also a question
I wasn't being snarky or anything. I'm just very tired. Had a lot of family medical stuff the past few weeks and instead of sleeping I've been staring at this as my escape.
That.... Didn't occur to me.
Take a look at the dialogue commands
There's an example right under that section that might help!
Bless you guys. I'll give that a go. ❤️
Also, if anyone feels comfortable with editing the wiki, I found a typo:
aba specifically has a tutorial for nested questions, let me find it!
am I overlooking something or do every FS body/sleeve/pants really need to include all possible farmer animations for them to show up?
even the sleeve template file has mistakes...
I am happy to announce that all of the red "these docs should be merged" headings from the "migrate to 1.6" page are now green
Well I was already on a wiki-editing spree, so this is fixed now
all that's left now is the 1.6.9 migration page but that shall be for another day
you’re doing the lord’s work out here
Thankfully the migration page is very well-formatted and written, and except for the last few things that i procrastinated until today because they were more complex, a lot of it is just careful copy/paste
My migration editing has not gone further back than the 1.5.5 migration guide, so if stuff is lost from before then I will sadly not be the one to notice it
(just in case VMV doesn't have untimed special orders, i'm waiting for the next update for it to be vanilla)
(i assumed it did bc atra and im sorry for stereotyping)
(it's ok! atra would likely have done it if i needed it, but it wasn't much the case back then)
I went and got dinner. Came back to look at it fresh. And this was exactly the answer I've been looking for. I feel like such an idiot. I fixed the whole dialogue issue in less than five minutes using this and I've been beating my head for days.
When in doubt simply ask 
sometimes a break is all you need!
i only knew of that tutorial’s existence because i was using it last night lol
The multiplayer stack has a reference to all the netroots so it can update them and when receiving packets over the wire update the correct one accordingly.
The rest of the game doesn't particularly care what netroot it's attached to, with mild exception to the location netroots due to how they are only selectively synchronised
Each netroot mostly has a dedicated packet type associated with them, though the farmer netroots share one, with a header saying which. Similar story for location
In one of my stashes was work for a smapi addition to have smapi manage a netroot per mod and smapi would do a similar job to vanilla in keeping them synchronised, as there's a bunch of scenarios where doing events back and forth is inefficient unless you also bake in your own diffing and caching systems on top, which the netcode infra does for you.
And adding net types on existing data structures has multiplayer compatibility issues if players are running different mods or different versions, if host says an object has 4 net things and a client says 3, that client will be violently disconnected/crashed with a cryptic error that's not fun to troubleshoot
I tried to add more netfields to LightSource one time it went terribly
Otoh game let me add as many netfields as i wanted for Companion
(and mods themselves shouldn't try to directly create and manage netroots themselves unless they are doing it on top of smapi events as there can only be a max 255 packets, vanilla uses like 30 or so and smapis using 4 or so)
Say sinz do u know how setMapTile is sync'd (or not)
Ah i see
I wanted to make some kind of setmaptile trigger action
maybe i just queue them to apply when player actually visits the location next time
In general with the map, stardew relies on the clients independently doing the same mutations (eg shortcuts, Pam house, joja/cc, island, bridge, etc)
So for farmhands going to a non-active location, they will have a new GameLocation instance every time they warp
Though there is a central multiplayer map cache to prevent unneeded loads to the underlying map asset (which is semi redundant with how smapi already does a cache but whatever)
Do those have the same nameoruniquename
Yeah the host sends that over
Hm maybe i need to change the tile data cache thing to a dict on that then
I was using a CWT
I have thing to cache certain tile data so I don't have to iterate whole location every warp
Is there any way to add function to a furniture piece? Like can I make a piece of furniture that plays Junimo Kart when interracted with?
You can add tileaction to furniture with one of calcifer spacecore mmap
I don't think junimokart is a tileaction though
GameLocation.MakeMapModifications() is the 'blessed' timing to do these modifications (which is what Unlockable Bundles also uses)
and is the front door to vanillas mutations.
SMAPI will call it with force: true during propagation when the map gets reset
But at that point just give the home arcade machine as a prize
Ahh okee, thanks Chu
appliedMapOverrides is also in the multiplayer cache, so despite being a new GameLocation every time, that is preserved (see: GameLocation.StoreCachedMultiplayerMap / GameLocation.ApplyCachedMultiplayerMap)
Hm but what if i wanted to do something like
- player press button (tileaction)
- the button tile changes to the "pressed" visual immediately
What would be involved in making a mod for a minigame?
Like competing with Sebastian at throwing things at the side of the mountain?
Like ker-plunk watching a thrown octopus bounce down. Try to land it on Linus's tent.
Or maybe a minigame that's a little kinder, I suppose ... sigh
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.
Vanilla pretty much always has two flows, 1 for the immediate action of doing it (and the game has various flavors on how to synchronize that initial hit), and then second is the persistence of it is managed by MakeMapModifications.
Forest for example uses a netbool 'stumpFixed' which is also in the save file with a fieldChangeEvent registered to call the mutation code
but if you don't handle the persistence case, it just takes another mod deciding to do a OnTimeChange map edit, and your mutations are gone
(and without my SpeedySolutions mod, Town is completely unloaded every time you leave it so leaving and coming back for host needs the persistence case)

I think no persistence is actually the desire here
EditMap covers the persistent usecase pretty good
hope no one wants to change a map property after your trigger action
Oh i have a bunch of spaget to update the cache on these things
The SMAPI code that powers EditMap is based off MakeMapModification, bugs/inefficiencies and all
I don't really have any way to track ppl just grabbing the raw tile and editing Properties afaik
But since i plan on doing that myself i can just tell myself to update the cache
can LocalTokens be used for an Array/List?
they are functionally identical to any other token, and would be a comma seperated string of values
(Two new event changes in the upcoming Stardew Valley 1.6.16:
- The event key format is now consistent for numeric vs string IDs. Content Patcher will probably need to rewrite older content packs with numeric event IDs so they don't break. This was needed to support the next one:
- Most hardcoded events have been moved into data, so content packs can now edit those too.
See the mod author migration guide for more info.)
whoa this is huge!
fork deprecated? omg
(Forking still works fine, but all vanilla events use the new label approach in 1.6.16+.)
oh, i must have misunderstood
just when I was getting used to switchEvent u_u
/aff ofcourse its cool to see things being made easier/done with more support :3
if a mod file has multiple mod manifests, should I leave the updatekey on one of them blank or keep it on both and make sure the version always matches?
I guess I'm overthinking it
either works
leaving them blank do make them show up in the log as "mods without update keys", but a workaround is to use Nexus:???
personally i like them both having the same updatekey and keeping their versions in sync
it makes sense to me if they go together and should reasonably be the same version
and if a user somehow updates one but not the other by mistake it'd alert them to it
I have a question about the "Action PlayEvent" property for maps (https://stardewvalleywiki.com/Modding:Maps)... how can I prevent the event from playing outside of triggering the action by touch, without specifying event conditions that always evaluate false (I want to check a condition as part of the action so it needs to sometime be true)
maybe u can do it with the SC trigger action route?
the event doesnt need to be in an actual location, does it? since you're giving it an id
cant you just put the event somewhere the player will never go and give it preconditions
(This is what vwv does)
if I do that will it correctly play in the location the player is in when triggered, or will it play in the location the event is registered in?
I thought Action PlayEvent set it so you had to have the event on the map
Anyways, vmv just uses the tile precondition
it uses Game1.PlayEvent, which will try the current location first and then loop thru all locations
(so you'd need to do a changeLocation, presumably)
OK I'll try the tile method first and then look at that method as a backup, thank you.
Huh, okay, but if it loops through all locations you need a valid location
i do think the tile one is better ofc i just didnt know that existed when i said the other way
but there is a GSQ precondition too iirc so you can just put the event literally anywhere else and make the GSQ check their location
(i am also curious, if you conditionally patched in the event with a CP update rate of LocationChanged, would it be patched in before the game checks for events in the current location, or too late?)
Q: is it better for an npc's internal name to be like MelissaRK or {{ModId}}_Melissa? with RK being like, an author abbreviation
modid is always best
only thing is, writing out {{ModId}}_Melissa in events sounds like a PITA though
its guaranteed to be unique
if u do {{ModId}}_Melissa it work with lookup anything
you can make a dynamic token called {{Mel}} if you want whose value is {{ModId}}_Melissa
when in doubt it is always better for something to use ModId if its capable of doing so
The tile trick seems to work, thank you. It does look like I'll need to specify all 9 touching tiles since you can 'activate' it from 1 tile away, and if I'm not right on the spot it does the fallback event.
patching the vanilla world map... are there any working examples of a mod that does this? sbv patches its own map, so i can't reference that like i usually do 😔
i am not downloading a zip bomb to check how it does maps, but ill look at remapping
Data/WorldMap is your friend
i was looking at it, and i. i wanted to scream
Having a world map that is remotely extensible is a complex endevour
big ol dynamic texture
SVE probably isn't the ideal testbed as it has the luxury to mostly just nuke whatever
remapping is nice in that it does it for many other mods
so i see that for new areas, there's a base texture set... but what if i want to patch the vanilla world map with an image? do i just add a texture field or something or do i patch it differently? remapping project patches it in its own seperate thing
like remapping does this { //32 "LogName": "Remapping Aspen", "Action": "EditImage", "Target": "LooseSprites/map, LooseSprites/map_{{season}}", "FromFile": "assets/Tilesheets/Aspen_{{season}}.png", "ToArea": {"X": 90, "Y": 0, "Width": 111, "Height": 20}, "PatchMode": "Overlay", "When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": false, "HasMod: |contains=invatorzen.AspenCP": true } },
so do i have to do this too?
actually ill just try and see if it works
ah yeah thats what I was missing, the LooseSprites/Map(_Summer/_Fall/_Winter) edits where SVE replaces it, as they aren't in WorldMap but in "MapPatches"
that explains why none of the SVE ones seemed to specify a texture, all baked into the base texture
but I don't think a 1.6 native mod needs to touch LooseSprites/Map at all for WorldMap as a map area can do the overlays for you
@uncut viper Noticed BETAS has a trigger action action for player mod data, couple suggestions:
- Other mod data too - like per-save (probably only usable on the host unless you specifically workaround SMAPI limitations), or current game location (or maybe any, but obviously clients could only access current and farm)
- Content Patcher tokens for reading various types of mod data (and reading is more flexible than writing so might be more broadly accessible for clients than writing)
Suggested these to Pathos but he didn't seem up for it, so though I'd suggest it to you after I checked if any existing "CP extension" mods had anything like it
hrmmmm. okay. i am not sure if any mod does it the 1.6 way but ill look at the wiki and see
non 1.6 native mods that wanted world map changes would be directly editing LooseSprites/Map and then only using Data/WorldMap for the tooltip data
(I see you have GSQ/tokenizable string stuff for this but those aren't usable in cases where you can't use those)
say do u internally call them "trigger action action"
I intentionally call them that, yes
Since a trigger action has the "trigger" and the "actions"
Not entirely sure why Aspen needs the remapping team to do it, Aspen natively does world map edits
i been calling them "trigger action" which get used in "Data/TriggerActions" (plural) bc saying action twice hurts me
shrug
So just "actions" wouldn't be very clear (what about CP patch Actions?), and "trigger actions" is sorta more encompassing than just the "trigger action action" part
hmm, also edits LooseSprites/map when NPCMapLocations is loaded which seems odd as NPCMapLocations afaik uses vanilla 1.6 map
Felt weird to me at first too until I remembered there are other general english words that I do that with that makes sense (though the exact words are escaping me at the moment)
m so glad I decided to dive into modding SV, its so much fun
Also, to me that just means an individual entry in Data/TriggerActions and not the specific "actions" part of the entries
the other reason ig is cus i am think about tile and touch actions first
and then i go "ah yes they should be usable with trigger too
"
Hmm, I guess that makes sense. But those are more of a simple thing, while trigger actions are more of a composite thing (trigger, conditions, actions, etc.)
Again, at least in my head
not if i keep exposing other places where u can just plonk an action 
also trigger action actions can be used outside of a trigger action
I mean that won't stop me from saying "trigger action action" in the context of vanilla stuff 😛
yea i do agree its more lexical(?)
Is it a crime against english? Maybe (if not for those other words I can't think of at the moment). Do I care? Not really 😛
i did also try to convince button of moar tokens once
No more so than pin number
but in button's cmct which is the cp tokens mod instead of betas
Getting even more into #programmers-off-topic , but shoutout to windows "pin numbers" which aren't strictly numbers
CMCT is more about interacting with other mods though?
Also putting the reading in CMCT but the writing in BETAS would just mean you have to have two dependencies to really use them
Unless you're just doing one way communication with another mod's data
Hmm I wonder if theres just some NPCMapLocation or vanilla bug with WorldMapAreaData.Textures that has made no mod actually use it
...I have vague recollections of some oddity there when experimenting with early versions of it (like, "1.6 modding alpha" level early) for Moon Misadventures
the only mod in my collection using it is Aspen, but then it edits LooseSprite/Maps anyway
and other mods populating stuff into EastScape patch EastScarps map texture via CP
Yeah but your average clueless idiot isn't gonna know what an "authentication code" is
And if you call it a one time password, they might think it replaces their actual password
Meanwhile just about everyone has a debit or credit card these days
I'm talking about my login password for my desktop which is just a normal password
yea i dont think it make difference in the end 
They call that a PIN now?
both button mods anyways
(And also not secure whatsoever, it's literally "keep family passing by out of it" levels secure)
You can log in with your windows account password, but if you set a local only password it's a pin
Weird
I admit I haven't actually looked at the login screen in years, I just press space to focus the password input and type it out
It's all muscle memory now
Looks like by default it's normally just numbers, but you can configure it for to include other characters (which I guess I've always done since they've introduced it)
Same here, but somehow I remember this shrug
local device pin can get away with being less secure than a real password due to no distributed attacks being possible.
and having a convenient but still semi secure auth mechanism keeps people from having no auth mechanism
Oh weird maybe I have some legacy option then, bc I never had to change that and I circumvented the ms account thing entirely
I think I did too, but I vaguely recall seeing it called a PIN on my login screen despite never paying attention
Or maybe it's because I installed it with a local-only account
it does kind of bother me that vanilla only has gsq for player mod data, and only gsq for location custom fields
Also I think I heard recently that it doesn't allow initial set up without a local account. Sounds crazy and probasbly wrong in the strictest sense, but I wouldn't be surprised if they added a bunch more hoops to doing it
Actually I might not have a local account seeing as I have one drive setup and am pretty sure I never installed it otherwise
I definitely think local accounts are better
You still can, it's just more difficult to bypass
Yeah, it doesn't make sense to completely block it since some people might have internet during setup
Hence me not being surprised about them adding "a bunch more hoops to doing it"
(A security argument is a local account wont have bitlocker encryption keys being able to be backed up anywhere, a MS account can ensure you have an offsite backup to unfuck your drive)
Yeah but I don't need drive encryption lol
Also you can just do that manually if you care about the security
What are they going to do, steal my unfinished fanfics?
And you don't have to trust MS for it!
Yes, for training AI
considering all your browser cookies, session info, etc is all stored on disk...
being able to just unscrew the ssd, copy the juicy files and put the ssd back in means leaving a powered off laptop unattended for 5min is full pwn
Hi making mods
hello atravita
im looking at the mod ideas github to see if anyones made my "buy missing materials from robin" thing real 😔
Well, the current workaround is a bit longer than I expected... https://superuser.com/questions/1865263/is-it-possible-to-configure-a-pre-installed-windows-11-machine-with-a-local-acco
I'm trying to figure out why No one uses Data/WorldMap's texture overlay functionality except vanilla farms
nobody has
Better switch to off topic before we get bapped
Oh no, atra has spotted me outside of the off topic channel, I must flee!
No! This is your home!!!!
I have much more idea juice flowing for MC mods these days than SDV mods
that's high level ..... woah...
I modded MC way before SDV even came out
Stopped back in 1.8 I think, got tired of basically rewriting mods every major version
minecraft modding requires a level of autism i simply do not have, so i will never do it
as much as i want to update thaumcraft 😔
It's not that hard compared to C# SDV mods I feel like
i cant even do those LMAOOOO
You can do a lot more with just the modding APIs compared to SMAPI since they do a lot more
Well, there's always datapacks 😛
Is it possible to make a custom obelisk?
People do pretty crazy stuff with those these days
so true bestie
You can even make basic UIs (though not ones with item slots) as of the most recent snapshot
Easily!
You can set the "DefaultAction" of a building to do the teleporting
I'm sure there is a concept possible to effectively embed a core aspect of minecraft into stardew
There's a new ObeliskWarp action you can use
What do you mean?
can already place and remove blocks on a grid with a 9 wide toolbar
I've definitely had ideas to make SDV equivalents of some things (like modular tools, or something like Applied Energistics 1 which I even had a prototype for back pre-SDV-MP)
I feel like you'd have to do some serious interop hackery to get it to render in the same window though, since they're different platforms
I don't mean running java minecraft in stardew, I mean taking concepts of minecraft and putting them in stardew, though the lack of the third dimension limits some of it (though casey had a mod for that too)
As for MC mods... I have 15 sitting in my minecraft-modideas.txt at the moment, all to varying degrees of being fleshed out (with three having their own separate file). And one of them should probably be split into two
Only rendering was 3d, gameplay was still 2d 😔
For those who haven't seen, 3d stardew jumpscare incoming
I have many ideas, I just hate working with gradle and java
oh hell nah they got 3d stardew
Though recently I did start working on a fork of Create: Better Storage to port it to neoforge and 1.21.1
pulls up Stardew discord- AAAAA
Yeeeeeeeeah, that's the main thing stopping me right now.
If you've been paying attention to all my rambling in #programmers-off-topic you probably saw my tests with compiling C# to Java (which currently crashes in a hello world console app before printing, in a non-deterministic way featuring three possible errors)
(Moving to #programmers-off-topic )
If it wasn't for the fact I'm not a big fan of actually making content mods, I would love to have a BuildCraft/ThemalExpansion fluid and supply chain system.
I'd love to have piping from a keg to go into the casks, rather than having it already be in item form
I kinda want to go back to this but unfortunately I am unwilling to make 3d models of locations.
I did the farm cave, and later backwoods as shown there, for testing purposes, but that was on my old computer and I forgot to copy the content pack over. And I don't feel like doing that again
i wouldnt want to do it either lowkey
That does sound found, and a good idea if I ever get back into my automation mod for SDV
(The one with conveyor belts, there's a gif around here somewhere but I don't have that one favorited)
while I like automate, I don't like how... lack of infrastructure it requires
Want to be even more horrified?
Yes.
I got it working with a VR headset. (Mostly, one of the eyes wasn't aligned correctly or something so it was not pleasant to look at, to put it lightly)
NO...
Yes
you have skills and you're putting them to use for EVIL things
And I have proof
i love that. keep it up
you don't have to do anything and its full power is available out of the gate. i like it but it's too stronk
Okay there's something I said in krobus recently that sorta fits with this
oh krobus is still around? LMAO
Very inactive but yes
me looking at mekanism in minecraft going "huh i sure do like upgrading things to make them do the thing"
I think over half of the remaining activity isn't SDV, too
understandable tbh
Theres a reason my first mod was AutomateChests which required putting a hopper on any chest to be able to work in automate.
has a flaw that Fridges are also a chest and can also store anything so you can just use the fridge instead, but ah well
ok huge question since the coders are in chat: none of you do code comms, do you?
code comms?
nodnod
This is exactly what my mod was going to solve. And I didn't want to just have you wait until you unlock Hoppers since that's basically endgame (Qi special orders), so I was still trying to figure out how to balance that with progression
yeah i am looking at the wiki, but i know it can be out of date sometimes
and like 90% of the coders are on hiatus or havent made a mod in like a year
Anyways just pitch your idea
oh you already know my idea atra.
Mysterious. I have also not made a mod in a year
I think my most recent ideas for automation in SDV was for MMR 2.0 (since MMR was going to be sorta spaced along the entire game, not solely end game)
(MMR 1.0 never happened though, or even 0.1, so who knows at this point)
I do?
you already know how ive been yapping about interaction tweaks and the toggle for buying missing mats from robin 🤣
i posted it on the mod ideas github but i have no faith in the free market
i cant unpack the xnb, anyone know why?
In theory I'd consider it if people asked (if I was still SDV modding), but the problem is a reasonable rate for coding is hard.
Since I code SDV mods so fast, a per-hour price would probably be bad for me unless it was a much higher price than most people would do.
use StardewXNBHack instead
Also I'm just not SDV-ing at the moment, so there's taht
i only get nerdsnipped
well what about a base price and then a complexity price rather than a per hour rate, since you're a speed demon
I saw that I think (I still get emails for all stuff on that repo)
LMAO
i thankfully muted the notifs on it and only came back to add tags to stuff like a few days ago
tia reminded me it existed
In theory if I wasn't goop on the floor I could be nerdsniped
But I'm goop on the floor
what is "nerdsniped"
wait i googled it. this is an amazing term
That's been happening to me a lot lately, like the rabbithole for my nested browser tabs but horizontal the other day. I didn't do it because of the lack of documentation for non-WebExtension FF addons though. (Meaning it would take way too long for current attention span)
tbh if u just present ur idea here the outcome is like
- someone tells u no need C# sorry
- someone tells u <elaborate 4 framework setup to do what you want>
- someone adds it to their definitely not a person-core mod for u
The other problem is I'm not sure how to define what I'd be willing to work for, and also what would be reasonable
oh and ofc someone says "yea thats in spacecore/betas/etc"
I'm mostly happy in my Tooling space, and my side gig of Multiplayer mods
god i wish it was in spacecore
I want to mod rn but I have to restrain myself bc I'm very low energy atm and I tend to ignore my body when I get deep into it. Which is. Not good if I am recovering from an illness and do in fact need to listen to my body.
what do u want exactly 
chu
remember when you walked me through what to do to recreate it
I still think it's funny that the "person-core mod" thing started because of me making SpaceCore, and yet I only named it that because of my similar-purpose MC mod (which was named that way solely because of other people naming their core mods that way)
and update it to 1.6
Yes, you read that right - SDV person-core naming conventions come from MC modding
and i was like. haha yeah ill definitely do that! and then i didnt do it
oh we assigned it to @gentle rose \j
KEKW
trendsetterrrrrr
i actually think it's a good baby's first C# mod though
(also minecraft modding, CoreMod had special meaning as they got to load first or do bytecode patching or something)
FIRE, baby 😛
Totally understand. When I was doing the C#-to-Java thing I did it for 12 straight hours
you can ditch the ui aspect and just do the calculate and purchase material thing
sonic shoes was my baby's first c# mod and that was like 4 hours of just taking one line of pathos code
i wont even judge you for hardcoding prices
That was you?? I loved that mod
yes LMAO
It's hard not to be a trend setter when you've been in the community since the beginning. 😛
JA popularized content packs enough for SMAPI to support it rather than them needing to go in a folder in the framework mod's folder.
(Technically Advanced Location Loader existed first, but it wasn't really used much, hence JA "popularizing" it rather than "inventing" it)
i wanted to make the hermes boots on the mod ideas github so i did that
baby's first 1.6 c# mod lets say
i think i updated sonic shoes to 1.6 
i believe in u and rmbr u can just ask if u r stuc
I had to stop using it though because at the time the game could crash if you tried to load a save thumbnail wearing boots that were from an uninstalled mod
True (and yes mainly for bytecode patching). I was very much doing that, and also did some bytecode generating
oh no no no im not doing it chu i looked at it for like 2 hours and tapped out LMAO
dont look at the original elaborate mod
(
hi my discord client opened on this & I probably missed context, but) EMP does have some read-only CP tokens to complement BETAS' writes, if it helps
one token to output text from a Farm or current player modData key, and another to check whether keys exist
https://github.com/Esca-MMC/EscasModdingPlugins/blob/master/docs/emp-modding-guide.md#content-patcher-tokens
😩
do just the purchase feature
oouuuugh.....
and as mentioned u can just have it activate on a keybind for a poc
dont worry about menu at first
ok. ok. fine. baby's first actual 1.6 c# mod
i. will do it.
im just thinking of the math equations i have to do and i already know im gonna bork syntax
because my brain still cant think in c# after all this time
(For generating, I was working on auto-generated config menus for the config menu thing at the time, because the system was very cumbersome)
unfortunate side effect of being english major-adjacent
Oh, I looked at EMP too but didn't see it, guess I overlooked it. Sorry about that
ok, so i think my first order of business should be to grab the current blueprint thats showing in the carpentermenu, right? and displaying what that is + its building mats?
and by displaying i mean printing to the log for my purposes to make sure im targeting the right thing
and grabbing the right.data.?
but i dont know what variable id grab of the blueprint, because index doesnt seem right, and skin seems to be the thing it grabs a lot
yea u want the CarpenterMenu.Blueprint
so basically u must first know that the activeclickable menu is CarpenterMenu
uh huh
since u r just doing it in the buttonschanged handler for now u can just check in there i think
if (Game1.activeClickableMenu is CarpenterMenu carpenterMenu)
{
List<Item> ingredients = carpenterMenu.ingredients;
// do buying stuff here
}
ig u can just use ingredients directly actually
do i need to set special variables for old price, the amount of wood needed, the amount of stone needed, and the new price yet
or can i like grab something from here
this.ingredients.Add(ItemRegistry.Create(material.ItemId, material.Amount));
wait shit
ok there we go
but i guess the ItemId has to match wood and stone only
Is there a mod that gets rid of the trash while fishing on the ocean farm?
the item.QualifiedItemId is the (O)388 thing, right? or would i just do 388 in code and not (o)388
you might get a response if you ask in #modded-stardew , this channel is mostly for help/chatting about coding mods!
also, i am noticing robin's shopdata doesnt specify a price for wood... it just has -1 as the price. wiki says its 10g and increases to 50g, but like... what.
I'm currently making a custom obelisk. Will it automatically count for 100% completion?
no
Is there a way to make it count?
with c# anything is possible
that's just a fancy way of saying no frameworks for it yet lol
A perfection framework? Oh no.
I'm planning on learning C# in the future - seems to be needed for making brand new features for sdv
if i classify an object as Cooking, it will be checked for perfection (even if there is no recipe) and there's no property to bypass that, right? so i should avoid this?
Yep that's right
I think cooking just looks at the recipe list, not everything in objects? (defer to anybody who's tested that, though)
Oh right yes it does
Except the cooking tab on the collections menu looks at the (normal) cooking quality
i believe that it's hardcoded hence why the price is default in the entry itself
do you happen to know where its hardcoded
not a clue
prrbt. ok
doubly cursed that it says "Cooking" but in the wrong color. classic stardew moment
found where the wood price hike is hidden, Object.salePrice
case "(O)388":
if (Game1.year <= 1)
{
return 10;
}
return 50;
whereas I think clint's similar hike is in data (along with the mail about both)
ok, so i know how to access the player inventory with Game1.player.Items, but the way that the carpenter menu checks ingredients is by ingredient.QualifiedItemId, ingredient.Stack. so how would i be able to ONLY grab the ingredient if it matches 388 and 390, and then grab the amount required?
game1.player.items(wood, wood stack) and compare it to... ingredient.... how
ingredient.Stack = remaining wood required, but. i need to make sure its that number im checking against. i guess im asking how i make sure im not just subtracting random shit from the ingredient list
because there's other things in the ingredient list obviously, i just. Bwah.
also is ObjectFactory even used to get items anymore or is that old style grabby stuff
like, if i created woodObject = item.QualifiedItemId == "(O)388";, would i be able to do woodObject.salePrice or no
salePrice is a method, not a field/property, so you can't set it; normally it's based on price, which you can set, but wood and a few other things just entirely ignore it
i can get it though, right?
like if i were doing a math equation?
i could do something * woodObject.salePrice()?
oh, if you just need to get it, yeah, you can call that method
okay sick, yippee
other mod data like current location and farm ive considered, farm moreso mostly for the same reason as current player, bc its always accessible and no need to worry about host/client shadow world discrepencies (which is why i havent wanted to add one for NPCs or arbitrary locations, bc i do want to keep BETAS as multiplayer friendly as possible and things dealing with the shadow world makes that a pain)
CP tokens though i consider out of scope for BETAS, i try to keep it pretty standalone (with the PatchUpdate command being the sole exception due to its potential usefulness) otherwise i want everything in BETAS to be just as usable in a random C# mod as it is in a CP mod, generally. a different mod more focused on extra CP tokens is where id place mod-data reading tokens if i had such a mod, but otherwise i just recommend EMP or tokenizable strings where usable
(and i dont really have any ideas for CP tokens besides mod reading ones that already exist in EMP or a stat token that... also exists in EMP, so ive not got enough token ideas to justify a mod for adding more)
the only reason i dont have mod data for the farm already is just cuz i havent gotten to it yet ¯_(ツ)_/¯
what should I write for these fields in the quest content string if I dont want to add a value? /./ ? or //?
from checking the data in game I only see very few examples where its using a dot like here:
"Basic/Copper Ore/You found a piece of copper ore. You're not sure what you can use it for, but the local blacksmith ought to know./Bring a piece of copper ore to Clint's blacksmith shop././-1/0/-1/false",
//
Hearing it called the shadow world again gave me a dumb idea:
A mod where you use a magic card to send another player to the shadow realm. It's literally just the client copy of whatever location they were on.
(No I never watched yugioh, but I've seen plenty of english dub memes about it)
ok i think i need to take a break from this, i feel like im running in circles
goodnight friends
its so weird toh theres not a single example of that implemented in the game code
well you should really write something for the hint probably, as it would be shown to the player and might just leave a weird blank space without it. but the game uses null for the requirements part for basic quests bc it literally wont be checked at all for anything so it does not matter what you write
(actually i guess it also uses -1 for relatively newer basic quests instead of null, but the point remains, it dont matter)
Yeah makes sense, no real reason to leave them empty now that I think about it
I'm wonder how basic quests work. Most quests I plan to add are "Basic" so they require some external trigger
I guess whenever a certain action happens they receive a signal?
Very curious of finding that out but I'ma first implement the non Basic ones
there is no signal for a basic trigger at all
basic quest*
its not very useful for a content pack as the only relevant trigger action, RemoveQuest, doesnt actually complete the quest
which i mean, you can still use it ofc, you just need to remove it and give the reward manually, which will be differenmt from what players usually expect, as they wont go to their quest log to collect the money (if there is any)
and it wont play a sound when you do so without you playing it manually, via spacecore
Well all my quests give an item delivered through mail anyway that isn't a big problem
then yeah you can just remove it overnight at the same time you send the mail
But like let's say a quest asks you to how 350 ground tiles
Or
Complete the community centre
Or idk gift 400 blueberries to Clint
How would that be tracked
well, the ground tiles one cant be tracked with CP
CP alone, anyway
the ItemDelivery quest can do the blueberries one and it WOULD receive a signal, though you'd have to give 400 blueberries at once i think?
yeah you'd need to do all of em at once
the community center one would be a Basic one that you'd just check for the relevant mail flags manually for
vanilla mainly avoids needing optional fields in the first place and put them at the end so that it could just be ignored all together, and most assets that heavily used them got made Data Models instead.
But Data/Furniture is still a hallmark of it
(i lied about the ground tiles, theres a vanilla DirtHoed stat)
wouldnt be able to do "do 350 tiles from this point on" with CP alone though
just "350 since the start of your save"
... unless you manually reset their stat to 0, i guess. id not recommend that
Yeah that's what I was thinking, I'm just not sure how that would work. Or how to add the custom logic to a quest
But tbh I haven't even looked at it yet I'm just wondering ahah
you do not add custom logic without C#
