#making-mods-general
1 messages ยท Page 94 of 1
Ah
lemme untick that
https://smapi.io/log/89109dfa061e46d581b814956f74166b if you're curious
Log Info: SMAPI 4.1.3 with SDV 1.6.10 build 24309 on Microsoft Windows 10 Home, with 111 C# mods and 49 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I get this and then crash to desktop https://smapi.io/json/none/f0a7eb71b49946cbb6fa78cd8e487406
(Doesn't show in a normal log because..AVE)
yep, unlogged like the support ticket
I'm just not sure why this would happen
It's currently being discussed in thr support thread
But I have no clue
It's wild
Can someone eli5 AVE to me? And what's the most useful thing to do when it crashes without logging?
AVE = access violation error
If it's not in the SMAPI log, copying directly out of the terminal is the next best
Technically there is a way to log it, in theory. Not sure if it works for all cases, but I talked to Pathos about it
I used the SMAPI json parser because lazy
(don't bad transpilers cause that pretty easily? maybe I'm thinking of another one, though)
you said spacecore is failing to load? like from the title? or just newday?
Oh I know what I did, I fucking renamed my stupid mod and didn't change the Type in the building data
The thing that confuses me is that it's in MigrateLegacyItems and then further down StardewValley.Internal.ForEachItemHelper.ApplyToItem
Like at a glance that doesn't read like a stack trace that should cause an AVE, but I guess it could be transpilers
https://github.com/greyivy/OrnithologistsGuild/blob/25f7a7866bf2d9fe14cde7a2651ffce2577fb165/OrnithologistsGuild/ModEntry.cs#L72 this looks like perfectly normal code to me
DH IS SPAMMING MY LOGS 
Completely reasonable to iterate over all items and try to migrate the ones that need migrating
Maybe it's something about delegates?
Idk anything about delegates though
https://smapi.io/log/ebbac64c7655455e82ea961cf1fbe4ed sorry about ding, from title as well as newday didn't cause a failure
Log Info: SMAPI 4.1.3 with SDV 1.6.10 build 24309 on Microsoft Windows 10 Home, with 110 C# mods and 48 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Do you have anything using save serializer
there's gotta be someone in that list
As far as I know it appears to work fine, until you have a spacecore-serialized item or something. Then it disappears when you save with it and reload
i can go check again if i need to load any assets
uhhhhhhhhhhh anyone know off the top of their head? this list i ripped from logo's playthrough 
oh wait i know, VMV yeah?
I used save serialize for my scythe enchant mod
If spacecore doesn't work, then you lose enchantment when you reload save
Should be easy enough to check
i am ignorant
(VMV what?)
using spacecore serializer
hum, i don't know what the C# part do outside of magic
it is possible the chest feature is using serialiser
it'll let me in the game eventually
yeah alright grumble grumble StardewValley.Delegates.ForEachItemDelegate( (Item item, Action remove, Action<Item> replaceWith) "doesn't take three arguments or something"
It does not
then you got your answer avi!
So, im really bad at all this file things and mods
Anyone wants to help out a dude updating his mods and SMAPI ?
I Only use 3 mods, so it shoulden be too bad haha
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
Not modded farmers!
my bad wrong quick tab
Oh
Okay yeah
Pathos added the in keyword
https://smapi.io/log/1e719a2c100d484896609e83571f7598 nope, just fine, i'm checking from title now
edit yep, from reopening the game, enchant is still there
Log Info: SMAPI 4.1.3 with SDV 1.6.10 build 24309 on Microsoft Windows 10 Home, with 6 C# mods and 0 content packs.
Well, finally gave it the right type, but uh... this isn't right
Whatever, it should still function for a serializer test
unfortunately trying to read the wiki about it makes my head hurt
what in tarnation
I'm surprised because i know pintail couldn't map that shit so
But yeah
That seems like a weird place to add the in keyword.
A value pass to a byref pass can do that
I have no idea how to fix this based on the wiki examples
Does this mean it needs to be totally rewritten?
No
Alright, as far as I can tell, my building is being serialized properly
Just recompile I suspect
Yeah, just a recompile. At worst, add in
Yeah
maybe just a problem of the author mis-serializing?
oh not the AVE, i meant the spacecore thing
oh unless we'reb oth on the same topic
my brain is scattered, this morning was a loud scuffle because the whole house went out to vote
Is it still there when you load the save back in?
I mean, the thing about SpaceCore serializer is the only call mods do is api.RegisterSerializerType(typeof(blah));
They don't manually serialize anything
Yep
recompile errored
Still there, still functions (incorrectly but that isn't a SpaceCore issue lmao)
Error CS1593: Delegate 'ForEachItemDelegate' does not take 3 arguments (CS1593) (OrnithologistsGuild)
Which is why i was trying to figure out how to rewrite it
and how many arguments it needed
The wiki only seems to be going on about Utility.ForEachItemContext which is why I'm super confused
Ornithologist's Guild is using StardewValley.Internal.ForEachItemHelper.ForEachItemInWorld
StardewValley.Internal.ForEachItemHelper.ForEachItemInWorld(delegate (in ForEachItemContext ctx) {
return true;
})
Yeah it became a context
Also Utility.ForEachItemContext just calls that exact method
(Also also I have hit semantic satiation for the word "each" please send help)
"pumpkin" did that well over a dozen times for me during the contest
ah ok
let me try that
I understand now
For some reason this feels like pushing my brain through a maze, except my brain is toothpaste
I compiled and it works!!
No more AVE
Now for the grueling task of figuring out how to PR
Hey I've tried to make a mod to remove the tipsy buff and it's not working. Any advice? I've tried several ways of doing it and none are working
Tipsy is the hardcoded one isn't it?
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.
Oh, well that should make it quite a bit easier lol
short question about map making: Tilesheets are unpacked as .png could i unpack them in .tsx? and do i have to redo all the map properties per tile again for every new map?
The JSON code doesn't have any errors, I think I'm just not finding the right approach This was my first attempt: {
"Format": "2.4.0",
"Changes": [
//Beer
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
348: { 10: "0"},
303: { 10: "0"},
346: { 10: "0"},
459: { 10: "0"}
}
}
]
}
My second attempt didn't work either:{
"Format": "2.4.0",
"Changes": [
//Beer
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"BuffID": null
},
},
//Wine
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"BuffID": null
},
},
//PaleAle
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"BuffID": null
},
},
//Mead
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"BuffID": null
},
},
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
348: { 2: "5"},
303: { 2: "5"},
346: { 2: "5"},
459: { 2: "10"}
}
}
]
}
you don't have to pack any of the map.pngs as the game will auto-grab, even if you're using recolors, your mod should only be shipped with your own .tmx unless you made your own custom tilesheets, then you can ship those (obviously)
if you have custom maps, yes, you have to do the map properties yourself
did you spawn new copies of the items?
Does Fields even take indexes like that?
No, I'll try that
for the first attempt
well, the fields look wrong
i don't think you're targeting anything correctly there
good afternoon... for whom it applies 
So if i do a custom map with vanilla tilesheets i need to do the properties by myself and the game wont grap them? sorry im pretty new to all this ๐
Honestly I don't really know what I'm doing ๐
if you're talking about whether it gives a sandy-step, no, but if you're talking about things like warp, nighttiles etc, yes
Yes im talking about Sand, dirt, digable, ...
then no, the game from the tilesheet understands where and what to do
by using the .png to make the map? ๐
In fact, because you're trying to modify Buffs you're gonna have to use TargetField
it's hardcoded that the game uses those specific .pngs for their sounds https://stardewvalleywiki.com/Modding:Maps#Basic_concepts
Thank you so much! now i get it. i already read the wiki and watched a few tutorial but i was super confused. Thats that kind of magic i like ;D
i would highly suggest just ripping a vanilla .tmx and going from there though, starting from scratch as a new person ain't the right way to go
yes thats the way i want to try. Thank you!!
afaik i might take on the reins from aba doing the new location docs, that depends on how lazy i feel
@ivory plume mods that bundle harmony are now causing issues
Please send nukes
That looks helpful thanks
These look pretty incorrect. Have you unpacked Data/Objects to see what the objects you're editing should look like?
(Also you should upload to smapi.io/json, it's more readable there and does basic validation for you)
{
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": [ "348", "Buffs" ],
"Entries": {
"Tipsy": null
}
},```
sorry for this sentence is my english to bad ๐ i cant understand
oh that's not about you
we do more documentation on https://stardewmodding.wiki.gg/wiki/Main_Page
mainwiki is for the short and sweet, but the wiki.gg is for in-depth tutorials
That might work, thanks!
I tested it, it does lol
Y'all probably don't need my input anymore, but my coop generated by Spacecore seems fine.
Huh. How is it loading Harmony, given that SMAPI itself already loads it? I'm guessing it could be related to the private assembly reference changes?
seems the recent update didn't hurt anything on my end... I'm happy
Possibly! That or the fact that smapi no longer uses harmony itself
Would it be worth it to ban other copies of harmony explicitly?
SMAPI hasn't used Harmony for quite a while, though.
SMAPI doesn't have any patches itself, but it still loads and uses Harmony (including the MiniMonoModHotfix hack).
I think explicitly ignoring Harmony would be treating the symptom; it would just cause issues with a different common DLL instead. It makes me wonder about the Json.NET errors I've been seeing reported on Content Patcher's page.
I forgot because that patch only exists to make harmony work so it's possible to have a harmony free smapi
Not that harmony isn't currently used
Sorry!!!!
In fact, that does seem to be the cause of the Json.NET errors:
Automate (from Mods\Automate\Automate.dll, ID: Pathoschild.Automate, assembly version: 2.3.1)...
Loading assembly 'Newtonsoft.Json.dll'...
Loading assembly 'Automate.dll'...
I might just pull the private assembly references changes out of SMAPI 4.1.0 until things are more stable and we can look into it without all the other confounding factors around the 1.6.9 update.
oh pathos there was typo here https://github.com/Pathoschild/SMAPI/blob/develop/src/SMAPI/Metadata/CoreAssetPropagator.cs#L337
If that was for me then yes, there is, but a smaller try-catch around GetTypes would have meant that the mod loaded and patched all the valid types successfully instead of failing to load at all.
based on decompile it should be _mapSeatsDirty
this triggers error on CP patch reload
(thanks chu)
Aren't we already at 4.1.3?
Yep. I mean out of the 4.1.x series of updates (i.e. 4.1.0 + bugfix patches).
@ivory plume Couple questions about the decompile project. Not time sensitive, of course.
-
Is there any particular reason why
System.MemoryandSystem.Buffersspecifically are referenced by DLL? This prevents SkiaSharp from compiling for me as of 1.6.9 -
Did any code actually change in Netcode.NetDictionary.GetEnumerator()? Because the code ILSpy generates is complete nonsense now, and invalid. But I think it's just being super weird about TSerialDict potentially being a value type and the original code hasn't actually changed?
-
Are you averse to the ILSpy version used to decompile being updated? WIth 1.6.9 there's some funky code being generated where it, for example, is completely breaking down on switch cases and using tons of labels when it shouldn't be.
atra mentioned a compile/decompile thing about switching on strings
trying to build SMAPI and having a bit of a faff about language version
/home/ichortower/SMAPI/src/SMAPI/Framework/Commands/HelpCommand.cs(79,21): error CS8652: The feature 'raw string literals' is currently in Preview and *unsupported*. To use Preview features, use the 'preview' language version. [/home/ichortower/SMAPI/src/SMAPI/SMAPI.csproj]```
(+2)
i have added `<LangVersion>preview</LangVersion>` to the csproj but it has no effect
what version of dotnet do you have
this particular computer has dotnet SDK 6.0.423, so maybe i need a newer one, but i would think the error wouldn't be so confident that i could fix it in that case
You need 8 I suspect
boo
Yeah, you can build against SDK 6 (or lower) but the C# compiler is part of the SDK, so to use latest compiler features you need latest SDK.
It is sort of counterintuitive, given how the runtime version and language version are separate entities, but that's how it is.
my complaint is only about having to install stuff, not about the C# setup in particular
although i remain confused that sdk 6 knows about a feature and tells me to enable it but it isn't available
Is that still in preview or is it just from a version after 6?
Does it actually know or is it just defaulting to preview
its a C# 11 feature, which would be preview for C# 10
oh
no contenthashes on switch either
ContentHashes was added purely for SMAPI, so that makes sense
Entirely for calling out people who use XNB mods. Content hashes are the best.
How many ways are there to build strings in C# now?
My memory's tapping out at seven (+, string.Format, string.Concat, StringBuilder, $, @, and now """) but I'll bet I missed a few.
do you count + and += as different
(You can also use combinations like $""" .)
Yes, I wasn't counting combinations like @$ even though I use them routinely (since they add kinda infinite possibilities).
Clearly the best way to make a string is csharp Encoding.UTF8.GetString(new byte[] { 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 46 });
I count + and += as the same since += is just x = x + y.
is string.Concat different than +
Not by much.
It accepts an IEnumerable so you can join more than two segments
var builder = new StringBuilder();
var testString = string.Format(string.Concat($"{exclamation}...", builder.Append(@"""What a mess of a string.""").Append(Encoding.UTF8.GetString(new byte[] { 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 46 })).ToString()));
Finally, a string
god i wish there was an easier way to do this
Using Encoding is certainly a novel one. Could riff on that and work in some unmanaged pointers too.
Oh yeah, and how could I forget new string(char[]). And Runes.
oo i should check the cheats save option
Personally I'm a fan of string.Create. Only occasionally practical though
that's.. odd
why are switch saves binary
What else would they be?
XML like PC I guess
They're actually no-shit XML? I thought they were a binary representation like XNB.
+1 to the mod bundling harmony.dll pile
https://smapi.io/log/4cf211ee834f4fb095d8a68c12b1363a?Levels=trace~debug~info~warn~error~alert~critical
Log Info: SMAPI 4.1.3 with SDV 1.6.10 build 24309 on Microsoft Windows 11 Home Single Language, with 45 C# mods and 169 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Yeah, saves are just XML
how can i tell which mod is the one that loaded 0Harmony?
I opened one a couple days ago to help debug some issues
Edited it a bit
Also useful for turning on chat cheat commands for a save without smapi
(this is utf8)
In raw log search for 0harmony lol, it's ChildToNPC
Huh, learn somethin' every day here... I never even thought about considering the option to open a save file in a text editor.
Wait, so it opens up fine on PC?
yes
...what.
Is it in UTF16 or something?
hmmmm
Yeah, looks perfectly normal on my end too.
I'll bet it's a BOM thing.
oh wait
That was my guess too
no that fine is the resaved xml i sent
Oh
here's the weird one
Oh, that's much smaller
Wait, that's 10% the size
indeed
I wonder, I know I've seen some code about compression that's disabled on PC
it's just made and not even slept yet (as in, day 1), is that to do with it?
(and that was some truly awful back of the envelope math)
Ah, yeah, compressed saves can load fine even on PC
Guess it makes sense that the PC versions wouldn't compress saves, they expect not to be tight on storage.
You can look at SaveGame.TryReadSaveFile, there's a check for if the first byte ix 0x78
ah
It is forced enabled for saving for consoles though
Shhh, mobile doesn't exist. It was just a bad dream.
No
I wonder of there is a way to make a string on the stack
But this is off topic
:O
it works!!
oh
the debug commands seem to not (world_setminelevel, help, netjoin)
oh but backpack does
OH
i was in the console commands section
obviously they wouldnt work
You can. You can stackalloc a byte array and pass it to encoding or as a ReadOnlySpan. Doesn't look much different from the non-stack version, though.
I'm not sure why you would - I guess maybe if you know the exact length of the string in advance and are doing the work in a low-level parser or language extension or something.
Does XNBHack work for anyone?
what XNBHack version and what game version?
Both latest, 1.1.1 and 4.1.4
Sure, I just used it yesterday.
I'm getting this ๐ฆ
Could not load type 'StardewModdingAPI.IManifestPrivateAssembly' from assembly 'SMAPI.Toolkit.CoreInterfaces, Version=4.1.4.0, Culture=neutral, PublicKeyToken=null'.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at StardewValley.LocalMultiplayer.GetStaticFieldsAndDefaults() in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\LocalMultiplayer.cs:line 120
at StardewValley.LocalMultiplayer.Initialize() in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\LocalMultiplayer.cs:line 92
at StardewValley.GameRunner..ctor() in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\LocalMultiplayer.cs:line 439
at StardewXnbHack.Program.CreateTemporaryGameInstance(PlatformContext platform, String contentPath) in /home/pathoschild/git/StardewXnbHack/StardewXnbHack/Program.cs:line 327
at StardewXnbHack.Program.Run(String[] args, GameRunner game, String gamePath, Func`3 getLogger, Boolean showPressAnyKeyToExit) in /home/pathoschild/git/StardewXnbHack/StardewXnbHack/Program.cs:line 149
System.TypeLoadException: Could not load type 'StardewModdingAPI.IManifestPrivateAssembly' from assembly 'SMAPI.Toolkit.CoreInterfaces, Version=4.1.4.0, Culture=neutral, PublicKeyToken=null'.```
Was it on beta 1.6.9?
Is there another version of SMAPI out already? Mine from yesterday says 4.1.3.
No, none of it was beta, it was after all the releases and efixes went out.
It was just updated like a few minutes ago. Fixed content patcher "breaking" content packs or something like that.
Well, you can try 4.1.3, that one definitely worked with xnbhack 1.1.1 for me yesterday. Now I'm afraid to update to 4.1.4.
Pathos did say he was reverting some private assembly stuff to deal with the Harmony issues, I think.
( @ivory plume xnbhack needs a recompile?)
Sure, I guess I'll do that today.
I'm trying to decide whether to imagine that statement in a chipper tone or with a deep sigh.
Meanwhile myuu seems to have been awake for the last like 36+ hrs lol in #vanilla-tech-support
Ah, memories of work, and skipping away on vacation the day before the push...
How are people feeling about mobile mp
Dreading the bug reports
oh no myuuuuu
But thankful there's no mobile SMAPI to compound issues right now
does it let you connect mobile sdv to smapi sdv on pc
Yeah
fear
Myuu has already been doing that
(key word being now because apparently the maintainer came back??? But maybe it's likely they'll take a look at the mess and just shrug)
The guide on the website even says the ideal scenario is to connect to a PC hosted farm
if my janky mid-day save hack still works on...whatever mobile does now, I'm fine with it coming back
if I have to write a better one I'll cry
Is mobile still on xamarin or is it using core now?
Core
well i was hoping it'd be a pc hosted vanilla sdv
Thank God
given the usual problems with mismatch mod list
Core with AoT, though.
huh, did something change? https://smapi.io/log/d3421eff73b847e9a6e497d819e5c808
Log Info: SMAPI 4.1.4 with SDV 1.6.10 build 24309 on Microsoft Windows 10 Home, with 124 C# mods and 70 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
To be more specific, it's on the android version of .net 8
With AoT, yes
uif2 is throwing a nullref now on Display.RenderedActiveMenu event 
I mean, Content Patcher could still work
You mean UI Info Suite 2? It's throwing on a lot of things.
But most likely no harmony (and definitely not transpilers), yeah
I just disabled exceptions for it for now.
No harmony but smapi doesn't need harmony anymore
Non harmony mods have a chance
Yeah but almost every framework mod uses it, or relies on something that does
Oh, that makes more sense. I read it as the understatement of the century.
Are we really talking about mobile porting again? It's been a day, lol
Does FTM use harmony?
it's technically not critical, but it does nowadays, yeah
we just have to do everything through actions i guess
I mean it makes my life easier since I don't ever have to worry about mobile support but I do feel kinda bad for mobile users
it's because the smapi mobile dev came back, so we're having another existential dread episode
Interesting. I can't recall how much of SVE's harmony stuff is critical, but I wonder if that means it could work on mobile. ๐
random monster settings, some monster optimization that became less important in SDV 1.5. etc
https://github.com/Esca-MMC/FarmTypeManager/tree/master/FarmTypeManager/Harmony Patches
but yeah, SVE does a few dozen random things that might be missed 
I don't feel bad for mobile users. Mobile games are an abomination.
I was like, 85% joking.
Ah,
Not 100%, but nevertheless, I wouldn't expect any gaming experience to be excellent on mobile.
There's definitely some mobile game gems out there! I just hate the form factor and touch-only controls
(mobile stores are aboms, but I don't particularly like steam either, so
)
Match 3 games (the non life counting ones) are pretty decent
On a good phone yes
I love the tap to move style of play.
I hear combat is a nightmare without a controller
Fdroid is wonderful! Albeit with a limited library
The tap controls are quite good
it's changed a couple times, but with a big screen it was okay, they did a lot of QoL movement stuff to make it tolerable
๐ค tbh im fine with android smapi being dead.... As much as i like having my mods, it was . .. awkward when it came to actually getting them to work, and with all the android updates, was just a hassle
Still have that prototype mod for putting that on PC...
I one-shot the volcano with tap controls starting at like 11 am
It's fine
Get good.
I've never tried it, maybe I'm already good /s
Given that mobile can connect to PC and not break, does that mean any platform, if forced to join a PC game could understand each others packets?
I think that would depend on how it's ported to other platforms
If it's pure net aot then probably?
Yeah, I'm not sure if consoles even can do normal socket connections
(Specifically console SDV)
Instead of their platform's networking stuff
(As in, the platform network that lets you connect to friends and stuff)
And it would almost certainly be heavily NDAd if that were some kind of limitation!
As for if it would work if you did manage it, I'm not sure.
I'm not sure how close what we're doing is to normal .net aot
Isn't that stuff usually just a layer on top?
For consoles in particular
I haven't looked at our console stuff much, but for SDV it's an entirely different net helper instance. If it's like steam, completely different API calls and stuff
I mean, to be fair, there are games with crossplay, using PlayFab or stuff
Aaaah interesting
I think sony is kinda particular about how crossplay is implemented though
Like various restrictions and what not
Not sure about the others
My only real familiarity with networking is web stuff
Well, like, there's web rtc and web socket for example
They both do networking, but they can't connect to each other
That's fair! Genuinely no idea personally, but I'd bet it's a very specific type of "request these addresses and ports, and you might get them" kind of thing.
Pure speculation, though!
(I realize there's a lot more differences in addition, but I think that's the relevant part to this discussion)
Yeah, I do know how to use that, I'm just not sure how it compares with stuff closer to the hardware
(ix my last log, i loaded an old save and that was a fat no no
)
Mobile should generally be fine in that regard, they can even run network servers even though it tends to be a bad idea.
Consoles are definitely different.
We could in theory have like a PlayFabNetClient/PlayFabNetServer (or some other commonly usable net platform) (in this case it's not like dedicated servers, it's just whose hosting) I guess, similar to GalaxyNetClient/Server and SteamNetClietn/Server
But it's not as simple as crossplay itself, there's a bunch of restrictions for it on each platform too
I wonder if modded server magic could trick a console client into thinking it was connecting to a vanilla console host
I don't think sony's stuff is public, but microsoft has some public stuff about it in the gdk docs apparently
The whole Bedrock/Java thing makes me think it would be possible. Edit: Geyser is what I'm referring to.
I assume you'd have to somehow connect to the console platform's servers for that
Minecraft is probably the exception since it's like the most popular game in the world ever, so they have leverage to say the least.
A quick google search says you can't connect to custom servers with MC on switch at least
You can if you use some app to proxy it to a fake LAN server
Though for MC I think it shows -- ^ yeah
(Phone app)
Ah, only possible for Xbox and Switch, so of course Playstation is the odd console out.
Hmm, can you even connect to lan servers with SDV on console
Looks like for Xbox+Switch the guides have you change to a custom DNS server which will redirect the requests.
Yes
There's the weird fancy stuff and then the normal lan stuff (LDN, but requires ldn Mitm on the switch if you're doing it to an emulator)
Interesting
I don't think the โCustomLocationsโ on the content patcher is working, anyone know what it is?
It was fine with SDV 1.6.8, but when I updated to 1.6.9 and the latest version of CP, the location is no longer added to the game.
SDV is up to 1.6.10, and smapi is up to 4.1.4 now, so update all of those cause so far everything is pretty smooth
Also are you making a mod or using mods?
Just loaded my mods in 1.6.10
Ah, 1.6.10.
oh, can I update my stuff now?
What benefits does the smapi developer version have?
evening all just got off work anything i should know about 1.6.10 before updating everything again?
It seems my mod cape Stardew working fine
You see trace in the window
it spams the console, pretty much
It's just a config value changed - you can make any non dev version a dev version
I created a mod with 1.6.8 until just a few minutes ago and it loaded fine, but when I updated to SDV 1.6.10, SMAPI and the content patcher to the latest version, the โCustomLocationsโ is not working or the locations are not loading.
I was told yesterday to wait 24 hours for the fires to be put out, b4 updating, are the fires out yet?
Huh, turns out the "SpaceCore 1.26.0 not compatible" people were because of the really old mods with 0Harmony.dll stuff
CustomLocations shouldn't be used in 1.6.x anyways, you should be using data edit patches pointed at Data/Locations instead.
yah >.> fun times lol that Data/Locations is
aw, it's not that complicated
Yes, I will try that.
Oh nvm bunch of errors popped up could not find files
Anyone have examples of event.actionsOnSkip being used?
Well it's the modpocalypse again
I tried to add an event action but I feel like I used the improper syntax
Did they fix the .tmx map issue yet?
last i knew it was fixed
Turns out SpaceCore isn't properly processing spacecore-serialization.cs/etc. stuff - it never takes stuff out or puts them back in
What a nasty oversight
have faith in you
Well, that bad part is, it's released. Which means old spacecore-serialization.json stuff didn't get updated, and if the save doesn't match things go kaboom
If it doesn't match when it's working that is
So I'm adding code to fallback to loading without the modded data otherwise

(The flaw with how SpaceCore takes things out anywhere instead of in specific places is that you can't really reconstruct it for any differently structured XML)
Compared to a manual approach of say, only taking out terrain features in game locations
hmm i hope all goes well then
I don't think I'm running any mods that use serialization but whooo knows
Honestly, I should've added this fallback ages ago
Since if you revert to an older save version but leave spacecore-serialization.json in there, things could very well go kaboom like mentioned
...And of course LoadGameMenu is using some local methods now for the stuff I need to access, so I need more shenanigans to access those instead of transpiling FindSaveGames directly
Oh no
I need to access some of the local values from outside the local function
Whyyyyyyy
oof

maybe i should do ichor's snorlax method instead
swap in whatever special type only after save loaded 
well general mockup done now for details
Okay it wasn't that bad
Hai hello :3
newInsns.Add(new CodeInstruction(OpCodes.Ldfld, originalMethod.GetParameters()[2].ParameterType.GetField("pathToFile")));
Assuming it works
That looks suspicious
I'm glad the Item Bags author gave me a copy of the dev build to test with instead of me needing to find some mod that adds an easily accessible C# item type
How so?
I should probably use GetParameters().Last()
Since that'll always be the captured stuff
Oh lord i came here bc i have ideas for a mod and wanted to learn about it but i dont understand a word yall r saying
just ask away
you likely will not need to worry about what it is theyre talking about if what you want to do can be done with content patcher
Ohh okay gotcha
I tested some fun harmony shenanigans a while ago to do GameLocation subclass sanitization and I was actually able to get it working
basically it filtered the list of locations while saving, and when it encountered a subclass, it created a blank GameLocation, copied stuff over, and called a method on the subclass to copy state data into ModData of the new placeholder location
it worked really well, actually, and I didn't even need to touch the loading code bc the game reads from location data and then copies save data into the loaded locations
well 2 main mod types CP (content patcher) and C#
I should go look at the load menu code.
CP is fairly easy to learn
!startmodding
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.
Thank u so much :D i will look into it
What happens if you want custom data on the subclass?
(like net fields)
have any questions about anything mod building related just hit us up
Might be a stupid question but with the cp one, would it be possible to run a shop from on the farm? ^^; i wanna get the basics of the idea down before I commit to making anything
there's a mod kind of like that, market town
the base class for the subclass has a method that's called to "store" custom data, so I was just using that to write values to the ModData
the copies were also only used for serialization, and didn't affect the instances in-game, so any netfields were preserved on the "live" instance
(That was actually the main thing I wanted to test)
if you want to make your own, then you need to use C#
That's very interesting. I generally don't like mod data because of the constant de/serialization, but if it's for saving and loading anyways that makes sense
hmm wasnt there a shop framework at one point or did it not get updated?
making a shop is easy, making the farmer be the one running it is different
The general idea was to add in some more baked goods as items and run a little bakery either somewhere in town or from on the farm itself, i have no idea if that's possible tbh but i looked through some mods and didn't see anything quite fitting what I want, ig i want something personal for myself
depending on what exactly is meant by "running it"
that shop framework is also no longer needed in 1.6
Time to make a new test save in case this blows up
putting the shop on the farm itself would also be more difficult than otherwise
Good point, but I haven't updated my dev instance, so yes ๐
yeah, NPCs are blacklisted from pathfinding on the farm
I'm still on SMAPI 4.1.0-beta.5
but yeah, making a shop elsewhere run by an NPC or just no one is easy, but i didnt think thats what they wanted
.<
I see
(not to mention people with different farm layouts, modded or otherwise)
Truee, honestly I think the mod would be more for myself in one specific save i have but still fair
I have so much lore for my save and yeah LMAO
hmm it could be put in town to make it easier
maybe you are run e-bakery empire (through this funny looking shipping bin)
You could make a shop building with CP or SF to get around the farm placement issue, but actually selling out of it would require C#, yeah
But look into Market Town, it might be similar to what you want
Okay! I'll check it out :D
youll miss all the fun bugs maybe 
na still in bug beta
Posting SpaceCore 1.26.1 with the serializer stuff fixed.
should i copy my save? first 
I mean, I would hope you did that when 1.6.9 first dropped
na my last save was Beta testing
There's more details on the file description and one of the comments, but if stuff went missing and you saved while it was missing, it's probably gone for good.
would there be problems if people saved something with serialized type
and then latter remove mod, even after spacecore-1.26.1
If they saved with a serialized type with 1.26.0, the content is baked into the save file, so you'd need all mods involved to load that save file until you save again with 1.26.1
ah that's good enough, thank you 
Are we expecting a 1.6.11 update sometime soon? - based on the change being reverted in .10, I assume if/when that's fixed it'll get deployed?
the .10 version is more like a 1.6.9.1
emergency bug fix kind of deal, i imagine if we have .11 it'd go through the beta cycle again
Yea, I figured .10 was released quickly as a critical bugfix, but wasn't sure if it was like temporary stand-in, or this is the version we'll have for a while. - specifically because I wasn't sure if it's worth me playing with map changes in the current version or just waiting to see what the new map tilesheet system included.
Umm why would people be saying a mod is incompatible with other mods if all they do is add content patcher data patches? Seems like there's a huge problem with nexus website and there requirements section.
well with mod making just do whatever you want 
you can figure out whether it'll run on other people's machine once you are done
content patcher patches can still be incompatible with other mods
Yeah, UI recolors are big example
People be saying Realistic seasonal shop inventory is incompatible but it adds compatibility for mods and only reason it's incompatible cause the authors haven't added a patch for that mod simple to understand
(Though why you'd want more than one is another question)
well, it seems like you've answered your own question as to why people say mods are incompatible, then
Well in terms of just me playing with it, I've modified the changes I want into someone elses much larger mod. So I can enjoy it just fine. :P But to release it I'll have to separate it out into it's own thing. So I guess I'll just sit on it for now and save myself the work
Yeah just I guess people don't read the information
something not being in a requirements section doesnt mean its incompatible
Ywah but it doesn't break anything just means the author hasn't added a patch for the mod
im not sure i understood your original message entirely so forgive me if my responses are misunderstanding you
People think RSSI is incompatible with mods it's a harmless data patch and no one patches inventory stock
Don't see how it could be conflicting
that doesnt mean its not incompatible, though
Yeah it's not incompatible
"incompatible" doesnt always mean "breaks everything"
Yeah just found it odd how people keep saying it breaks other mods or it won't work with a mod or something
I have yet to see another inventory stock mod
i love how i got someone mailing me cause another mods map failed to load into my greenhouse mod
What's the full context here? I don't really see anything mentioned in the mod page?
anybody know what buildingPlacementTiles.xnb got switched to in the update?
it was just deleted. those tiles are in some other sheet i cannot recall but someone surely does
yes, there's a 1x scale version in cursors
you can use that with scale 4 to draw the same tiles as before
can't for the life of me find it
194 388 96 16
I just dont even know where the cursors folder is
Anyone noticed patch reloads taking longer since 1.6.9 dropped? I've used every single version of SMAPI 4.1.x so far with everything updated and it's all the same. Performance on my minimal testing environment has been terrible since the update.
LooseSprites/Cursors.png
cursors is in the Tilesheets folder
err loosesprites lol
hate it when i type what i am looking at instead of what i was thinking to type :I
thanks muchly pals
anyway...came here to ask if theres any knowledge of textures looking weird in the AT UI when wanting to select one or if its maybe just still 1.6.9 shenanigans happened or w/e
cuz i know 90% or a time I am a silly goof and did the error somehow myself so im asking this time before getting frustrated
Hmm, that does sound weird. One workaround is you can patch reload a specific file in your content pack now, but I'm not sure why performance would've gotten worse, and if that's because of CP (patch reload) or SMAPI (asset reload handling)
what does this mean?
yea this is the arguments to the source rectangle you would use to draw
X Y width height
so how would I switch this?
{
// Full asset is five 64x64 pixel tiles in a row, we only want the leftmost one of these tiles
Texture2D fullAsset = ModEntry.Instance.Helper.GameContent.Load<Texture2D>("LooseSprites/buildingPlacementTiles");
// Get color data of entire asset
Color[] fullAssetColors = new Color[fullAsset.Width * fullAsset.Height];
fullAsset.GetData<Color>(fullAssetColors);
// Copy only leftmost tile to smaller array
Color[] greenSliceAssetColors = new Color[64 * fullAsset.Height];
Color[] redSliceAssetColors = new Color[64 * fullAsset.Height];
Color[] grayScaleAssetColors = new Color[64 * fullAsset.Height];
for (int y = 0; y < 64; y++)
{
for (int x = 0; x < 64; x++)
{
greenSliceAssetColors[x + y * 64] = fullAssetColors[x + y * fullAsset.Width];
redSliceAssetColors[x + y * 64] = fullAssetColors[(64 + x) + y * fullAsset.Width];
grayScaleAssetColors[x + y * 64] = fullAssetColors[x + y * fullAsset.Width].ToGrayScale();
}
}
What are you trying to do here
just make it work with the new patch
are you grabbing just the left icon by copying pixel data directly?
Somebody reported a JA error on the SpaceCore page today, so I mentioned it was JA not SpaceCore (ie. go post there):
well.. does it matter where you report the problem.you are the author of the mod after all [...]
No, go up one level from that. What are you trying to do
is there a better way to do it?
organization? never heard of it
There likely is a better way to do what you want to do but we can't say what it is until we know what you want to do
@ivory plume Any chance SMAPI could get detection for: "This mod failed in the Display.MenuChanged event. Technical details:
Failed loading type 'StardewValley.ItemStockInformation': TypeLoadException: Could not load type 'StardewValley.ItemStockInformation' from assembly 'JsonAssets, Version=1.11.8.0, Culture=neutral, PublicKeyToken=null' due to value type mismatch." to keep the mod from loading?
(Apparently affects TMXL too, not just JA)
I just wanna steal the cursor, honestly maybe I should just try to find the old file and put it back in
im not sure why you have to do this 
just draw from the cursor?
here's a example from the game where it draws the green square when you use tool like watering can
b.Draw(Game1.mouseCursors, Game1.GlobalToLocal(new Vector2((int)item.X * 64, (int)item.Y * 64)), new Rectangle(194, 388, 16, 16), Color.White, 0f, Vector2.Zero, 4f, SpriteEffects.None, 0.01f);
if u need the red sqaure u can just add 16 to 194 (for 210), and so on
Hello!
I was wondering if I could get some help with sprite changes on NPCs, since idk if it's possible to have them change sprites for a day. Is it possible to do?
yes with CP you can set day time trigger for load
Having a little issue with custom farm map. After saving first day and exiting game/reloading, farm house spawns another fireplace (1792, brick) in the house, what could be causing it ?
Using tiled to place furniture, but such id isn't listed there
Thank you, does this also work for modded NPCs, or vanilla ones only?
you can target any npc loaded
Awesome, thank you!
basicly you can check day 1-28 season spring summer fall winter and have it trigger the change for the whole day and then revert after the day
think they wanted specific day though
ah k
GSQ?
Ah ok, I'll probably look at both and use whichever seems easier, thank you both so much!
game state query
ah
game state query
.> glad i make my custom tile sheets large enough to just add one tile when i find i need to edit something lol
strongly recommended to do appearances
it's the same system used for vanilla winter outfits fyi
Okay, would you say to put the line in with the rest of the NPCs schedule, or would it go somewhere else?
it wouldnt go in the schedule, it goes in their Character data
Okay
If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...
you can also look at your unpacked Data/Characters for examples too
Alright! This is my first time trying to mod a game, so thank you all for the help (:
i havent attempted NPCs yet but i hear they can break easy if you forget a spot
@calm nebula re: question in #programmers-off-topic - Had to fix a serious spacecore bug earlier, and finally got the updated JA build done
Just be careful with your weight/precedence for Appearances, or you might accidentally block your new one from appearing
Understood, and I have one more question for now, I think. Will I need to create separate files for the appearances, or can they just be added to an existing sheet, since I currently have all of mine on one sheet?
i don't think appearances let you define a source rect, so yes need to separate
Alright, thank you
hmm any recomendations for the top area already plan to adjust the right path to make it less straight feeling
Maybe narrow it down to just one tile wide instead of two about half way up?
hmm kk ill keep playing with it
Also, make the cliff less straight. Make it come down one more.
i was thinking of making it bulge into the dark grass area a little and placing a perma tree on top\
Yes! ๐
yah definatly gave it more feeling
This is so weird... The map strings on Aba's Halloween mod are messed up for me, the same way the dialogue box is for my crow building... But I checked Lacey and they work there
hmm mabey it broke cause its after halloween 
are those custom map strings?
check if u see them in a patch export of the asset maybe
Just need a few minutes while I try to make my brain do the brain thing and remember I gotta put fucking Maps/ in front of it
Hm it's there, but now I'm wondering if this is case sensitive
how do yall be making maps?
Do you mean with what software or what?
yes
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
thanks
For me, it was a lot of trial and error and the general advice of look at how the maps are made in vanilla and imitate that
i use tiled
Aside from that, if you're artistic I'm sure it's a lot easier lol, I can make plenty of perfectly rectangular things but making it look natural and good is hard for me
mood
also I read that as "if you're autistic" at first XD
sometimes strict about tilesheet names too
(StardewXnbHack 1.1.2 is now released, with support for the latest SMAPI 4.1.4.)
broke up the edge will fix the rock face look soon any other suggestions
Flowers? Vanilla usually has some dancing ones around
the little jelly flowers?
@calm nebula: add the new shop to gsqcheck (20h ago)
ah the spring flowers yah sec gota animate them again
Okay, has Buildings Message always been case sensitive?
the one farm map I use(d) had like 8 of those flowers upsidedown, and idk how they did that
far as i know its all case sensitive
in tiled you can rotate / flip tiles tmx can do it tbin cant
I mean, assuming it's case sensitive is a good idea, but a lot of things aren't so it's kind of a mixed bag
(::pufferheart:)
i always assume case sensitive lol
Well, I guess I will just continue my "make everything case sensitive" crusade forever then
its a good habbit specialy with programming
Not sure what the hell is wrong with my crow building, I'm using the mod translation class builder for that one lol
what were u getting for that 
oh i know you didnt call it
did you pass in the delegate itself and not the value or vice versa
Lol
need I18n.Enchantment_Gatherer_Name()
instead of I18n.Enchantment_Gatherer_Name
or w/e key u have
Huh, it was working during the beta lmao
I don't really want to change the low-level assembly loading/rewrite logic for now, since we're still stabilizing stuff after 1.6.9. I could add specific mods to SMAPI's internal compatibility blacklist though.
I'm passing a string to Game1.drawObjectDialogue, built off an I18n and a variable, which was working before
Easy fix, just confusion
Well, maybe not easy fix, I still need to be able to pass the variable
hmm what time is 00:-01
i gotta fix the closetime maths lol
Wheels.FormatTime is helper that turns a 0600 format time to 06:00 (once i fix it anyways)
Game1.drawObjectDialogue(I18n.Shop_OpenTimes(openTime: Wheels.FormatTime(openTime), closeTime: Wheels.FormatTime(closeTime)));
```i18n
```json
"shop.open-times": "Open {{openTime}} to {{closeTime}}"
they open but never close
r u do something similar 
Similar-ish but not enough lmao
Game1.drawObjectDialogue($"{I18n.CrowsFed} {crowsFed.Value}.");```
you are formatting the delegate 
I18n.CrowsFed isnt putting the string there thats just the function itself
should just use the {{token}} stuff
it'll be nicer for translators
they can rearrange for locale/grammar
$"{I18n.CrowsFed()} {crowsFed.Value}." (but also i agree with chu too)
Yeah, I'm gonna switch to how chu is doing it, mostly just trying to figure out why either I thought it was working before or it changed (first is almost certainly the one lmao)
I was messing with this crap for a while trying to figure out where I was going wrong with attaching this functionality to a custom building in the first place, probably just was happy anything appeared but I could've sworn I was getting actual text there and not indecipherable gibberish
its possible you were originally using some function call that does take a function like that and changed it later
And I still don't understand delegates well at all, so I figured I'd remember if I had to do something different than just providing a plain string lol
like GMCM does
Oh is it just being messed up because I wasn't using the () at the end of CrowsFed? Looking at my repo I wasn't using translations before lmao
correct
Ah, thought it would only bork the translation and not the whole thing
with the translation helper all i18n things like that are functions that return the string in question
the mod translation class builder is source code generation from what i gather
it makes a static class called I18n for you, containing bunch of static methods that call upon the i18n keys
Interesting, I'll definitely have to keep that in mind, only recently started incorporating it so there's been some trial and error. Definitely want to do the thing that'll make it easier to translate though
Thank you both 
luckily it is ezpz and i believe in you
Yay working, now I just have to actually finish this mod lmao
And the spatial sound one... and now that 1.6.10 is out I can finish the crane game
What happened to wizardHousetiles.png was it never used in the game?
its there
did you move it by accident?
try re-unpacking the files. wizardHousetiles was one of the victims of the 1.6.9 unused tilesheets purge
also make sure your using the newest xnb unpacker
i think selph was talking to you celestia
@calm nebula can I ask about linux modding + "as soon as you have a mod that isn't compiled for that exact version of stardew and smapi" more here? 
ah yeah, should clarify
ah lol i still using beta unpack ^..~ also that pic above is the actual png file so you can download it dreamy
That's the only issue I had loading my mod that's strange.
Yeah. If a method goes missing. On Windows you get a missing method exception
On Linux it just crashes like that
It's just that in my experience I can install C# mods built for 1.6.4, does that just mean it simply didn't touch a missing method
well, i wouldnt download it if you're relying on other people having that tilesheet already in their game, because they wont
(though don't rely on it, given that it's gone and all)
it was removed
but you can use a load with Cp to add it back lol
Yeah, but I've seen that be fragile too
Kept popping up during the alpha. If I didn't recompile my own mods I saw it a lot
Hmm so it was never used i see i think I only used the table sprite
if im using small sections of multiple tile sheets i usualy just combine them into a single sheet
and load it in as custom
Usually not for my own mod but that's cus I just build all of them b4 doing any work
That sounds like a good way to be incompatible with recolors ๐
i was gonna say the same lol
Alpha was literally a year long lol
using the original sheet is better if you can
Hi casey!
well not if your making a custom map and you dont want the assets changed
God I'm tired
Hi
someone can still change your assets if they target them specifically anyway
It doesn't sound like anything that can be fixed on mod side alas 
You can't target them via CP if you use {{InternalAssetKey}} (or for map tilesheets, don't explicitly load them)
true if they wanted to do a targeted recolor
Well... I guess you can with SpaceCore's texture override system
You don't have to use it for animations
or just dump them into the mod as a replacer
hm. would it work for internalssetkeys if you set your target with the "SMAPI/ModId/" prefix like internal asset key does?
You would have to have magical knowledge of the id right
i'm pretty sure you can still target internalassetkey assets if you know how smapi/CP constructs them, yeah
Just moving some tiles over to my already loaded up one.
With SpaceCore's texture override system yes. But I've tried with CP directly before and I couldn't
Unless something has changed
(i haven't tried it. i'm just reporting hearsay)
hmm. but you can still use em in Texture fields and such
Just make your own version of someone's map with your own tilesheets and load your map over theirs
But would anyone be able to help with my ambient light method it keeps going dark not smooth like regular ambient outdoor location
it wasnt something i tried with my internalassetkey token stealer
IIRC you can reference it, you just can't use CP to patch/edit it
Unless smapi deliberate block
Yeah, because it works for loading (from the game) but not for editing (I think)
I think it does but I'll look around to confirm
It's easy, you just get someone else to do it
grumbles
Thanks button
Yeah it doesn't work
SMAPI blocks it
A managed asset being any that start with "SMAPI"
i dont understand smapi code enough to understand what part of this is doing the blocking or when this is called
You can see the early return before the asset load/edits apply in that link
So, this is called when you load a specific asset with a specific type
What the line I linked does is it checks if it's a "managed asset" (basically one that is inside a mod or content pack), and if so, loads it and returns it immediately without apply loads/edits
Loads/edits apply later on otherwise
so i should patch smapi is what you're saying
I made the table a nice red color
@ivory plume On a scale of 1-10, how much would you hate Button for patching smapi to allow CP (and other mod editors) to edit mod assets
oh god casey why
:)
I'm sure pathos would notice eventually
after i said id send you cat pictures 
you're just getting it over with!
I sense an arms race.
hmm i usualy load into game files and let CP patch the loaded files with no problems
Button what if you just send in a PR like a normal person
theres no justification for this functionality
Problem: I'm pretty sure Pathos specifically doesn't want that
I think I've asked before
we're talking about using InternalAssetKey, which doesn't allow editing
Aw ok crimes it is then
yah i know your talking about editing other mod files directly
Tbh a solid alternative would be less implicit internal assets in general
There was person trying to recolor downtown zuzu and couldn't because it had many internal tilesheets
I'd rate that "That's a really bad idea that will make the modding ecosystem way more fragile and hard to troubleshoot but SMAPI isn't going to stop you from following your dreams if you really really want to do that" on 10.
InternalAssetKey but it loads them into the pipeline anyways
I mean, sometimes it legitimately makes since. It'd make more sense to ask the mod author to change it to not be internal
that's one of the longest numbers I've ever seen 
CAT 
But it's too late, I already pinged pathos
this is for future prevention
yah from what i know if you edit other files directly you could end up with load order issues and file changes not working because of that or causeing a mod to fail cause your edit breaks that mod
Try using float.Parse
What's that like 20 characters?
(I hear that SMAPI has special logic for that particular number)
You tried to apply it retroactively to something else, which consumes that usage. Still doesn't work, but doesn't count for the future either
i will make sure to preface any terrible crime ideas i have in the future with a cat picture
It's closer to 20 words, not characters.
Appreciated... though it'll be a coin flip whether that will actually prevent consequences, or just make the crime cuter
That's the same logic when a cat commits a crime so I think that's fair
at the very least it will give me an excuse to show off my cat, which i am always looking for excuses to do because i have it on record that she is the cutest of them all
unless that excuse is "talk somewhere other than the modding channels" in which case no
cat!!!!
I mean, there's also #programmers-off-topic , which isn't modding
Off topic channels give me anxiety
every time i look in there i feel more stupid than before
they're just nerds
u can always post cat in #programmers-off-topic
everyone knows steady supply of cat required for coding
What is this "they" you speak of?
I mean all of harmony was on my shit list for the same reason for a while
And with good cause, no?
your name has MathPerson in it
I'm not very good at disguises 
fellow nerd!
I have learned to do debugging with zero non-atra mods installed
and also to do debugging away from modders in general
that's a nicer life
How badly would you rate "using reflection to access another mod's helpers and assets" on that
hilariously enough, I'm retired so I don't have to care anymore!
I rate that 100% wonderful and great, personally.

retired except for the exceptions
yeah im pretty sure with aquarium work atra has done modding more than me these last few weeks
atra is the least retired retired modder i know
I mean, everything fits under "itself except for exceptions"
except for the exceptions
Nah, Aquarium just did that to itself one day
throw new AtraIsAnnoyedException();
There is truly magic left in this worls
atra tripped and accidentally a mod
catch (AtraIsAnnoyedException) {}
continue;
what's an "exception", can we eat that
- signed, crab person
How dare you imply rust in my C# modding channel
It's like a Result, except worse.
There's content packs here too
speaking of reflection crimes, i should probably check whether lacey's fashion sense monstrosity is still working.
but, i don't feel like it right after updating that mod
speaking of committing crimes in other peoples mods, is it also a bad idea that i thought about the possibility of just letting CP mods create global CP tokens like C# mods can via CMCT
so that other mods would not actually need CMCT to access their shit
Wouldn't it be better
so like global dynamic tokens?
Just to PR CP for allowing packs to expose DTs
making PRs for advanced functionality to content patcher is for people who are smarter than me to do
Why do so many people want to hack together new external solutions for things when they can just PR
I mean, I guess CP is a bit complex
i do these crimes in my own mods because i dont have to worry about things like "best practices" or "quality code"
PR scary
To be fair, hacking a solution is a lot faster than getting a Pathos PR approved...
you don't need permission to hack together an external thing like you do with a PR
I mean, I guess, but I'm pretty sure Pathos is open to that as a feature
Pathos is not that scary
tbh it's not so bad an idea, like mail flags but better because you don't have to unregister it every day end
hm maybe like
he's taken my PRs before, even the ones with math mistakes in it
And how do you plan on unregistering tokens that disappear from the asset
i genuinely just dont know how to implement it in CP itself
GlobalDynamicTokens
It's not scariness, it's workload.
new field so that it takes intention to use
as for impl i dont think it'd be very different than the C# token api it already has
what about
{
"Name": "MyFancyDynamicToken".
"Value": "Perfection",
"IsGlobal": true
}
Good idea.
It's a start
i couldnt even figure out the dynamic tokens thing for CMCT fully let alone making sure global tokens worked properly in CP itself along with everything else it does
I was thinking of this, but the problem is When goes in the same block, which is kinda confusing - can you conditionally global a token?
i thought thatd be in the dynamictokens field
You could argue it's only valid for the base case
does anyone know if it would be possible for me to add east scarp to an existing save?
you have a point
But that sounds like something Pathos wouldn't go for
yes
3 years in and i wanna use east scarp now lmao
futher questions go to #1272025932932055121 or #modded-stardew pls
Mod has now loaded in 1.6.10 hooray
mainly bcuz im almost done with perfection and want more to do lollll
CP already has to go down the list for dynamic tokens anyway right? couldnt the When just control its value the same way
okay, so the bad idea is to make IsGlobal only valid for nonconditional tokens, which I don't like
if the IsGlobal is on the first one
thanks, mbad for posting in the wrong channel
In this case it's not a problem of implementation, it's about how it interacts with everything else
i really think it should just be separate field
Like, what happens if another mod is using a token that is suddenly no longer valid
then u can be like "all global tokens go first no exceptions"
I guess it could act like tokens that aren't ready
wouldnt it not be "not valid" though and instead just return the value of the first dynamic token that matches the same way dynamic tokens currently work when their conditions change?
you could still do
{
"Name": "MyAssholeToken",
"Value": "Blah",
"IsGlobal": true,
},
{
"Name": "MyAssholeToken",
"Value": "merp",
"IsGlobal": false
}
which makes sense but not really
or IsGlobal could be infectious
like gpl
thats just reinventing python shadowing 
but that sounds confusing af
You'll need an !important to compensate.
I sure hope so!
I want to actually think more about the mathematical concept of sets, ficustents
can you even have a dynamic token that only ever exists with a When condition attached? i kinda just thought you always needed a base case
but i dont know why i thought that bc its not like i read it somewhere
even still if you can im not sure why thatd break with globalness any more than if you used that token in your own content.json
yes, if you hated yourself
would you follow the same format as C# registered tokens
need {{johndoe.ModId/GlobalToken}} instead of just {{GlobalToken}}
do you mean for an official implementation or my hacky external workaround
yes
that makes most sense to me
this but also no need to declare them as global. just global every token for funsies
(i thought you meant the registering part)
Pathos definitely won't go for that ๐
But if it's a separate mod, well...
well u just use button crimes for that ichor
i dont remember the tokens mod name very well because it doesnt have a vowel
unlike BETAS
do you mean CMCT or another one
yea CMCT 
Ah yes, everyone loves all the acronyms in the modding community
petition to rename CMCT -> Kumquat
wow yes
(my brain has decided that reads "cement")
would you prefer to type out Cross Mod Compatibility Tokens every time
its not like i named it for acronyms sake!!
at least i put my acronym in my mod page title so people can actually find it
this is just going to lead to naming things like npm packages
or minecraft performance mods
Let's embrace that tradition
What the fuck is a Firefox 
I mean, I'm literally planning on naming a theoretical HC core mod I do "Catnip"
if its a core mod that doesnt exactly need to be generally found i think its fine and fun
casey already planning ahead 
I mean, it's no more clear than SpaceCore
as long as you dont expect people to find it if theyre just looking for mods that do what they want
to be fair, i wouldnt know that spacecore did half the things ive thought about if it werent for people just telling me in here either
i keep googling spacecore and getting hits for the spacecore aesthetic
SpaceCore wasn't originally a content pack framework, so that's part of it
I'm not sure Content Patcher existed back then
yeah the name kind of implies its origins ๐
What are you talking about? I don't know anybody with space in the name
the only thing i care about with mod names is being able to find a mod that does what i need if i need to
And yeah, CP was early 2018, SpaceCore was mid 2017
if im not supposed to just randomly stumble upon it for a specific purpose then its w/e
You know what would help? Nexus improving search. <insert laugh track>
i don't ever anticipate making a -Core mod (that one doesn't count), but it's a bit of a shame because the short version of my handle ends with core
and core mods arent usually meant to be randomly stumbled upon for a user to go "oh i want this!"
on the other hand iCore sounds like an Apple product
if nexus could just search in the mini description they make us write above the normal description thatd be great
farm type core, now everyone will know what it does & stop reporting map errors to me
what if you suffix all your mods with tower instead
Hi, I want to add a custom farm type with FTC, can you help me?
(Though that can be said for FTM too)
we now have "fix-all-my-stupid-silkscreen-mistakes-core"
if i did it (which i won't), EyeTowerCore would be the most likely name, what was i thinking
yeah, lateral move honestly 
I'd prefer the actual description too (so I could list all the spacecore features), but that would be an improvement too
if we're coming up with fun cool names for our core mods i call dibs on Spiderweb
Does anyone know if the ModManifestBuilder Nuget package can work with mod build package's new <ContentPacks> functionality to build manifests in content packs?
i wouldnt trust the search to not just show me every mod that has the word "the" or "a" in the description making it all useless
i dont think it can, but u could just make a csproj for your CP mod
That would be a problem with the mini description too. Ultimately you'd need to do keyword oriented searches or have Nexus exclude common words
these would be bundled content pack mods though, I don't know if that would matter
true, but at leasty with the mini description theres less space to include all the common dictionary words
csproj is just description of build targets (things to put into release)
Try me
so ig it'd be additional targets? unsure
<inserts all common words and no mod description>
either way its not a feature provided by ModManifestBuilder or ModBuildConfig
can't wait for nexus mod listings to become keyword spam like amazon products
best nice pretty witchcore cottagecore gardencore faecore magiccore texture
I'm enjoying my Aeelike Circular Knitting Needles Set, Stainless Steel Knitting Needles Round Knitting Needle Set (100 cm), 9 Pack Long Knitting Needles for Blankets Scarves Sweaters, Great for Beginners
Awesome name for that secret up and coming knitting mod of yours
is there char limit on mod unique id
Not that I'm aware of
Have fun typing patch reload for that though (if it were a CP mod)
casey when are you gonna make a PR to CP to add fuzzy search to patch reload
