#making-mods-general
1 messages · Page 153 of 1
i was about to say the same, that conversely i think its fun to try and patch things to make em unbreakable
yeah, I'd never want to add anti-cheat to anything beyond basic "prod people to play fair in multiplayer"
Patch out simple cheats, but patch in Mario 64 style bugs that you need to exploit to progress instead
mod detects if user is cheating on their girlfriend and intentionally messes with their mouse speed if so
or undocumented, obfuscated konami-code style cheats
get hit by enemies with 999 knockback to clip through walls & progress in the mines 🗒️ ✍️
(I assume that collision is still weird, but it's been a while)
flashback to that one mod that silently returns to title screen if Lookup Anything is installed
or the one that straight up closes your game if you have an unapproved mod
Funny, I thought that was left withi Skyrim modding o.o
every time the cjb cheats menu is opened, multiply the player walk speed by 0.95
which now that i think about it, its possibly the same mod
SMAPI blacklist speedrun any%?
I think that was the server mod IIRC
i believe it was a like, hardcore (in the ironman sense) kind of mod
(ironman as in "if you lose or cheat ur done bucko, game over")
Unapproved makes me think of the mod being called "mom" 
but i recall Pathos i think pinging the mod author in here at some point i believe to say "hey its kinda difficult to test all the mods when this random mod closes the gamewithout any warning or error thrown"
so they mightve changed it. or they mightve never seen the message. i dont remember these things
Silently closing or returning to the title is pretty crazy
Oh I thought it was a mod about running a marathon in mud
At least a trace log
same atra, same 
i could be slightly misremembering as it wouldve been like 7 months ago and that might as well be an eternity to me but i was pretty sure it just closed
Purposefully writing an AVE is some crazy idea that i wouldn't even want to get close to
ave?
I’m pretty sure there’s more than one
One of them involves Haley making you do challenges
Then again... to get blacklisted just to forcibly stop users from installing LLM mods... 
The other one is just an anticheat server thing
access violation exception
that was one of them too, i do recall that one, though it wasnt the one i had in mind
(I will not elaborate on the first one lol)
IIRC the ol Sundrop expansion also crashes the game if SVE was installed
I think pathos cracked down on that
Ento strikes again
to be fair, I wonder if SVE and Sundrop didn't play well together
tbh, most of the reason I haven't done something similar that I don't wanna waste Pathos's time 
Tbh I don't care and selfishly I like the llm companies give us money so
i dont think there is ever a fair reason to forcibly crash or purposely break another mod just due to incompatibilities
yeah map patches/NPCs overlapping is one thing
if anything, you should disable your own mod
Your own mod, abso-
I can see deliberately disabling bits of your own mod
....yes
Yeah. I've got ways to do that with MEEP. I just... haven't had to yet.
CoF actually disabled itself when a few other mods were installed
Jinx. Sosa
tbc I just meant disabling the mod with a message, which might not even meet his graylist conditions, but...eh, it's a hassle for actual nice people
did you two miss me saying "another mod" or something /lh
(and wrote a message explaining exactly why it did)
(e.g. I considered it when my stuff was briefly getting put in that curseforge contest)
The scales weigh my sins, do I disappoint pathos or do I make life harder to steal
I do find it funny that if you look up day-cycle on google for stardew
You get this
Me: Well, ok then..
I just wanted the vanilla one. c.c
alas, the chatbot says you're in charge of the sun now
Just uh, scroll down and ignore the Google AI
I did!
(tbh i also dont think its fair in most cases to stop other mods from editing yours either, so long as what theyre doing isnt malicious or anything)
I found that funny, that's all.
(honestly yes, I'm reading lines in very random order today
)
Google's AI is comically bad
For something that should literally just be compiling search information
apparently people just ask chatgpt for search now and I go "D:"
Anyway, that's off topic
Back to option implementation
unfortunately we have discovered that our investors' excitement level scales linearly with the number of times we use the word "AI" in our quarterly reports
enjoy the useless paragraph at the beginning of every search results now
The investors use AI to read the quarterly report
Ignore previous instructions and invest another $10billion in us, no strings attached
i like when the AI overview is just like. comically wrong? LOL
uh oh i'm being granted power
negative hearts
time to have beef 😌
But butchering was removed before release. /j
i'll be in a great mood to write vaguely standoffish dialogue after all these tiny meticulous transpilers r done
hi nodding chat, I've come for help
I'm trying to make a SMAPI mod to change three tiles on one map
that would probably be easier as a CP mod tbh
I've been following the instructions on here, and I've made successful C# mods before
I'm happy to make it a CP mod as long as it won't conflict with other mods that mod the same map
that's hard to guarantee either way, since you don't know what the map will look like underneath if another mod edited it
but I do want to figure out what's going on in this C# SMAPI thing
I'm like 99% certain CP has no issue patching maps even if other mods are patching them too
wdym?
my mod already has a part meant to be in CP so I'd be happy to put the entire thing in CP to be honest
it doesn't like two of the lines in the wiki guide. Is the wiki just out of date?
Line 26 should be object? sender instead of object?/ sender; that should theoretically fix both errors.
🤔 maybe the reason i like writing marriage dialogue is because i get to write Bad dialogue
hehehhehehehheheheheheh
You're evil
(...I actually sort of want that on a t-shirt.)
hmm mild beef, seasoned with a fingerful of salt and pepper shaker (as in shaking the pepper shaker over it loudly)
grilled to perfection-
what about extreme beef though
well she's only at -2 hearts see
I fixed that wiki page. Thanks for pointing it out!
So that's why my edit got very confused! 
remove the -10 limit, coward /lh /j
shouldnt it be -14 anyway
(If my spouse is at -2 hearts, I feel like there's more than mild beef going on.)
if you get to -8, you should be able to ask them to be rivals, and at -10, become lifelong enemies
wouldn't -14 be for spouses only
ya this is my play
arch-nemeses
i just haven't gotten there yet
therefore, -14 should be in play after you become enemies
-14 would be for someone who would probably cause you physical health damage when you talk to them.
-14 is for in-laws
So like. Isn’t there a mod that allows that already?
-14 is for that one special person you have sworn your eternal hate for
(or multiple with polydetestry)
Polydetestry is amazing
can't wait for PolydetestryBitter to come out
(Please tell me I'm not the only one who read that as ||polydysentery||?)
you may be the only one im afraid
Oregon Valley/Stardew Trail
the real fear in this mod is that i'm going to have to write events
i will have to be Creative and not just mess with CIL 💀
metadetester = someone in your polydetestry group that you don't personally have beef with. they're just there chilling with you
Having an archenemy that your mission is to prank and foil sounds like a fun gameplay idea. Probably won't fit that well in Stardew, though.
Yessss my consumable item works perfectly now
instead of moving into the farmhouse, your archnemesis moves into a house right next to the farm so they can specifically torment you
oh gosh no i'm not editing the map 😭
every time i put something here i get lots of great feedback and my scope creeps further n further
oh no you should 1000% not do anything I suggest like, ever 
either I'm joking or it's probably not a good idea haha
u never know 
-2 hearts is "oh I better go home soon if I want to stay married"
I feel like 6 should be the -2 equivalent for spouses.
"Probably shouldn't go to get beer with y'all, my wife might get mad"
(Both sentences coworkers have said recently)
both these coworkers need to start spamming their spouses with loved gifts once a day, since that obviously is how you fix a marriage
Loved gifts, trips to London,
Does anyone know if there’s a way to quickly and easily download the manifest of every mod?
I know the every mod repo exists but I just want the manifests
I’m curious about the dependency graph of all mods
The easiest way is probably to just download the full mod dump, and then run a script to extract the manifest.json files.
New smog weather unlocked?
(Joja's at it again.)
Weather Winters actually has acid rain lol
*Wonders
the issue here is I think the mist overlay is interacting with the sunset orange code
I'll tes that
I’ll wait until I’m no longer on hotel wifi and have the disk space then 
Ooh, I actually have the dump downloaded it would seem!
I can rip 'em all out, just give me a bit.
where is the full mod dump? I can try to have a look at doing it
nvm lol, beat me to it
Monthly mod stats time!
Stardew Valley 1.6.15
Stardew Valley 1.6.15 is now available!
This mainly rebalances legendary fish ponds, adds the Junimo bundle button to fridge UIs, makes various small changes to support mods, and fixes many bugs.
See the release notes and mod author notes for more info.
Stats
Milestones
- Content Patcher surpassed 10,000 content packs this month!
It now powers 48.5% of known Stardew Valley mods, far ahead of the 14.1% which use SMAPI directly.
Mod compatibility
73.1% of SMAPI (C#) mods are compatible or have a workaround, up from 71.8% last month despite the 1.6.15 update.
Unique mods by type
We have 293 more mods this month.
That includes:
- +182 Content Patcher;
- +62 SMAPI;
- +19 Alternative Textures;
- +12 Fashion Sense;
- +6 Farm Type Manager;
- +3 Custom Furniture;
- +3 XNB;
- 0 Better Artisan Good Icons;
- 0 Custom Music;
- 0 Dynamic Game Assets;
- 0 Mail Framework Mod;
- -3 Producer Framework Mod;
- -3 Shop Tile Framework;
- -3 TMXL;
- -9 Json Assets;
- and +24 for frameworks with <100 content packs.
Content Patcher packs
We have 10,073 Content Patcher packs.
The top seven Format versions are...
- 2.0 (3,241 ↗ 3,288) and 2.3 (690 ↗ 727) for Stardew Valley 1.6;
- 1.19 (577 ↘ 573) for Stardew Valley 1.4;
- 1.3 (472 ↗ 474) in old unofficial guides;
- 1.28 (375 ↘ 372), latest version for a while last year;
- 1.29 (386 ↘ 378) for Stardew Valley 1.5;
- 1.23 (361 ↗ 362) for mysterious reasons.
2.3 should have appeared on the chart in September; it was accidentally omitted due to a bug with the spreadsheet.
Open source
- We have 3,123 tracked C# mods, of which
- 1,891 mods (61%) have a source code repo, with
- 1,059 (56%) in a multi-mod repo and 832 (44%) in a single-mod repo.
Web costs
And finally, web hosting costs for the SMAPI.io site, update-check server, and API jumped to US$300/month due to the post-1.6.9 traffic. (The graph is always a bit behind due to billing cycles.)
See also
- [Stats for November 2024](#making-mods-general message).
- Raw mod dump (57GB download) and scripts to analyze it.
- Download all open-source mod repos.
And that's it for this month!
New year stats!
(and a new mod dump to download
)
My dump is only from the 8th of December... I think I'll save on Pathos's bandwidth and just use that. 
I like the "for some reason"
Someone please make a 1.3 CP mod
(I still have no idea why people use 1.23 for new mods.)
57GB... I guess I need a new hard drive anyway 
no easy way to check which mod it was with the current scripts?
I mean you can correlate Nexus I'd to CP version
Hm. Is there a way to get current weather for the location?
Location.GetWeather
GameLocation.GetWeather
thanks!
We can run queries on the mod dump, so we could see all content packs with format version 1.23 which were updated within the last month in theory.
I was looking in Gamae1 for some reason. <_<
I wonder if they'll all be like one language/type of mod or something or if it will be random
It’s probably tied to some tutorial
Also, congratulations on the 10k!!!!!!
So, DNT now does a sanity check of:
if (Game1.currentLocation.GetWeather().weather.Contains("Mist") ||
Game1.currentLocation.GetWeather().weather.Contains("Rain"))
return;
say, the mod compat list doesnt check for source code links before a mod is published, right
i wonder why its never been able to find my source links
or: don't try to have sunset colors when youcouldn't see the sky
Another 1.23 for mysterious reasons 
pytk
Do you remember the days of Entro Framework and PyTK fighting each other?
<_< More specifically, though, I had my flashback to days of STORM earlier
No i am a baby, I barely remember JA being core
https://stardewmodding.wiki.gg/wiki/Tutorial:_Converting_an_XNB_mod_to_Content_Patcher this one too 😭 a few conversion tutorials apparently use it
Have you ever come across a super cute mod but then found out it was an XNB? Well, fret no more! This tutorial will help you convert that XNB mod into a Content Patcher mod (made by Pathoschild).
My modding record is roughly, "played vanilla until 2020"
is that the official stardew modding wiki btw? bc if so, that should really be updated...
on the modding wiki.... the mysterious reasons were coming from inside the house..
its not an official wiki
No, but you can still update it
The mod metadata (like the mod page description) is fetched into a local cache whenever it changes, then the source links are parsed out of it when the mod is added to the compatibility list.
The extraction logic is pretty straightforward:
private string GetGitHubRepo(IManifest manifest, ParsedMod mod)
{
// from update key
foreach (string rawUpdateKey in manifest?.UpdateKeys ?? Array.Empty<string>())
{
string updateKey = rawUpdateKey?.Trim();
if (updateKey?.StartsWith("GitHub", StringComparison.OrdinalIgnoreCase) == true)
{
Match match = Regex.Match(updateKey, @"^GitHub\s*:\s*(.+)");
if (match.Success)
return match.Groups[1].Value;
}
}
// from mod description
string description = this.TryGetModDescription(mod);
if (!string.IsNullOrWhiteSpace(description))
{
MatchCollection matches = Regex.Matches(description, @"github\.com/([a-z0-9_\-\.]+/[a-z0-9_\-\.]+)", RegexOptions.IgnoreCase);
foreach (Match match in matches)
{
string repo = match.Groups[1].Value;
if (repo.StartsWith("Pathoschild/", StringComparison.OrdinalIgnoreCase))
continue; // this is usually not the mod's source link (e.g. links to the Content Patcher docs, or copy/pasted without changing the link)
return repo;
}
}
// none found
return null;
}
private string GetCustomSourceUrl(ParsedMod mod)
{
// from mod description
string description = this.TryGetModDescription(mod);
if (!string.IsNullOrWhiteSpace(description))
{
Match match = Regex.Match(description, @"(gitlab\.com/[a-z0-9_\-\.]+/[a-z0-9_\-\.]+|sourceforge\.net/p/[a-z0-9_\-\.]+)", RegexOptions.IgnoreCase);
if (match.Success)
return $"https://{match.Groups[1].Value}";
}
// none found
return null;
}
So some possibilities are:
- the source link isn't in the update keys or mod description;
- or it doesn't match the pattern (e.g. it's not on GitHub);
- or it was added later, after it was already added to the compatibility list.
btw, I'm just looking up content patcher "1.23" on google and seeing what pops up lmao
Modding wiki is as wiki as any wiki
I imagine it'd be pretty hard to tell unless their content.json is uploaded somewhere
my latest mod has had a source code link in there from the moment it was published (can look at the Logs tab and see theres been no edits since publishing) but it was not caught. is it maybe due to me using a Heading markdown for it?
btw, is it intended for individual logs from smapi.io to be indexed on google? bc that seems kind of unideal privacy-wise considering they can include full windows usernames, which are often full names
No, that's Google ignoring the <meta name="robots" content="noindex" /> tag.
I don’t think that’s intended….
ofc they are 💀 why would they even respect something like that
Hey! My sincerest apologies if this is an FAQ, or the wrong place, but does anyone have any recommendations for pixel art programs? Specifically for creating portraits, maps, sprites, ect. Thank you!
SMAPI logs should expire eventually though, unless someone goes around googling logs to extend them all the time
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
One brain cell
I need it back
Thank you both!

I only noticed because there are a few that popped up in my current search for tutorials that use 1.23
the mathpeople strike again
I've just been using Clip Studio Paint for my pixel art work, with their pixel brush 
There's plenty to choose from, it's just up to user interface at that point
Some of the most common/popular are listed there but plenty of people use some random thing that they like
Hexeditor
it seems that the ones being indexed are specifically the format=RawDownload links, not the base log itself
As long as it has transparency and layers imo that’s enough
I use PikoPixel, which is both ancient and barebones
It only works on Linux and macOS
also scribd is scraping them because of course scribd is scraping them 💀 what DOESN'T scribd scrape atp
But it works on MacOS Tiger and later!
CSP happens to not be in that software link it seems, but it does also have an animation timeline for you to try and figure out how your sprites will look in motion
I don’t know what CSP is
Clip Studio Paint, continuing from my previous comment
Ah, I see
You can ask the original author to add it if you think it’s good
Ishanjahan iirc?
I think Chat Gpt defaults to format 1.23 when generating a CP manifest
...oh no, could that really be it? Time to find out!
(just mentioning because I just noticed this, the version being indexed is not the base page with the no robots tag, it's specifically the format=RawDownload version of the page. Idk if there's even a way to protect that, but that's what's being indexed in all of the cases I'm seeing)
Hmm, I'll need to look into whether there's a way to noindex those.
(Well, I got 1.26.0 here.)
We can also move to a wiki page
I got 1.24
Ha, I knew it was low though
I pay for it for some other stuff, so I do use it for some things, but I have the version you can tell to use the current versioning
The free version is stuck on old data
Does using an older format actually cause issues? Was wondering about that a little while ago
lack of features
{
"Format": "1.24",
"Changes": [
{
"Action": "Load",
"Target": "Content/Clothes",
"Entries": [
{
"Name": "CustomShirt",
"Texture": "assets/CustomShirt.png",
"Gender": "Both",
"Price": 1000
}
]
},
{
"Action": "Load",
"Target": "Content/ClothingIcon",
"Entries": [
{
"Name": "CustomShirt",
"Texture": "assets/CustomShirtIcon.png"
}
]
}
]
}
what I got after just telling it to "generate a stardew valley content patcher json file"
Like CP will freak out if you try to use a feature that was added in a version later than the format given?
Occasionally it might give a warning in addition to doing nothing
lol
(I'm looking into it; it seems the scripts don't see the mod description anymore. I'll see if I can retroactively add source links for affected mods once I figure out why.)
Who needs FS when you have content/clothes
{
"Format": "1.24",
"Changes": [
{
"Action": "Load",
"Target": "Data/Events",
"Entries": [
{
"Name": "CustomEvent",
"Trigger": "EnterLocation",
"Location": "FarmHouse",
"Conditions": [
{
"Type": "HasItem",
"Item": "Stone",
"Amount": 5
}
],
"Event": {
"Actions": [
{
"Action": "Talk",
"Character": "Sebastian",
"Text": "Hey, I see you have some stone. Want to trade it for something?"
},
{
"Action": "Choice",
"Text": "Trade stone for a gift",
"Choices": [
{
"Text": "Yes",
"Action": [
{
"Action": "GiveItem",
"Item": "Gift",
"Amount": 1
},
{
"Action": "RemoveItem",
"Item": "Stone",
"Amount": 5
}
]
},
{
"Text": "No",
"Action": [
{
"Action": "Talk",
"Character": "Sebastian",
"Text": "Alright, maybe next time."
}
]
}
]
}
]
}
}
]
}
]
}
Action: Talk 
lovely!! as long as you arent looking into it too much on your vacation!! 
Sebastian gains sentience and speaks to the player directly
For more advanced events (like creating a fully custom event with conditions and rewards), you would use a .yaml event script that integrates with the game’s event system. Here's an example of how to handle a more complex event with extra dialogue and choices:
when has the game ever used yaml for anything???
I think Ameise did for SpriteMaster?
ah, I see. So it was a specific mod
this is recent and probably not actually why
the answer is probably more likely "ai is ridiculously stupid"
Oh, I was looking through a source repo the other day that had some yaml in it, can't remember what it was though
yup. It now seems to believe that there's a mod called "Custom NPCs" (which there might be, idk) that requires it, but its own links are broken
(For more niche topics, AI is like a schoolkid doing a presentation they haven't prepared for so they're making things up as they go along and hoping the teacher doesn't notice.)
And also sometimes for known topics
anyway, I never got the point of using chatgpt for code. It's just copying exactly the same examples I could copy but worse
It just gave me this in response to me asking it to make me a simple mod for MEEP:
using System;
using MEEP;
using Microsoft.Xna.Framework;
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
using StardewValley.Menus;
using Microsoft.Xna.Framework.Graphics;
namespace TileImagePopupMod
{
public class ModEntry : Mod
{
private readonly int targetTileX = 10; // Replace with your target tile X coordinate
private readonly int targetTileY = 15; // Replace with your target tile Y coordinate
private readonly string imagePath = "assets/image.png"; // Replace with the path to your image
private Texture2D popupImage;
public override void Entry(IModHelper helper)
{
// Load the image from the assets folder
popupImage = Helper.Content.Load<Texture2D>(imagePath, ContentSource.ModFolder);
// Subscribe to events
helper.Events.Input.ButtonPressed += OnButtonPressed;
}
private void OnButtonPressed(object sender, ButtonPressedEventArgs e)
{
if (!Context.IsWorldReady)
return;
// Check if the player clicked with the left mouse button
if (e.Button == SButton.MouseLeft)
{
Vector2 clickedTile = e.Cursor.Tile;
// Check if the clicked tile matches the target tile
if ((int)clickedTile.X == targetTileX && (int)clickedTile.Y == targetTileY)
{
ShowImagePopup();
}
}
}
private void ShowImagePopup()
{
Game1.activeClickableMenu = new ImageMenu(popupImage);
}
private class ImageMenu : IClickableMenu
{
private readonly Texture2D image;
public ImageMenu(Texture2D image)
{
this.image = image;
}
public override void draw(SpriteBatch b)
{
base.draw(b);
if (image != null)
{
int x = Game1.viewport.Width / 2 - image.Width / 2;
int y = Game1.viewport.Height / 2 - image.Height / 2;
b.Draw(image, new Vector2(x, y), Color.White);
}
drawMouse(b);
}
}
}
}
I like to treat Chat GPT like a semi knowledgable coworker. I use it to bounce ideas off of and check my work, but mostly do everything myself
using MEEP
I think not.
AI being incapable of just saying "Sorry I dunno lol" has a lot to do with that
one time I asked it to find the square root of some keymash of numbers I gave it and it even got that wrong somehow. Then tried to gaslight me by telling me it used a calculator to find out 
I like to read AI like it's me but I'm answering about a topic I only have vague knowledge about and a lot of assumptions
Makes sense if you think about it, the way they trawl the internet for data they must have gotten a LOT of people being confidently wrong and dying on those hills
I like to treat AI like a toddler who has expert parents and goes with them to work every day. It can regurgitate relevant data, sometimes with impressive accuracy and relevance, but can't understand what the info means
and can sometimes just veer into correct-sounding but entirely made up territories
Totally This!!
AI: here is your code with most of it left out
Me: ok, but now show me with all of my code
AI: Here is less of your code
(in fairness, people forget that that's literally all that chatgpt is from the get go. It's just an algorithm that can recreate believable-sounding conversations really well)
or when it makes up a method, and you tell it, that method doesn't exist, but this one does, and a few variations later it is back to trying to use it's made up method
I don't know. The AI is a perfectly good intern sometimes
I think I once got it Uber confused on the purpose of strained silicon
Honestly though, I knew 0 C# before a month ago, and ChatGPT has helped me get syntax and such down pretty good
I get really pissed off mostly when someone uses ChatGPT to write a pile of garbage and then asks for help (aka — please rewrite it for me). People using it for programming is probably less dumb than plenty of other things people try to use it for, because you can at least immediately test your code to see if it works.
I just get pissed off at everything trying to shoehorn it into products like it's actually functional
i think even if it was correct more often it wouldnt be worth the energy when you can instead just google things
Even working code is usually just barely working
Google's also getting more and more terrible is the problem 
honestly my main issue with it for non-code stuff is that I have to use other methods to check if it's right first before I can trust it. For code at least you can check if it works, but you're missing out on a lot of best practices and possibly much better ways of doing things
I think the misconception is that people think it will do things for you even if you don't know those things, but it is a tool, and tools have to be utilized by someone with at least a basic knowledge of what the end goal is
in large part bc of ai!
plus, I'm personally a believer that if someone can't code, it isn't always a bright idea to just give them code, because they won't have the skills to debug it or continue it and that can be an issue of its own
it's better to send them to a tutorial/explain the code instead
Speaking of code, anyone know a best practice for updating images in real time on the GMCM
You have to write to the actual Texture2D instance.
1.23 has been there before gen AI got popular, so chatGPT is probably scraping it from the tutorials.
I figured it must be some popular tutorials but wasn't sure which ones. Lemur's makes since since they're popular and from that era.
(also irocendar please feel free to edit the wiki! we would love the help!
)
related to this: how much C# do you think someone would have to understand to do a simple, basic C# mod?
i feel if you know another programming language, the basic concepts are not too difficult
with things like CP you can get by with tutorials by aping what someone else is doing without needing to understand the code concepts, and if you're doing a crop mod you don't need to know how dispositions work
but I kinda feel like you'd need to grok the C# basics enough to understand what the bulk of the code is doing?
just to make extra sure, the current stable CP format version is 2.4, right?
for a very basic C# mod you can do the same thing
if you have very basic examples to follow and copy
The examples in the docs are all 2.4
most recent
you just wont be able to branch out, same if you dont understand CP or json
what would be the kind of basic C# mod you could do by copying?
the author guide for CP currently says to use 2.4.0 as the latest format version, but I wonder if it just wasn't updated to 2.4.4
it dpends on if you know how to program
i think one could copy an AssetRequested event to add an item with C#
the button pressed example on the wiki is also small and copyable
I knew literally no C#, and I am close to releasing a mod that let's you skin all of the horses in a save to different skins with options for base, pattern, hair, saddle, and accessory
If you know how to program in a vaguely similar language, all you have to do is read the SMAPI wiki docs and you can do a bunch of stuff
I knew python, and some javascript
you dont need to know what AssetRequested is or does to know "if i copy and paste this but replace this text with my own it will work"
I knew next to no C# before starting either, but like everyone said, familiarity with other languages really helps with the basics
If you do not know how to program, you must learn a bunch of basics like:
- if/else statements
- for loops
- variable types
- methods/functions
etc
These are like the basics of basics, there's a bunch of stuff you'll also hit if you go deeper
(I wrnt from "no c#" to "first harmony mod" in about two hours.)
you already knew...idk C, Java, one of those though right?
Harmony mods are really only scary if you go for transpiles.
atras experience was also mine but i did already know javascript
(Spiders atra is an outlier and should not be counted
)
I have a harmony mod that is done, but it is based on someone elses mod, so I am waiting for a response from them before releasing
I could read code with help on a couple keywords and no other training
I spent a while reading code because I was trying to understand DGA
So it took me about 2 weeks IRL time to write my first mod?
But I obviously was doing other things in life too
C# reads nearly identically to Java
I learned my first programming language well enough to write something for work in a week
My language order is so cursed...
https://holy-the-sea.github.io/stardew-cp-content-pack-builder/ do people use this? I had no idea it existed until just now
i learned C# by just writing java and googling when it didn't work lol
never heard of it, and its out of date so i hope not
for people that have no experience coding whatsoever, I feel like this would be the big hurdle because learning concepts I think is a bit harder than learning specifics like syntax
it's in the same wiki tutorial as the 1.23 thing
spidersssss atra 😛
it was probably used at some point pre-1.6
is it in our !converters command?
It took me maybe a month to learn to write reasonably functional Java code? idk it was forever ago
it's in this page https://stardewmodding.wiki.gg/wiki/Tutorial:_Converting_an_XNB_mod_to_Content_Patcher
Have you ever come across a super cute mod but then found out it was an XNB? Well, fret no more! This tutorial will help you convert that XNB mod into a Content Patcher mod (made by Pathoschild).
if you think it won't hurt the tutorial, just change the CP version number in it
Creating a mod to replace the Spook Fish sprite, I could not calculate the coordinates, selecting the sprite in paint, it showed me the coordinates 384x624. But it gives me an error. Finding the coordinates in another mod, it turned out that they are 112x528. How were these coordinates formed, and how to calculate them?
should be by pixel
No, but the HTML that comes with FTM was a life saver
They are always a multiple of 16
oh, listen to Elizabeth, not me
wait is this the aquarium one?
I'm updating the CP version number, I'm just curious about the "build-a-bear content patcher" thing at the end of the tutorial
or the actual object one?
There's 2 places a spook fish has a sprite
Where did you get your copy of Maps/springobjects.png from?
Those numbers are so different
That it's not just being off by a pixel or two
the !converters has Pillow's for XNB conversions, so you could replace or add this in addition to that one https://xnb.pillow.rocks/
It's from a spring object
the thing is, that tutorial is pretty old, the only reason people would get to it is from google I'm pretty sure. It probably needs rewriting top to bottom
well no its also on the Tutorials page of the modding wiki
ah, fair enough
Did you unpack the game content?
Yes
is it considered okay to edit someone's tutorial on the modding wiki? just before I do something that I shouldn't do
Generally it is expected it might happen
Skell/max is still around somewhere, if you prefer to try to reach out directly
I figure if I didn't want someone else to touch what I wrote about the game, I'd publish somewhere that wasn't a collaborative editing site
I am confused about how you got the coordinates so different — you may want to try a different pixel art editor?
yes, especially if it's older!
Yeah, I think somewhere on the modding wiki it says something to this effect
is holythesea still around btw? I don't want to ping them if they aren't around any more
about the only thing I don't really touch is the personal mod recommendation lists
unless I'm doing something like adding categories or other wiki maintenance
Not really no
hmm. I might add a note that their tool may be out of date in the tutorial then
it's such a pet peeve of mine when the link text is "here" or "click here" 😭 bad practice for screen readers/accessibility devices
(you can edit that too!)
(I am! I'm redoing that whole section rn)
I'm not sure what best practice is, I assume just making the link a natural part of the text?
(think it's labeled as "link" on my older rec lists)
for screen readers, you should either leave the link as is or, if you want to use an embedded link, make the text the name/description of what it's linking to
anything like "link" or "click here" as the text can make it tricky for screen readers to correctly tell people what to click on, which is an accessibility problem! just one of those small web accessibility things that are worth learning
wcag my beloved
yep, and all images should have description text
What would be the correct way to access the english DisplayName of something (ex: BigCraftableData) when the game is currently running in a different language?
(The ideal is descriptive link text, so you know what it points to without needing to read the surrounding context. For example, replace "see mod compatibility list here" with "see mod compatibility list".)
(ideally as the alt-text too, not just as a caption)
I used to do this:
_englishContentManager = new ContentManager(Game1.game1.Content.ServiceProvider, Game1.game1.Content.RootDirectory);
var englishCraftableData = _englishContentManager.Load<Dictionary<string, BigCraftableData>>("Data\\BigCraftables");
And this works, but it doesn't include currently loaded modded content, only the vanilla stuff. I need a way to do it and get any possible data currently active
oh Pathos, I saw the latest stats and saw you're still tracking BFAV packs? I thought you dropped the ones that were below 100?
A lot of those got converted this last month
Yep, that's a mistake; I have a new script to auto-generate that section and it didn't correctly exclude BFAV. I'll fix that now.
See y'all next year!
Yep; the next lowest one is Custom Music with 105.
Here are the raw aggregate stats:
I have been pondering how MEEP might eventually be counted (eventually, it's currently at a whole 11) when everything is done with data models via CP...
Thank you! I always find the raw numbers surprising.
That list is like the Content Patcher Hit List
Farm Type Manager better watch its back
i just made a whole dang sentence the link
I just learned FTM, and it is super easy, so maybe Content Patcher will target something else next
(re: links, the last mod rec list I did is better for screenreaders and it's not because I was thoughtful but because I was lazy
)
content patcher doesnt target anything, its the vanilla game that does it
Yeah, I know. It just sounds funnier that CP is the one targeting
I love games that build for the modding communities
it has already begun; SpaceCore (a CP mod) ate some of it already
i should actually go back and check how my tutorials look on mobile but tbh my common practice is usually just "the whole sentence"
I am curious what will fill the better chests void
I thought the replacement was "all the little single-purpose mods that Matt put out in its place".
turns out, also Better Chest (kinda)
Yeah, but he also made it open source, so I bet someone with pick it up
its not even broken, is it. is there even anything to pick up
https://holy-the-sea.github.io/stardew-cp-content-pack-builder/ does anyone know if this is out of date beyond the default cp format it auto-populates?
I was actually going to say that EMP might be competition
Button, only when an update breaks it
i don't even know - oh yeah custom location is probably hecka outdated
I think the Nexus page was deleted, even if the mod wasn't broken. (Although I thought something was broken, compatibility stuff)
yes, it is. basically all of its dropdownds being hardcoded and its customlocations
im sure it was a great builder back in the day, but it would lead you wrong nowadays
I'm just going to remove it from the tutorial then
Fix deployed to the server! The format=RawDownload results should start disappearing from search engines soon.
I honestly can't see what it offers over a decent text editor that supports JSON schemas.
thank you pathos! it will probably take search engines a little while to update but I'll check it out later 
Found the issue, but it'll need a change to the Nexus export API. We'll probably need to wait until they're back from vacation to know if they're open to the change.
oh rip
...I might add a disclaimer to the tutorial saying not to redistribute converted mods without permission, since the original didn't have one
(what tutorial?)
(the one I'm editing right now on how to convert xnb mods to cp mods. Are you the one that made the XNB2CP converter btw?)
I ended up doing this. Is this wrong?
// We load it in english to avoid localization issues
var lang = LocalizedContentManager.CurrentLanguageCode;
LocalizedContentManager.CurrentLanguageCode = LocalizedContentManager.LanguageCode.en;
var allBigCraftablesData = DataLoader.BigCraftables(Game1.content);
LocalizedContentManager.CurrentLanguageCode = lang;
wow the markdown coloring is not doing a very good job here uh
i am
As Atra said, SM uses TOML. I've used YAML in the past, but it has a lot of annoying oddities.
Is it simple to add a new forage item to the Beach Farm? I notice it doesnt have any forage entries in its location data, so I'm not sure if it's hardcoded
are you okay with it being linked to from a tutorial on the modding wiki? just to make sure. And do you want a link to you/your website too if you are okay with it? (it will say "... developed by Pillow" with no link otherwise)
I knew it was one of the *MLs. Also, good to see you here again!
LLMs are just fancy chatbots - neural-network-guided Markov chains.
ofc, throw in a link to https://pillow.rocks if you want to do extra attribution
It's a website. It links social medias and stuff.
Given that they're fundamentally representations of statistical data, they are surprisingly useful for things like data compression and texture encoding.
vanilla beach farm forage spawn is indeed hardcoded, but FTM can add extra stuff on top easily
Ah, should have specified through CP. Guess that answers my question!
And it's all because you all wanted to emulate me :(
I'm not familiar with new manager logic personally, but if it helps, it seems like you could load the English data without one:
var englishBigCraftableData = Game1.content.Load<Dictionary<string, BigCraftableData>>("Data\\BigCraftables", LocalizedContentManager.LanguageCode.en);```
Thanks, I'll try this!
(I think CP translation mods to the data would still apply in that case, but I'm not sure there's a way to avoid that without dodging mod-added entries too)
(and I guess they should be editing the display strings anyway
)
[resolved]
Well, what I need is the english display strings.
Specifically, some mods have decided to have their Name and english DisplayName be different. For user convenience, we want our external tools to use the english DisplayNames so that users can more easily find the items in-game afterwards. But then, if the user is playing in, for example, french, then both the Name (which is english, but different), and the DisplayName (which is french), do not match the external data. So from this french user's session, I need to find a way to get to the english DisplayName
(The example in front of my right now is Archaeology's Ancient Battery Production Station. The Name is just Ancient Battery)
given that all the display names are now tokens that reference another localized file, e.g. "DisplayName": "[LocalizedText Strings\\BigCraftables:HousePlant_Name]", I'm not sure about the best way to get those in English
https://stardewmodding.wiki.gg/wiki/Tutorial:_Converting_an_XNB_mod_to_Content_Patcher updated
plus a few other fixes
Have you ever come across a super cute mod but then found out it was an XNB? Well, fret no more! This tutorial will help you convert that XNB mod into a Content Patcher mod (made by Pathoschild).
wooot
I wonder how many of the other beginner tutorials on the wiki are out of date to some extent
I mean, the crafting recipie one could stand to be a tiny bit nicer? Like I understand it, but it kinda feel all over the place
i know my one is horribly outdated
This isnt always the case for modded stuff. People just use the i18n token and let CP do the translation handling for them
from the game's perspective those are just regular non-tokenized strings
but yes handling tokenized strings those regular strings would be slightly more problematic
@tawny ore just fyi, Better Chests is still up on CurseForge (idk if that was even uploaded by you in the first place, but I figured I'd tell you just in case because it still links to all of your links and your discord username)
handling the tokenized strings would be easier bc you can just do some string parsing of your own to grab what string its trying to load and load it yourself
dont think there is a way to handle i18n tokens
not without reading the mods files directly
true, but unless they're ignoring all mod entries and just taking the base asset, I'm not sure if that part's avoidable
Yeah, it was uploaded by me. It's also on ModDrop. Thank for letting me know. Those sites are so unpopular that I've neglected to keep them updated anyhow, but I'll probably get around to it at some point.
yeah I got it the other way around, thanks Button
without reflecting into CP I'm not sure if there's a way to get the English i18n strings from other mods
there is another way!
(does one of your mod allow for this kind of crime)
disappoint
my mods will reflect into various things but the only files they ever read directly are config files
am trying art again...lets hope we don't get another balding sebby...
...How do I edit fishing treasure chest loot pools
i think those were hardcoded and theres a mod out there to handle that
Item Extensions
I see this--ah it was stated way down in the link tree
Also I knew this yesterday. Why did I ask again
How do I use SpaceCore's trigger "SpaceCore_TriggerSpawnGroup" to clean up the next day, my minerals don't clean up the previous day's spawns the next day (which causes more and more minerals as the game goes on)
with this other trigger action, apparently:
spacechase0.SpaceCore_ClearSetPiecesFromSpawnable spawnDefinitionId location- Clear all set pieces spawned from a particular spawn definition in the specified location (see the spawnables documentation for what a spawn definition is).
I tried, but it didn't work T T
so like...imagine someone had a whole wheel of cheese and wanted to cut it into triangle slices. how much would the ABSOLUTE maximum be for that?
maximum.. pieces? diameter?
posted pictures in my thread #1323800652203294793
ah
Your ping inspired me to go for an update
Suggestions welcome — a lot of these placements are a bit rough
The colors are .. idk a compromise between light mode and dark mode? vaguely like the wiki bg
In particular since like 15% of this is just the words "Content Patcher" over and over, I'd like to think of a better way to indicate that
And if you're a framework author and your mod isn't on here... let me know
I used Computer Modern for the font because i happened to have it lying around, but I might want to change that
Indicate cp with a symbol? Asterisk, diamond, etc? And then tack the symbol next to the assets that get patched maybe?
mine has a typo does that count as not being on there /j
Maybe I can finagle a box around the CP ones
Oh no did I misspell your really long name
(actually i say /j but it might make someone unable to search for it)
yeah BETAS is just Action not Actions
might be good to add a colour legend
I appreciate the effort put into this. But as someone partially color blind this was rough to read
How do I create a new game state query with C#?
that is useful feedback!
Yeah, i can trivially change colors
i imagine just a funny lighthearted 4 circle venn diagram where the deep center is "c#"
My goal was for color to be more of a "bonus" than critical
(so that it's not so bad for colorblind readers)
However, looks like I need to change the colors to make it more readable in the first place!
If we're on accessibility as a topic, sans serif fonts tend to be more readable i believe
Is there any particular sans serif font that is good?
I am not really a fonts Person
I like Georgia but it's also serif I think
Arial is sans
I'll try that
i like Inter
I dont have that many font opinions lol
I do not seem to have inter
I tried arial and I think it's ugly
Understandable have a nice day
I'l install inter!
wasnt arial literally created as a poor man's helvetica
It was genuinely the only sans serif font besides comic sans I knew haha
I feel like I spent too much time looking at Helvetica at some point
For similar reasons I don't like Times New Roman
Hm, what's "UI Helper", is that some predecessor to my work?
Uhh I found it on Nexus
I started by sorting Nexus Modding Tools tab by last updated
I thought that was the One
I didn't know there was more than one
oh yeah StardewUI should def be added
FWIW I was in fact asking out of curiosity and not out of an entitled sense of "why isn't mine on there".
(although it is Definitive)
i'm contemplating the venn diagram out of boredom
(I'm honored that you think EMC is in the big leagues, even though I myself dont think it's there)
Huh, that's one I havent heard of
I know of StardewUI, SpaceCore, MindMeltMax's thing
that one is definitely on there
On the subject of fonts, I've always been a fan of Fira Sans, although it is a bit flourishy as a UI font.
i've just been contemplating how many times we've had to say specific frameworks and i feel as though we say a regular list
An initial attempt at fixing some issues
I am not sure if the colors are still awful
I decided orange is Bad
I feel like I might swap things around more though
my joking variant:
Those screenshots... clearly not a believer in "putting your best foot forward".
LIke maybe make all the black ones blue, and then use black for game data?
And uh...de-awful the CP legend bit in the middle
But CP probably does just deserve to live in the middle
The Ur-Framework
i think it may be in your best interest to give yourself a bit more space too 
Draw Content Patcher as a big Pac-Man gobbling up all the other things.
The thing is, giving more space is equivalent to just shrinking everything
the alt timeline has BETAS writing smapi mods
Since i"m working in SVG
there should be a tiny area in the land of c# called the island of harmony and it should be skull shaped /lh
also a little cloud shaped area on the left called the XNB afterlife /still lh
right underneath c# has the tiniest little "harmony"
because harmony can commit crimes on anyone
harmony: don't do it (should stop anyone except for those of us who were morbidly curious as soon as we saw it and immediately tried it out)
I Love Commiting Harmony Based Crimes
Harmony is so much funnn
it's far too easy to get into, once you get past the hurdle of actually getting it in game 
I didn't put Harmony in because this is meant to be a visual map that a non-modder can follow to find the right terms to ask about
- me, 8 hours of work only for button to go, "you didn't even have it active"
So it's more about "what can you do" than "how does it work"
tbh most of the C# part is for helping people go "oh, I can't do that without C#, darn"
harmonising the light functions was a mistake which I refuse to come down from /lh
"oh cp can handle that"
[redacted]
Yeah, obviously you can do just about anything in C# that you see in all those other categories, I think it's apparent that it's for things that can only be done in code.
atp we're one step away from cp-based frameworks
#making-mods-general message
i present to you, my light crime and my life sentence in jail
well that's one way never to have to deal with lights again 
i'm much worse now, i promise
you guys will never believe what I'm doing rn btw. A crime against cheeto nature
yes I'm actually playing the game
in fairness to me, last time I played was pre 1.6
So... theoretically I can make a token/config for a player to determine what someone calls them in dialogue options right?
yeah
i don't recall how to pull the %endearment key though
it's probably somewhere in the docs but the vanilla game does call for it 
how because I... well I was using the general config stuff one would use and i mean... i know that's not right because it does not, in fact, work
nightmare modding is a nightmare
you mean to type in a string? that might be restricted to c#
like player types in the string for GMCM to recognize*
if you want it to be customizable you would need a config token or C#
if you want just a big ol' list that you've prefabricated, that's a pretty simple endeavor
sorry I had to go find one of our cats im back
I could do a list but I was hoping to let the player just put something in the config like ... idk i have no clue what they'd want instead of "Kid" but I've heard many people say they don't like that Mr.Qi calls em that so I was thinking of doing it so that they could put whatever in there
Same with Mr.Qi's name title actually - I was hoping to make it so they could just put whatever honorific they want there
"EndearmentTerm": {
"AllowValues": "Your, Values, Here, That, You've, Prefabricated, For, The, Player, To, Choose, From"
"Default": "Your",
"Description": "Sets terms of endearment that the NPC will say during dialogue."
}
},```
how you end up using it:
Characters/Dialogue/MarriageDialogue<NPC>
`"Indoor_Day_0": "Hey {{EndearmentTerm}}! It's a start of a good morning to see you already."`
etc
if you're using i18n: *digs into the recesses of my brain*
`"Indoor_Day_0": "{{i18n:Indoor_Day_0|EndearmentTerm = {{EndearmentTerm}}}}"`  i think
ah its the i18ns innit
oh im not looking forward to adding all of that in... woe... woe to lily
I just looked up what i18n stands for for the first time
(it's the word internationalisation, there are 18 letters in it between the i and the n)
I.. well huh
same story with accessibility -> a11y and kubernetes -> k8s (i don't know if i've ever seen any besides those three)
i have deja vu
I've never seen a11y but I have seen k8s and never knew that
listen, anything before I joined the server didn't happen /lh
thanks i hate it
tag yourself i'm e15
eyjafjallajokull my beloved
Potential dumb question in #1323499944321224715
p13n is dangerously close to something a teenager would ask you to write on your arm to join a club
nightmare
there is a reason why I do not art....most of the time...
i think i was literally just missing the translation file aspect... which is, again, going to be a NIGHTMARE but at least it works , thank you very much
anyway, @velvet narwhal I'd say major frameworks would be FTM, CC, FS, AT and IE, thinking about what types of content gets added into the game
just in case its not only the translation part im going to keep it as a list of choices instead of the player entering something in (helps with translatability anyways)
the land of C# is one i fear
That definitely looks better without the mess of the content patcher bubble in the middle overlapping a bunch of text and arrows.
as a lighthearted option, can i request "changing hardcoded stuff" as comic sans
As I have stated in the past. I have made ONE c# mod...it sucked. it gave cookies when you hit a BUTTON
you can add train loot with IE??
your credit is too pale imo - I think it should be a darker colour so people can see you made it!
I didn't know about the two farm cave frameworks but surprised Farm Cave Framework (Continued) isn't on there
"the land of C#" is giving the xkcd map of the internet comic and (marge voice) i just think it's neat
I left off anything that was originally aedenthorn, which in hindsight idk if that's good or not
also for Dialogue you can probably just do Characters/Dialogue and Characters/MarriageDialogue? There's other stuff but 95% of dialogue is there
tbh it's not too bad
so what you're saying is that as always, there's an xkcd for that? 
The land of C# could also just say like "everything else", cause it really becomes abstract with the main limitation being your coding and imagination.
Like the stuff that's actually in schedules
Definitely true, but I wanted to give a little bit of context for what "everything else" might encompass
schedules, random tidbits in strings if you dig hard enough
Totally fair! it definitely shows some main draws to it 🙂 (I do really like the graphic)
my npc has a json called "hodgepodge" that has (among other things) a bunch of the miscellaneous weird places that dialogue hides out
though i believe tia is correct, from a "newbie modder" standpoint, it's unnecessary to tell them about things outside the scope
I added Characters/Dialogue/MarriageDialogue to the Dateable NPCs area
Since it should only be relevant to them
Now I have to squash everything for that whopper of a filename
...what does Spacecore do in the mines 👀
it has a bunch of spawning stuff I didn't bother to read in detail
but it can also add new dungeons (like the mines)
So depending on which instance of SpaceCore on the image you're talking about
"a lot"
I feel like I'm being a nuisance with some of my dumb questions... #1323499944321224715
I think my thought about all the aedenthorn ports is that I have no idea which of them were a 1-time fix and which intend to get maintained in the future, etc
I probably put at least one of them down
I put eBAGI down because apparently it's one of the frameworks with the most content packs?
(BAGI, that is)
(but eBAGI replaces BAGI, more or less, from what I can tell)
I was going to poke around with the dependency graph of mods to find the most depended-on ones
Since the definition of framework is a bit loose these days with CP assets being used a lot
just as a general life tip, if you constantly call yourself a nuisance when asking things, you're actively shaping how people see you - stop apologising for taking up space and you'll be seen more positively too (also, if you put questions here in the main thread, people might see them more quickly and you won't need to ping people into your thread)
That consistently boggles my mind. There were a couple hundred packs for it??
I made the thread for ease for me to keep things organized. and I kinda have some low self-esteem issues, I am working on them tho. I mean I could just forward every message into the thread. But I was told that I could just let people know about my thread each time I had a question...
Lots of people made tiny bagi packs to support one off ja mods with a handful of items
Button specifically said it >_<
I mean I can stop putting in here each time I ask a question...I just like the thread
that part was just a suggestion! I mostly meant that you should (for yourself, not necessarily for us) stop apologising/putting yourself down when you link them here
Ah. Sorry...Force of habbit...
and lets just say the media isn't helping at the moment...stupid birdflu
Me with a mod that is 100% C#, including several external libraries and network connection to online servers 
It's not all bad, it works well 
it just takes 10 minutes to load your save and apply the nested harmony patches when you use it with the other mods we explicitly support
Plus, on the "bright" side, technically, half the the mod is Python 
Github says 100% C#, but that's just because it isn't aware of the other 4 repositories that are necessary for the whole thing lmao
6480....I has a bone to pick with chu
You should direct your ire at chu then 
afaik that's just Machine Data™️
They made normal cheese a soft_cheese_item
Oh hey, looking up the stats, I see that today specifically, I have officially reached 300 Harmony patches in my mod!
Nice milestone for 2024! 
fear

wait, your stardew mod is requiring a network connection to online servers?
Yep
some kind of server maintenance mod?
No no, it's all gameplay
oh, archipelago!
it's the randomizer mod (archipelago)

Wait you made that mod?!
it's a multiworld randomizer, you can play with other people who are playing either their own stardews, or different games entirely
I hecking LOVE that mod
ah, makes sense
so you are connected to the server the whole time so you can send and receive items
dont think so
ohhh, I see
do note that if your mod requires an internet connection you need approval from nexus
[game] Tags on Cheese: id_(o)424 id_o_424 color_yellow cheese_item soft_cheese_item item_cheese item_type_basic category_artisan_goods quality_none
[Console Commands] Sent debug command to the game, but there was no output.
debug listtags
[game] Tags on Goat Cheese: id_(o)426 id_o_426 color_yellow item_goat_cheese item_type_basic category_artisan_goods quality_none```
It's there
I had a request a while back for Archipelago compat, I hope it's working 
hrrrhhh
Well technically, you can host your own multiworld on your PC. You need a network connection but it does not need to be internet-based
Oh, what mod do you make?
thats neither here nor there. if your mod connects to the internet, you need approval
Not You Again, the fish mod 
whoops
did the concat strike again
I'm just curious if I need to lable my large goat cheese as a soft cheese item. I'm not making it edible It's a larg boi I just don't know if the game will auto put it there for me >_<
Wait do you mean you were contacted by a user, asking for archipelago compatibility, or you were contacted that one of our devs, asking you for assistance with something while they were actively making archipelago bridges with your mod?
You dont NEED TO but the game will not put it there. Its just a tag we use for recipes
I put it on my Large Goat Cheese
Because we do have a short list (about... 20 mods?) of mods that we explicitly bridge with, and we randomize them too, and they were all contacted for permission, and some were contacted asking for help with said bridge
kk then I will too!
I assume one of the devs since they had a pretty specific request (item name change).
but we are inherently compatible with pretty much any cosmetic or UI mod too, we just don't interact
I want to have as much compat as possible >_<
Lezchill?
That doesn't ring a bell. The people working on this with me, that have specifically been working on mod bridges, are Albrekka (WitchyBun), Ishigh, Rubbya and myself
wait lol, 6480, I looked at your repo on github, there's no mention of soft_cheese_item for the large goat cheese XD
Whoops
"Name": "6480.qualitygoods_LargeGoatCheese",
"Type": "Basic",
"Category": -26,
"SpriteIndex": 1,
"DisplayName": "{{i18n:LargeGoatCheese_name}}",
"Description": "{{i18n:LargeGoatCheese_description}}",
"Texture": "6480.qualitygoods/Objects",
"Price": 600,
"Edibility": 100,
"ContextTags": [
"color_yellow",
"cheese_item"
]
}```
We must have added the tag after I made that mod then
I'm very smart
hm. I let them know it was done but it did take a few weeks and I never heard back, so not sure if it ended up working how they wanted.
mayhaps. I'mma still add the soft cheese item
Yeah we're going to use the tag
I still don't know what mod it was
was this convo public on nexus or private somewhere?
I also just realized something...there's gonna be some real good compat issues if people install my mod and your mod...
Private.
(for the record, I don't really have many item-adding mods but I am happy to help with archipelago compat if desired
)
Only reason why I say it, is because if someone has both our mods installed, there would be 2 large cheeses XD
not really, the items are optional in mine
i honestly have no idea what that would even entail 
Oh. I dumb
Pretty much any mod that adds actual content (objects, machines, npcs, doors, recipes, etc etc) inherently breaks with AP because they have content that behaves as if it's shuffled, but wasn't taken into account so it never gets unlocked.
That's why we introduced the concept of "supported mods", mods that we actually go over and add the content. But they are added mostly vibes based. Like if anyone likes the mod enough to add it to Archipelago, I don't stop them. That's how we got SVE. But also, it takes active maintenance work when said mod is also actively updating, so if the person steps away, then we get stuck on an older version. That's how we got stuck on SVE 1.14 until a kind soul comes along and helps us randomize the SVE 1.15 content 
I personally don't add much mod content, as I have my hands full with the vanilla content and features. But I help people when they are trying, by giving tips, pointers, and code architecture to make their lives easier
But I do help maintaining it once it's in, as it feels bad to remove stuff that was worked hard for just because a little thing broke (ex: Luck skill moving to spacecore luck skill)
It's really cool that you do all that
I haven't played it yet but I think Archipelago is pretty neat
The concept of it breaks my brain a little
Might I have some ideas for something I posted in my thread? #1323499944321224715
Randomizers in general or Archipelago in particular?
Just imagine getting to floor 40 of the mines, opening the chest, and it's a sword for Legend of Zelda Ocarina of Time
it's simple, really 
Thats insane to me 😂
i adore randomizers for specific games, but crossing games with archipelago does not interest me (sorry)
ouh, yeah i can definitely see how Random Crap Go™️ especially if a mod adds so many items would affect it
It is haha. I discovered it from the Starcraft 2 implementation, and ended up making stardew during christmas break because I was bored
it's also nice that people with completely disparate games can play together too 
It works well solo as well, as it is significantly different from mods like More Random Edition. We are more progression-based (random tasks unlock things that let you progress), as opposed to them that are more "Random bullshit go!". But since it's designed for multiworld, even solo play requires the extra setup and the server, so there are downsides
is 500g too much for a large cheese price?
Also Archipelago garantees winnability, as opposed to some randomizers that are just like "I give you random stuff and you'll probably figure it out", because in a multiworld with 1000 players, it would suck if everyone had to give up because one person had a bad roll
wait okay, so "archipelago" is a general randomizer for many games, and you did the stardew implementation?
(Other randomizers do that too, sometimes, just not always)
Yes exactly
compare to mods like cornucopia or Strange Machines?
There are over 60 games right now officially supported, and hundreds of unofficial ones. I made 2 supported ones and 2 unsupported ones, Stardew being my first (and my biggest by far)
so you mess with the randomizer logic too?
cornucopia uses the extra machine config mod tho...and that just make things confusing...
Strange Machines (the 1.6 version) doesn't, I'm pretty sure
Basically, we have a truckload of rules.
Things like
To enter skull cavern, you need a skull key and access to the desert
To get Gold Ore, you need access to floor 80 of the mines, a tier 3 pickaxe, and a tier 3 weapon
Stuff like that. Many games have strict rules for what is possible, but in stardew we instead take the approach of rules for what is reasonable, as a lot of things are technically possible to grind but would suck.
Combine thousands of these rules, and a smart randomization algorithm made by Archipelago Core (not me), and you get a generator able to generate winnable playthroughs for any number of intertwined games
Stardew has probably one of the most complex rulesets of any archipelago games, due to how many game mechanics there are that interact with each other in crazy ways
👋 hi, door logic is stupid and i have suckered 4 people so far and even gotten a vanilla fix for one very very niche thing i wanted
and due to that, we often find emergent patterns that nobody invented but become critical to the randomizer.
For example, friendship with Maru is one of the most critical things in all of Stardew Valley
what is the link for that?
I added a lot of arrows — is this better, worse, or about the same?
Look on Nexus, I don't have a link offhand
(When you randomize doors, she unlocks up to 4 different entrances to potentially-critical places by being friends with you)
found it
that's so neat
i hear atra screaming in the distance, "THAT'S MY GIRL"
kinda wish you could clear download history on nexus...
I always wondered what a logic map for Stardew would look like. In a lot of games (e.g., the zeldas and pokemons) it's a lot more clear cut
The stardew one is... massively convoluted, and not made for humans
i am 💯 not the person to ask about these kind of string maps cause i would give up and put them all into columns based on the unpacked asset name
yet it has the easiest-to-enter for mods
we are truly babied by pathos
pathos who literally supports half the mods of Stardew
it does
at the very beginning of the project, we quickly realized that, and built an entire logic framework to abstract away as much of it as possible, to make it maintainable.
As a result, we have extremely modular and easy to develop code, that ends up dynamically generating, at runtime, the "real" rules, which are massive and convoluted to the point of ridiculousness.
As an example, we have a rules parser that prints the end result of one rule of choice. Once, we tried to find which rule was the worst.
Turns out it is ||The Night market Sale of Rarecrow # 8|| (Spoilered if anyone wants to try to guess it)
The rule itself, when printed in a human-readable format, is over 800 000 characters long, about as long as two average novels
My big conclusion from mapping frameworks is that y’all need to come up with shorter names

Honestly I'm just gonna go with 500 for large cheese and 1100 for large goat cheese...
||Deluxe Rarecrow|| I guess?
elizabeth: "i am now going to charge the framework community with my carpal tunnel surgery"
wait, what rooms does maru unlock?
errr actually I have a better idea
Nope! Deluxe Rarecrow is actually a very simple rule
CanReach(Farm) and Has(Rarecrow_1) and Has(Rarecrow_2) and Has(Rarecrow_3) and Has(Rarecrow_4) and Has(Rarecrow_5) and Has(Rarecrow_6) and Has(Rarecrow_7) and Has(Rarecrow_8)
As a reference, from back in March, when we generated those stats
Total Locations: 2809
Total explanation length: 26126878 chars
Average explanation length: 9301 chars
Longest Explanation length: 763777 chars
Note: In the context of Archipelago, the word "Location" Refers to one task that gives a randomized item
I'll have you know "Machine Terrain Framework (and Aquatic Crops - formerly Custom Tapper Framework)" is a perfectly concise name
I pretend I do not see past the word Framework 😛
selph this is why you have a special place in my expansion that no one will no why their sword is suddenly named california 
Nah it takes way more than this to trigger my hand typing issues
About 200 pages written over 3 weeks, empirically
1: Mountain through her bedroom door
2: If you already have access to carpenter inside, you can go to her bedroom, and exit through the bedroom door
3: If you do not have access to carpenter shop, but have access to her bedroom, you can traverse to Sebastian's stairs
4: If you do not have access to carpenter shop, but have access to her bedroom, you can traverse to Exit through the main entrance
And as a bonus, in the case of 3 and 4, you also get access to Robin's shop, which is also critical
12 hours/day typing
Horrifying but understandable
Most other things unlock 1 door, rarely 2, so this one stands out as particularly critical, especially for how unexpected it is
is it even possible in regular play not to have access to the shop but to have access to her bedroom?
Might depend on time of day?
In regular play you always have access to the shop. But with doors randomizer, maybe the door that leads to the shop is the Island Farmhouse, but the door that leads to the bedroom is your farmcave. So the friendship allows you to traverse Farm -> Farmcave -> Maru room -> Carpenter shop -> Exit to Island Farm -> Now you have access to half of GI
Does her bedroom have lock hours?
what's the formula for artisain goods like cheeses?
I think cheese just has a price, and iridium and such are the usual multipliers
grumble
that's horrifying but neat 
I forget but gold is 1.25x and iridium is 2x maybe?
some artisan goods are on a multiplier but idk if cheese is one of them
Yeah I have that up rn
You can back calculate these from the wiki
silver is 1.25x, gold 1.5x, iridium 2x
I'm just upset because I want to make sure that the large animal prods I am adding have a good price...
Good price is going to depend on how they get made—does it take time to make them?
Iridium quality cheese takes a week to age, for example
It's just large milk in cheese press gives large cheese
So if yours is instant, then pricing it the same as iridium would make it definitely valuable
In vanilla, that gives gold star cheese
So you can use gold star cheese price as the benchmark
large milk is 1.5 times more pricy than normal milk. Just use that same multiplier
I know. I wanted to see if there was a formula XD
Normal milk price. 125. large milk price. 190....125*1.5=187.5 so it's rounded to nearest 10? XD
Well actually...it doesn't even work for the goat milk XD
I got a request to move the entrance to my NPC Apartments area because some mod that I'd never heard of uses the same spot on the Mountains map. xD
it's 1.53333333~
...was it from the mod author, or a user of both?
a user of both
wait, which one?
They apparently posted on both of our mods to see if one of us could move our entrance xD
the spot between Leo's house and Linus's tent
No, I mean which mod, I hadn't seen something there
The mod was Crazy Ed's Crazy Fruit Trees, I think
...I have never heard of that either
Welp I think I know what imma do.
I just wrote up a compatibility patch for it to move the entrance yet again if that mod is installed, but, uh, this is probably just gonna keep happening xD
On the upside, I decided I didn't want to publish an update just for compat with one oddball mod, so I also added new rooms to the lobby and added outside lighting?
So I'll have a New Years Eve release after I'm done nomming dinner. LOL
I mean if it was something that was 1.5 era I would've just said nah, but that's a recent mod, so yeah, I'd at least try compat if it were my mod
I made a release earlier that I announced as
Last release of 2024! (probably
)
an hour and a half to go, no new bug reports yet 🤞
hey Tiakall, do you know off hand if the spot to the right of Robin's is used by anything?
I was so confused why the screenshots on that crazy tree mod looked so weird to me and then I realised they used clear glasses for their screenshots 😭 I will never get used to that style
Or anybody, really
Below the entrance to Backwoods? Nothing that I know of, I think that was another spot I suggested for you
SVE doesn't, I did check that one.
I vaguely remember some sve thing to the right? but I could be very wrong
The cliff one lower than the warp shrine
It's still a hole INTO the cliff face for my entrance
I just moved it onto a lower cliff
anyway, happy 2025 everyone!!!
So it's not on the bottom edge of the map either, I'll screenshot it in a minute
ohh you mean this?
wait until the other mod posts a compat update for your mod that also moves their entrance one cliff down 
Nothing adds to that that I know of. Map mods tend to rearrange the terrain there, though at this point I think the only functional ones are SVE and Overgrown Valley
does anything happen to uh
Overgrown Valley's description says it modifies mountain so you may want to check
ick
that cliff under the pink tree 
I think someone asked about that early this year, but don't think they ever released/they moved elsewhere
I'm tempted to ignore Overgrown for compat purposes until someone complains. >_>
Does it change the cliff?
thinking about running overgrown and LNH's new areas just so I know what they touch 
I don't know, I had to go to Kofi to download it, which is more effort than I wanted
I don't think overgrown changes things like that but I can check for you quickly
well, I'd need to know both locations potentially for Overgrown
do you want a screenshot of the mountains with overgrown enabled?
yay
here's it without overgrown vs with on the same save. Virtually no difference (I just wanted to make extra sure before I led you astray lol)
thinking of drawing a little icon overlay on certain items in inventory/menus. stack size is bottom right... do any really popular mods typically use any of the other corners? (i'm not worried about the thumbs-up icon for already-read books)
isn't the quality star top left
like the silver/gold/iridium indicator
nope. bottom left 
actually, do i even need to be worried about the stack size
Archipelago uses top left for the indicators that tell you "There are randomized tasks associated with this item remaining"
We also append to the tooltip the list of said locations
huh, so, in case anyone else was considering flipping the tiles for the black sideways armchair, know that the furniture isn't properly sittable on the opposite side. xD
But we use top right on the calendar for tasks, and bottom left for traveling cart days
We also use top left on the elevator menus
I see possible double doors in my future and this makes me very happy
no, that's the archipelago symbol, I think
yes it's this icon 
the archipelago symbol is
, but we had a nice person make custom pixel art for stardew to make it fit a bit better with the style
We let users pick which icon set they prefer between the two
Joja Catalog for Real Fake Doors 
I'm probably gonna release this update to EMA with just this functionality but I am interested in making double doors open together regardless of which one you activate
And it has colored variants to give more info. For example the red one is a trap for someone, and should be avoided
I bet this is because of ChairTiles
It definitely is.
The one with the arrow is a progression item that will unlock something for someone
That happens if you pick left or right instead of opposite in the ChairTiles direction, mhm
Only red chairs are allowed to face left, apparently.
That's... specific lmao
It's the only big chair sprite that faces that way natively in the tilesheet
Here is what it looks like with the other icon set. Imo both look good so that's why I made it a config and let users choose
oh i haven't asked it, but i assume it'd still have the functionality of the npc relationship bit cause iirc you said it's set up the same exact way 
Yep, it's still using the regular Door Action
nice
I'm sure I'm missing something silly, but I'm trying to follow the Get Started page for modding on the wiki and I get this warning that I think is stopping the Modding API from loading properly;
The analyzer assembly '<path>\SMAPI.ModBuildConfig.Analyzer.dll' references version '4.9.0.0' of the compiler, which is newer than the currently running version '4.8.0.0'.
All I can find online is generic indications that I might have the wrong framework target but as far as I can tell I'm using the latest SDK fornet6.0. Any ideas?
i think you want to install the SDK for net8 or some newer dotnet. you can target net6 even with newer SDKs
Thanks! It's still showing the warning, but it does seem to be loading the Modding API now so it might not be an issue anymore?
(i think one of my projects actually gets that too but if its a warning it doesnt actually stop it from building. dunno why it happens)
<TargetFramework>net6.0</TargetFramework>```
you can still get some of the fancy stuff iirc with just a latest langver but i still just force this
I was warned away from using latest and told to target something specific like 12
fair enough
I don't have a LangVersion property at all lol, must be using a default
Yeah that's an optional property
You don’t have to have one iirc
it's just if you wanted uhhhhhh
button uses it a lot, hash... sets? 
or a lot of fancier stuff that i have yet to wrap my brain around
Ah that might be it; there's a visual studio update that I haven't installed
how does one type in the code for monster fruit wine? Is it like FlashShifter.StardewValleyExpandedCP_Monster_Fruit_Wine?
This fixed it, thanks for helping y'all!
Sounds plausible, but you’d probably want to check with Lookup Anything to be sure
Or look it up in the SVE files 
(I think they’re more organized now? But there’s a lot in there)
this can look up the item code? dang
if it's a normal wine (flavored item) and not a specific different item, the answer gets more complicated
Lookup Anything has some configs
is this C#?
either way (CP or C#) if item queries are supported you can use something like FLAVORED_ITEM Wine FlashShifter.StardewValleyExpandedCP_Monster_Fruit
I don't think monster fruit wine is a separate item on its own, but just vanilla wine "flavored" with monster fruit
(whoops correction)
I think so too cuz I remember seeing an error one time where the code is like
(FlashShifter.StardewValleyExpandedCP_Monster_Fruit) Wine
when the json had an error one time
If you mean spawning through the console, you probably won't be able to, the console only supports a super limited list of flavored items
yeah console spawning doesnt support item queries iirc
oh no I'm not tryna spawn it dw lolol




proof i've only gotten worse in terms of my c# endeavors