#making-mods-general

1 messages ยท Page 94 of 1

velvet narwhal
#

(do not resuscitate)

tender bloom
#

Ah

velvet narwhal
#

lemme untick that

ocean sailBOT
#

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

tender bloom
#

(Doesn't show in a normal log because..AVE)

velvet narwhal
#

yep, unlogged like the support ticket

tender bloom
#

I'm just not sure why this would happen

calm nebula
#

But I have no clue

#

It's wild

brittle ledge
#

Can someone eli5 AVE to me? And what's the most useful thing to do when it crashes without logging?

tender bloom
#

AVE = access violation error

#

If it's not in the SMAPI log, copying directly out of the terminal is the next best

next plaza
#

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

tender bloom
#

I used the SMAPI json parser because lazy

royal stump
#

(don't bad transpilers cause that pretty easily? maybe I'm thinking of another one, though)

velvet narwhal
#

you said spacecore is failing to load? like from the title? or just newday?

rancid temple
#

Oh I know what I did, I fucking renamed my stupid mod and didn't change the Type in the building data

tender bloom
#

Like at a glance that doesn't read like a stack trace that should cause an AVE, but I guess it could be transpilers

velvet narwhal
#

DH IS SPAMMING MY LOGS SMCKekLmaoDog

tender bloom
#

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

velvet narwhal
ocean sailBOT
#

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

lucid iron
#

Do you have anything using save serializer

velvet narwhal
#

there's gotta be someone in that list

next plaza
velvet narwhal
#

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 SMCKekLmaoDog

#

oh wait i know, VMV yeah?

lucid iron
#

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

velvet narwhal
#

i am ignorant

hallow prism
#

(VMV what?)

velvet narwhal
#

using spacecore serializer

hallow prism
#

hum, i don't know what the C# part do outside of magic

#

it is possible the chest feature is using serialiser

velvet narwhal
#

it'll let me in the game eventually

tender bloom
#

yeah alright grumble grumble StardewValley.Delegates.ForEachItemDelegate( (Item item, Action remove, Action<Item> replaceWith) "doesn't take three arguments or something"

calm nebula
hallow prism
#

then you got your answer avi!

hexed sequoia
#

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

velvet narwhal
#

my save files are so borked after yesterday

ocean sailBOT
#

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).

vernal crest
#

Not modded farmers!

velvet narwhal
#

my bad wrong quick tab

calm nebula
#

Okay yeah

#

Pathos added the in keyword

velvet narwhal
ocean sailBOT
#

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.

rancid temple
#

Well, finally gave it the right type, but uh... this isn't right

#

Whatever, it should still function for a serializer test

tender bloom
rancid musk
#

what in tarnation

calm nebula
#

But yeah

rancid musk
#

That seems like a weird place to add the in keyword.

calm nebula
#

A value pass to a byref pass can do that

tender bloom
#

I have no idea how to fix this based on the wiki examples

#

Does this mean it needs to be totally rewritten?

calm nebula
#

No

rancid temple
#

Alright, as far as I can tell, my building is being serialized properly

calm nebula
#

Just recompile I suspect

rancid musk
#

Yeah, just a recompile. At worst, add in

calm nebula
#

Yeah

velvet narwhal
#

maybe just a problem of the author mis-serializing?

calm nebula
#

It's just obnoxious it's a Ave crash rn

#

No, avi

velvet narwhal
#

oh not the AVE, i meant the spacecore thing

#

oh unless we'reb oth on the same topic SMCKekLmaoDog my brain is scattered, this morning was a loud scuffle because the whole house went out to vote

next plaza
next plaza
#

They don't manually serialize anything

tender bloom
rancid temple
#

Still there, still functions (incorrectly but that isn't a SpaceCore issue lmao)

tender bloom
#

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

rancid musk
#
StardewValley.Internal.ForEachItemHelper.ForEachItemInWorld(delegate (in ForEachItemContext ctx) {
                        
    return true;
})
calm nebula
#

Yeah it became a context

rancid musk
#

Also Utility.ForEachItemContext just calls that exact method

#

(Also also I have hit semantic satiation for the word "each" please send help)

velvet narwhal
#

"pumpkin" did that well over a dozen times for me during the contest

tender bloom
#

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

robust robin
#

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

rancid temple
#

Tipsy is the hardcoded one isn't it?

brittle pasture
#

not since 1.6 I think

#

!json post your code?

ocean sailBOT
#

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.

rancid temple
#

Oh, well that should make it quite a bit easier lol

wanton field
#

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?

robust robin
#

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"}
         }
    }
]

}

velvet narwhal
tender bloom
rancid temple
#

Does Fields even take indexes like that?

robust robin
tender bloom
#

for the first attempt

velvet narwhal
#

well, the fields look wrong

#

i don't think you're targeting anything correctly there

cyan marsh
#

good afternoon... for whom it applies mcsmile

wanton field
robust robin
#

Honestly I don't really know what I'm doing ๐Ÿ˜‚

tender bloom
#

Maybe try one object

#

and copy the CP docs for it

velvet narwhal
wanton field
velvet narwhal
#

then no, the game from the tilesheet understands where and what to do

wanton field
rancid temple
#

In fact, because you're trying to modify Buffs you're gonna have to use TargetField

velvet narwhal
wanton field
velvet narwhal
#

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

wanton field
velvet narwhal
#

afaik i might take on the reins from aba doing the new location docs, that depends on how lazy i feel

calm nebula
#

@ivory plume mods that bundle harmony are now causing issues

rancid temple
#

Please send nukes

brittle pasture
rancid temple
#
    {
      "Action": "EditData",
      "Target": "Data/Objects",
      "TargetField": [ "348", "Buffs" ],
      "Entries": {
        "Tipsy": null
      }
    },```
wanton field
velvet narwhal
#

mainwiki is for the short and sweet, but the wiki.gg is for in-depth tutorials

robust robin
rancid temple
#

I tested it, it does lol

latent mauve
#

Y'all probably don't need my input anymore, but my coop generated by Spacecore seems fine.

ivory plume
cyan marsh
#

seems the recent update didn't hurt anything on my end... I'm happy

calm nebula
#

Possibly! That or the fact that smapi no longer uses harmony itself

#

Would it be worth it to ban other copies of harmony explicitly?

teal bridge
#

SMAPI hasn't used Harmony for quite a while, though.

ivory plume
#

SMAPI doesn't have any patches itself, but it still loads and uses Harmony (including the MiniMonoModHotfix hack).

calm nebula
#

Oh right yes

#

I forgot

ivory plume
#

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.

calm nebula
#

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!!!!

ivory plume
#

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.

lucid iron
teal bridge
#

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.

lucid iron
#

based on decompile it should be _mapSeatsDirty

#

this triggers error on CP patch reload

tiny zealot
#

(thanks chu)

ivory plume
#

Yep. I mean out of the 4.1.x series of updates (i.e. 4.1.0 + bugfix patches).

rancid musk
#

@ivory plume Couple questions about the decompile project. Not time sensitive, of course.

  1. Is there any particular reason why System.Memory and System.Buffers specifically are referenced by DLL? This prevents SkiaSharp from compiling for me as of 1.6.9

  2. 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?

  3. 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.

tiny zealot
#

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
lucid iron
#

what version of dotnet do you have

tiny zealot
#

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

calm nebula
#

You need 8 I suspect

tiny zealot
#

boo

teal bridge
#

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.

tiny zealot
#

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

rancid temple
#

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

lucid iron
#

its a C# 11 feature, which would be preview for C# 10

iron ridge
#

oh
no contenthashes on switch either

next plaza
#

ContentHashes was added purely for SMAPI, so that makes sense

rancid musk
#

Entirely for calling out people who use XNB mods. Content hashes are the best.

teal bridge
#

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.

uncut viper
#

do you count + and += as different

ivory plume
#

(You can also use combinations like $""" .)

teal bridge
#

Yes, I wasn't counting combinations like @$ even though I use them routinely (since they add kinda infinite possibilities).

rancid musk
#

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 });

teal bridge
#

I count + and += as the same since += is just x = x + y.

lucid iron
#

is string.Concat different than +

teal bridge
#

Not by much.

rancid musk
#

It accepts an IEnumerable so you can join more than two segments

uncut viper
#
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()));
rancid musk
#

Finally, a string

uncut viper
#

god i wish there was an easier way to do this

teal bridge
#

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.

iron ridge
#

oo i should check the cheats save option

gaunt orbit
#

Personally I'm a fan of string.Create. Only occasionally practical though

iron ridge
#

that's.. odd
why are switch saves binary

teal bridge
#

What else would they be?

next plaza
#

XML like PC I guess

teal bridge
#

They're actually no-shit XML? I thought they were a binary representation like XNB.

lucid iron
ocean sailBOT
#

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

next plaza
#

Yeah, saves are just XML

lucid iron
#

how can i tell which mod is the one that loaded 0Harmony?

next plaza
#

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

iron ridge
#

(this is utf8)

rancid temple
#

In raw log search for 0harmony lol, it's ChildToNPC

teal bridge
#

Huh, learn somethin' every day here... I never even thought about considering the option to open a save file in a text editor.

iron ridge
#

resaving on pc just saves it as readable xml

#

odd

next plaza
#

Wait, so it opens up fine on PC?

iron ridge
#

yes

blissful panther
#

...what.

next plaza
#

Is it in UTF16 or something?

iron ridge
#

savegameinfo is readable and fine in a text editor

next plaza
#

It looks fine in notepad, just normal xml

#

VSCode too

iron ridge
blissful panther
#

Yeah, looks perfectly normal on my end too.

teal bridge
#

I'll bet it's a BOM thing.

iron ridge
#

oh wait

next plaza
#

That was my guess too

iron ridge
#

no that fine is the resaved xml i sent

next plaza
#

Oh

iron ridge
next plaza
#

Oh, that's much smaller

teal bridge
#

Wait, that's 10% the size

iron ridge
#

indeed

next plaza
#

I wonder, I know I've seen some code about compression that's disabled on PC

iron ridge
#

it's just made and not even slept yet (as in, day 1), is that to do with it?

teal bridge
#

(and that was some truly awful back of the envelope math)

blissful panther
next plaza
#

Ah, yeah, compressed saves can load fine even on PC

iron ridge
#

ahh

#

very interesting

teal bridge
#

Guess it makes sense that the PC versions wouldn't compress saves, they expect not to be tight on storage.

next plaza
#

You can look at SaveGame.TryReadSaveFile, there's a check for if the first byte ix 0x78

iron ridge
#

ah

next plaza
#

It is forced enabled for saving for consoles though

iron ridge
#

makes sense

#

is it enabled on mobile by default too?

teal bridge
#

Shhh, mobile doesn't exist. It was just a bad dream.

next plaza
#

No

iron ridge
#

oh i forgot to restore the modified save

#

that would explain the lack of cheats

calm nebula
#

But this is off topic

iron ridge
#

: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

teal bridge
#

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.

icy viper
#

Does XNBHack work for anyone?

brittle pasture
#

what XNBHack version and what game version?

icy viper
#

Both latest, 1.1.1 and 4.1.4

teal bridge
#

Sure, I just used it yesterday.

icy viper
#

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'.```
icy viper
teal bridge
#

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.

icy viper
#

It was just updated like a few minutes ago. Fixed content patcher "breaking" content packs or something like that.

teal bridge
#

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.

calm nebula
#

( @ivory plume xnbhack needs a recompile?)

ivory plume
#

Sure, I guess I'll do that today.

teal bridge
#

I'm trying to decide whether to imagine that statement in a chipper tone or with a deep sigh.

calm nebula
teal bridge
#

Ah, memories of work, and skipping away on vacation the day before the push...

calm nebula
#

How are people feeling about mobile mp

next plaza
#

Dreading the bug reports

next plaza
#

But thankful there's no mobile SMAPI to compound issues right now

lucid iron
#

does it let you connect mobile sdv to smapi sdv on pc

next plaza
#

Yeah

lucid iron
#

fear

next plaza
#

Myuu has already been doing that

brittle pasture
calm nebula
#

Poor Pathos

#

I wonder where on his checklist he is now

next plaza
royal stump
#

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

gaunt orbit
#

Is mobile still on xamarin or is it using core now?

next plaza
#

Core

lucid iron
#

well i was hoping it'd be a pc hosted vanilla sdv

gaunt orbit
#

Thank God

lucid iron
#

given the usual problems with mismatch mod list

teal bridge
#

Core with AoT, though.

velvet narwhal
ocean sailBOT
#

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

next plaza
#

With AoT, yes

velvet narwhal
#

uif2 is throwing a nullref now on Display.RenderedActiveMenu event SDVpufferthink

gaunt orbit
#

Then that immediately torpedoes mods doesn't it?

#

AoT means no harmony

next plaza
#

I mean, Content Patcher could still work

teal bridge
next plaza
#

But most likely no harmony (and definitely not transpilers), yeah

teal bridge
#

I just disabled exceptions for it for now.

calm nebula
#

Non harmony mods have a chance

teal bridge
#

SMAPI doesn't, but the mods do.

#

"A change", lol

gaunt orbit
#

Yeah but almost every framework mod uses it, or relies on something that does

next plaza
#

I assume that was meant to be chance

#

True

teal bridge
#

Oh, that makes more sense. I read it as the understatement of the century.

rancid musk
#

Are we really talking about mobile porting again? It's been a day, lol

next plaza
#

Does FTM use harmony?

royal stump
#

it's technically not critical, but it does nowadays, yeah

lucid iron
#

we just have to do everything through actions i guess

gaunt orbit
#

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

brittle pasture
next plaza
royal stump
#

but yeah, SVE does a few dozen random things that might be missed SDVkrobusgiggle

teal bridge
#

I don't feel bad for mobile users. Mobile games are an abomination.

next plaza
#

That seems unfair

#

Some mobile games are alright

teal bridge
#

I was like, 85% joking.

next plaza
#

Ah,

teal bridge
#

Not 100%, but nevertheless, I wouldn't expect any gaming experience to be excellent on mobile.

gaunt orbit
#

There's definitely some mobile game gems out there! I just hate the form factor and touch-only controls

royal stump
#

(mobile stores are aboms, but I don't particularly like steam either, so SDVpuffermlem)

next plaza
#

Match 3 games (the non life counting ones) are pretty decent

lucid iron
#

is sdv itself nice on mobile think

#

i struggle to imagine how the controls work

calm nebula
blissful panther
#

I love the tap to move style of play.

next plaza
#

I hear combat is a nightmare without a controller

gaunt orbit
calm nebula
#

The tap controls are quite good

royal stump
#

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

hard fern
#

๐Ÿค” 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

blissful panther
#

Still have that prototype mod for putting that on PC...

calm nebula
#

It's fine

#

Get good.

next plaza
#

I've never tried it, maybe I'm already good /s

iron ridge
gaunt orbit
#

I think that would depend on how it's ported to other platforms

#

If it's pure net aot then probably?

next plaza
#

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)

blissful panther
#

And it would almost certainly be heavily NDAd if that were some kind of limitation!

next plaza
#

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

gaunt orbit
#

Isn't that stuff usually just a layer on top?

next plaza
#

For consoles in particular

next plaza
next plaza
gaunt orbit
#

Aaaah interesting

next plaza
#

I think sony is kinda particular about how crossplay is implemented though

#

Like various restrictions and what not

#

Not sure about the others

gaunt orbit
#

My only real familiarity with networking is web stuff

next plaza
#

Well, like, there's web rtc and web socket for example

#

They both do networking, but they can't connect to each other

blissful panther
next plaza
#

(I realize there's a lot more differences in addition, but I think that's the relevant part to this discussion)

gaunt orbit
#

Yeah, I do know how to use that, I'm just not sure how it compares with stuff closer to the hardware

velvet narwhal
#

(ix my last log, i loaded an old save and that was a fat no no SMCKekLmaoDog )

teal bridge
#

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.

next plaza
#

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

tawny ore
#

I wonder if modded server magic could trick a console client into thinking it was connecting to a vanilla console host

next plaza
#

I don't think sony's stuff is public, but microsoft has some public stuff about it in the gdk docs apparently

tawny ore
#

The whole Bedrock/Java thing makes me think it would be possible. Edit: Geyser is what I'm referring to.

next plaza
tawny ore
#

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.

next plaza
#

A quick google search says you can't connect to custom servers with MC on switch at least

iron ridge
#

You can if you use some app to proxy it to a fake LAN server

next plaza
#

Though for MC I think it shows -- ^ yeah

iron ridge
#

(Phone app)

tawny ore
#

Ah, only possible for Xbox and Switch, so of course Playstation is the odd console out.

next plaza
#

Hmm, can you even connect to lan servers with SDV on console

tawny ore
#

Looks like for Xbox+Switch the guides have you change to a custom DNS server which will redirect the requests.

iron ridge
#

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)

next plaza
#

Interesting

tall wind
#

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.

tender bloom
#

Are you on 1.6.10?

#

Or 1.6.9?

velvet narwhal
#

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

tender bloom
#

Also are you making a mod or using mods?

old edge
#

Just loaded my mods in 1.6.10

tall wind
#

Ah, 1.6.10.

sweet sphinx
#

oh, can I update my stuff now?

old edge
#

What benefits does the smapi developer version have?

rain basalt
#

evening all just got off work anything i should know about 1.6.10 before updating everything again?

old edge
#

It seems my mod cape Stardew working fine

iron ridge
#

You see trace in the window

velvet narwhal
#

it spams the console, pretty much

iron ridge
#

It's just a config value changed - you can make any non dev version a dev version

tall wind
#

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.

sweet sphinx
#

I was told yesterday to wait 24 hours for the fires to be put out, b4 updating, are the fires out yet?

next plaza
#

Huh, turns out the "SpaceCore 1.26.0 not compatible" people were because of the really old mods with 0Harmony.dll stuff

gaunt orbit
rain basalt
#

yah >.> fun times lol that Data/Locations is

gaunt orbit
#

aw, it's not that complicated

old edge
#

Oh nvm bunch of errors popped up could not find files

acoustic summit
#

Anyone have examples of event.actionsOnSkip being used?

old edge
#

Well it's the modpocalypse again

acoustic summit
#

I tried to add an event action but I feel like I used the improper syntax

old edge
#

Did they fix the .tmx map issue yet?

rain basalt
#

last i knew it was fixed

next plaza
#

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

rain basalt
#

have faith in you

next plaza
#

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

gaunt orbit
next plaza
#

(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

tender bloom
#

SDVpufferfear hmm i hope all goes well then

#

I don't think I'm running any mods that use serialization but whooo knows

next plaza
#

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

rain basalt
#

i love explosions though

next plaza
#

...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

rancid musk
#

Oh boy delegates

#

I hate targeting delegate methods.

proud wyvern
#

eh, patching local/delegate methods is fineee

#

have fun calling a local though

next plaza
#

Oh no

#

I need to access some of the local values from outside the local function

#

Whyyyyyyy

proud wyvern
#

oof

rain basalt
lucid iron
#

maybe i should do ichor's snorlax method instead

#

swap in whatever special type only after save loaded LilyDerp

rain basalt
#

well general mockup done now for details

next plaza
#

Okay it wasn't that bad

tidal onyx
#

Hai hello :3

next plaza
#
newInsns.Add(new CodeInstruction(OpCodes.Ldfld, originalMethod.GetParameters()[2].ParameterType.GetField("pathToFile")));
#

Assuming it works

rancid musk
#

That looks suspicious

next plaza
#

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

next plaza
#

I should probably use GetParameters().Last()

#

Since that'll always be the captured stuff

tidal onyx
#

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 sayingSDVkrobusgiggle

lucid iron
#

just ask away

uncut viper
tidal onyx
#

Ohh okay gotcha

gaunt orbit
# lucid iron swap in whatever special type only after save loaded <:LilyDerp:6642611642087505...

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

rain basalt
#

well 2 main mod types CP (content patcher) and C#

rancid musk
#

I should go look at the load menu code.

rain basalt
#

CP is fairly easy to learn

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually itโ€™s easier to start with making content packs, since you don't need to learn programming.

tidal onyx
#

Thank u so much :D i will look into it

next plaza
rain basalt
tidal onyx
#

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

lucid iron
#

there's a mod kind of like that, market town

gaunt orbit
lucid iron
#

if you want to make your own, then you need to use C#

next plaza
rain basalt
#

hmm wasnt there a shop framework at one point or did it not get updated?

uncut viper
#

making a shop is easy, making the farmer be the one running it is different

tidal onyx
#

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

uncut viper
#

depending on what exactly is meant by "running it"

#

that shop framework is also no longer needed in 1.6

next plaza
#

Time to make a new test save in case this blows up

rain basalt
#

if you have an npc to run it you shouldnt have any issues

#

not 1.6.10?

uncut viper
#

putting the shop on the farm itself would also be more difficult than otherwise

next plaza
gaunt orbit
#

yeah, NPCs are blacklisted from pathfinding on the farm

next plaza
#

I'm still on SMAPI 4.1.0-beta.5

uncut viper
#

but yeah, making a shop elsewhere run by an NPC or just no one is easy, but i didnt think thats what they wanted

rain basalt
#

.<

tidal onyx
#

I see

uncut viper
#

(not to mention people with different farm layouts, modded or otherwise)

tidal onyx
#

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

rain basalt
#

hmm it could be put in town to make it easier

lucid iron
#

maybe you are run e-bakery empire (through this funny looking shipping bin)

brittle ledge
#

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

tidal onyx
#

Okay! I'll check it out :D

final arch
rain basalt
#

na still in bug beta

next plaza
#

Posting SpaceCore 1.26.1 with the serializer stuff fixed.

rain basalt
#

should i copy my save? first SDVkrobusgiggle

next plaza
#

I mean, I would hope you did that when 1.6.9 first dropped

rain basalt
#

na my last save was Beta testing

next plaza
#

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.

lucid iron
#

would there be problems if people saved something with serialized type

#

and then latter remove mod, even after spacecore-1.26.1

next plaza
#

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

lucid iron
#

ah that's good enough, thank you wew

shut oasis
#

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?

lucid iron
#

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

shut oasis
#

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.

old edge
#

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.

lucid iron
#

well with mod making just do whatever you want AquaThumbsup

#

you can figure out whether it'll run on other people's machine once you are done

uncut viper
#

content patcher patches can still be incompatible with other mods

next plaza
#

Yeah, UI recolors are big example

old edge
#

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

next plaza
#

(Though why you'd want more than one is another question)

uncut viper
#

well, it seems like you've answered your own question as to why people say mods are incompatible, then

shut oasis
old edge
#

Yeah just I guess people don't read the information

uncut viper
#

something not being in a requirements section doesnt mean its incompatible

old edge
#

Ywah but it doesn't break anything just means the author hasn't added a patch for the mod

uncut viper
#

im not sure i understood your original message entirely so forgive me if my responses are misunderstanding you

old edge
#

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

uncut viper
#

that doesnt mean its not incompatible, though

old edge
#

Yeah it's not incompatible

uncut viper
#

"incompatible" doesnt always mean "breaks everything"

old edge
#

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

rain basalt
#

i love how i got someone mailing me cause another mods map failed to load into my greenhouse mod

brittle ledge
#

What's the full context here? I don't really see anything mentioned in the mod page?

frail swan
#

anybody know what buildingPlacementTiles.xnb got switched to in the update?

uncut viper
#

it was just deleted. those tiles are in some other sheet i cannot recall but someone surely does

lucid iron
#

yes, there's a 1x scale version in cursors

#

you can use that with scale 4 to draw the same tiles as before

frail swan
#

can't for the life of me find it

lucid iron
frail swan
#

I just dont even know where the cursors folder is

quaint moss
#

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.

lucid iron
ornate trellis
#

err loosesprites lol

#

hate it when i type what i am looking at instead of what i was thinking to type :I

frail swan
#

thanks muchly pals

ornate trellis
#

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

next plaza
frail swan
uncut viper
#

pixel coordinates i imagine

#

and width/height

lucid iron
#

yea this is the arguments to the source rectangle you would use to draw

#

X Y width height

frail swan
#

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();
        }
    }
calm nebula
#

What are you trying to do here

frail swan
#

just make it work with the new patch

uncut viper
#

are you grabbing just the left icon by copying pixel data directly?

next plaza
#

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 [...]

calm nebula
#

No, go up one level from that. What are you trying to do

frail swan
#

is there a better way to do it?

uncut viper
#

we don't know what you're trying to do

#

what is the end goal of this code

tender bloom
uncut viper
#

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

next plaza
#

@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)

frail swan
#

I just wanna steal the cursor, honestly maybe I should just try to find the old file and put it back in

lucid iron
#

im not sure why you have to do this think

#

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

knotty trellis
#

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?

rain basalt
#

yes with CP you can set day time trigger for load

finite meadow
#

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

knotty trellis
rain basalt
#

you can target any npc loaded

knotty trellis
#

Awesome, thank you!

rain basalt
#

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

uncut viper
#

you dont need to do that, you can use Appearances

rain basalt
#

think they wanted specific day though

uncut viper
#

no reason you cant do that with Appearances

#

they take a GSQ

rain basalt
#

ah k

sweet sphinx
#

GSQ?

knotty trellis
#

Ah ok, I'll probably look at both and use whichever seems easier, thank you both so much!

uncut viper
#

game state query

sweet sphinx
#

ah

rain basalt
#

game state query

rain basalt
#

.> glad i make my custom tile sheets large enough to just add one tile when i find i need to edit something lol

lucid iron
#

strongly recommended to do appearances

#

it's the same system used for vanilla winter outfits fyi

knotty trellis
#

Okay, would you say to put the line in with the rest of the NPCs schedule, or would it go somewhere else?

uncut viper
#

it wouldnt go in the schedule, it goes in their Character data

knotty trellis
#

Okay

lucid iron
#
Stardew Modding Wiki

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...

uncut viper
#

you can also look at your unpacked Data/Characters for examples too

knotty trellis
#

Alright! This is my first time trying to mod a game, so thank you all for the help (:

rain basalt
#

i havent attempted NPCs yet but i hear they can break easy if you forget a spot

next plaza
#

@calm nebula re: question in #programmers-off-topic - Had to fix a serious spacecore bug earlier, and finally got the updated JA build done

latent mauve
#

Just be careful with your weight/precedence for Appearances, or you might accidentally block your new one from appearing

knotty trellis
#

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?

lucid iron
#

i don't think appearances let you define a source rect, so yes need to separate

knotty trellis
#

Alright, thank you

rain basalt
#

hmm any recomendations for the top area already plan to adjust the right path to make it less straight feeling

deep cypress
rain basalt
#

hmm kk ill keep playing with it

deep cypress
#

Also, make the cliff less straight. Make it come down one more.

rain basalt
#

i was thinking of making it bulge into the dark grass area a little and placing a perma tree on top\

deep cypress
#

Yes! ๐Ÿ™‚

rain basalt
rancid temple
#

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

rain basalt
#

hmm mabey it broke cause its after halloween SDVkrobusgiggle

rancid temple
#

Yep

#

Both are adding to Strings/StringsFromMaps

lucid iron
#

check if u see them in a patch export of the asset maybe

rancid temple
#

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

sweet sphinx
#

how do yall be making maps?

rancid temple
#

Do you mean with what software or what?

sweet sphinx
#

yes

rancid temple
#

!tiled is this the command?

#

Nope, hm, one sec

#

!mapmaking

ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

sweet sphinx
#

thanks

rancid temple
#

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

rain basalt
#

i use tiled

rancid temple
#

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

lucid iron
#

always start with a vanilla map

#

game's pretty strict about layer namings

sweet sphinx
lucid iron
#

sometimes strict about tilesheet names too

ivory plume
#

(StardewXnbHack 1.1.2 is now released, with support for the latest SMAPI 4.1.4.)

rain basalt
#

broke up the edge will fix the rock face look soon any other suggestions

rancid temple
#

Flowers? Vanilla usually has some dancing ones around

sweet sphinx
#

the little jelly flowers?

patent lanceBOT
#

@calm nebula: add the new shop to gsqcheck (20h ago)

rain basalt
#

ah the spring flowers yah sec gota animate them again

rancid temple
#

Okay, has Buildings Message always been case sensitive?

sweet sphinx
#

the one farm map I use(d) had like 8 of those flowers upsidedown, and idk how they did that

rain basalt
#

far as i know its all case sensitive

#

in tiled you can rotate / flip tiles tmx can do it tbin cant

rancid temple
#

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

calm nebula
#

(::pufferheart:)

rain basalt
#

i always assume case sensitive lol

rancid temple
#

Well, I guess I will just continue my "make everything case sensitive" crusade forever then

rain basalt
#

its a good habbit specialy with programming

rancid temple
#

Not sure what the hell is wrong with my crow building, I'm using the mod translation class builder for that one lol

lucid iron
#

what were u getting for that Bolb

rancid temple
lucid iron
#

oh i know you didnt call it

uncut viper
#

did you pass in the delegate itself and not the value or vice versa

calm nebula
#

Lol

lucid iron
#

need I18n.Enchantment_Gatherer_Name()

#

instead of I18n.Enchantment_Gatherer_Name

#

or w/e key u have

rancid temple
#

Huh, it was working during the beta lmao

ivory plume
rancid temple
#

Easy fix, just confusion

#

Well, maybe not easy fix, I still need to be able to pass the variable

lucid iron
#

i have similar usage, let me try it

rain basalt
#

hmm what time is 00:-01

lucid iron
#

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}}"
rain basalt
#

they open but never close

rancid temple
#

Similar-ish but not enough lmao

Game1.drawObjectDialogue($"{I18n.CrowsFed} {crowsFed.Value}.");```
lucid iron
#

you are formatting the delegate monS

uncut viper
#

I18n.CrowsFed isnt putting the string there thats just the function itself

lucid iron
#

should just use the {{token}} stuff

#

it'll be nicer for translators

#

they can rearrange for locale/grammar

uncut viper
#

$"{I18n.CrowsFed()} {crowsFed.Value}." (but also i agree with chu too)

rancid temple
#

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

uncut viper
#

its possible you were originally using some function call that does take a function like that and changed it later

rancid temple
#

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

uncut viper
#

like GMCM does

rancid temple
#

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

uncut viper
#

correct

rancid temple
#

Ah, thought it would only bork the translation and not the whole thing

uncut viper
#

with the translation helper all i18n things like that are functions that return the string in question

lucid iron
#

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

rancid temple
#

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 SDVpufferheart

uncut viper
#

luckily it is ezpz and i believe in you

rancid temple
#

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

old edge
#

What happened to wizardHousetiles.png was it never used in the game?

rain basalt
#

its there

rain basalt
brittle pasture
#

try re-unpacking the files. wizardHousetiles was one of the victims of the 1.6.9 unused tilesheets purge

rain basalt
#

also make sure your using the newest xnb unpacker

uncut viper
#

i think selph was talking to you celestia

lucid iron
#

@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? bolbwawawa

brittle pasture
#

ah yeah, should clarify

rain basalt
#

ah lol i still using beta unpack ^..~ also that pic above is the actual png file so you can download it dreamy

old edge
#

That's the only issue I had loading my mod that's strange.

calm nebula
#

On Linux it just crashes like that

lucid iron
#

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

uncut viper
#

well, i wouldnt download it if you're relying on other people having that tilesheet already in their game, because they wont

brittle pasture
#

(though don't rely on it, given that it's gone and all)

uncut viper
#

it was removed

rain basalt
#

but you can use a load with Cp to add it back lol

calm nebula
#

Kept popping up during the alpha. If I didn't recompile my own mods I saw it a lot

old edge
#

Hmm so it was never used i see i think I only used the table sprite

lucid iron
#

Mystery blobcatgooglyblep

#

I think I gotten it only once during beta, for cjb cheat

rain basalt
#

and load it in as custom

lucid iron
#

Usually not for my own mod but that's cus I just build all of them b4 doing any work

next plaza
uncut viper
#

i was gonna say the same lol

calm nebula
#

Alpha was literally a year long lol

uncut viper
#

using the original sheet is better if you can

calm nebula
#

Hi casey!

rain basalt
#

well not if your making a custom map and you dont want the assets changed

calm nebula
#

God I'm tired

next plaza
#

Hi

uncut viper
#

someone can still change your assets if they target them specifically anyway

lucid iron
#

It doesn't sound like anything that can be fixed on mod side alas sleep

next plaza
#

You can't target them via CP if you use {{InternalAssetKey}} (or for map tilesheets, don't explicitly load them)

rain basalt
#

true if they wanted to do a targeted recolor

next plaza
#

Well... I guess you can with SpaceCore's texture override system

#

You don't have to use it for animations

rain basalt
#

or just dump them into the mod as a replacer

uncut viper
#

hm. would it work for internalssetkeys if you set your target with the "SMAPI/ModId/" prefix like internal asset key does?

lucid iron
#

You would have to have magical knowledge of the id right

tiny zealot
#

i'm pretty sure you can still target internalassetkey assets if you know how smapi/CP constructs them, yeah

old edge
#

Just moving some tiles over to my already loaded up one.

next plaza
#

Unless something has changed

tiny zealot
#

(i haven't tried it. i'm just reporting hearsay)

uncut viper
#

hmm. but you can still use em in Texture fields and such

calm nebula
#

Yeah...hmmmm

#

I'm surprised it doesn't work tbj

rancid temple
#

Just make your own version of someone's map with your own tilesheets and load your map over theirs

old edge
#

But would anyone be able to help with my ambient light method it keeps going dark not smooth like regular ambient outdoor location

uncut viper
#

it wasnt something i tried with my internalassetkey token stealer

brittle pasture
#

IIRC you can reference it, you just can't use CP to patch/edit it

calm nebula
#

Unless smapi deliberate block

next plaza
next plaza
calm nebula
#

Easy enough to do a test, says the person not doing the tesr

#

I volunteer button

rancid temple
#

It's easy, you just get someone else to do it

uncut viper
#

grumbles

lucid iron
#

Thanks button

next plaza
#

Yeah it doesn't work

#

SMAPI blocks it

#

A managed asset being any that start with "SMAPI"

uncut viper
#

i dont understand smapi code enough to understand what part of this is doing the blocking or when this is called

next plaza
#

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

uncut viper
#

so i should patch smapi is what you're saying

next plaza
#

I guess you could

old edge
#

I made the table a nice red color

next plaza
#

@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

uncut viper
#

oh god casey why

next plaza
#

:)

tender bloom
#

I'm sure pathos would notice eventually

uncut viper
#

after i said id send you cat pictures SDVpufferwaaah

tender bloom
#

you're just getting it over with!

teal bridge
#

I sense an arms race.

rain basalt
#

hmm i usualy load into game files and let CP patch the loaded files with no problems

next plaza
#

You never actually sent them smh

#

Yeah, that's different

lucid iron
#

Button what if you just send in a PR like a normal person

uncut viper
#

theres no justification for this functionality

next plaza
#

I think I've asked before

brittle pasture
lucid iron
#

Aw ok crimes it is then

rain basalt
#

yah i know your talking about editing other mod files directly

lucid iron
#

Tbh a solid alternative would be less implicit internal assets in general

uncut viper
lucid iron
#

There was person trying to recolor downtown zuzu and couldn't because it had many internal tilesheets

ivory plume
rancid temple
#

InternalAssetKey but it loads them into the pipeline anyways

uncut viper
#

promise fulfilled

#

oh no that was two "really"s im screwed

next plaza
#

I mean, sometimes it legitimately makes since. It'd make more sense to ask the mod author to change it to not be internal

tender bloom
#

that's one of the longest numbers I've ever seen SDVpuffersquee

next plaza
uncut viper
#

this is for future prevention

rain basalt
#

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

rancid temple
#

What's that like 20 characters?

teal bridge
#

(I hear that SMAPI has special logic for that particular number)

next plaza
uncut viper
#

i will make sure to preface any terrible crime ideas i have in the future with a cat picture

next plaza
#

201

teal bridge
#

It's closer to 20 words, not characters.

next plaza
rancid temple
#

That's the same logic when a cat commits a crime so I think that's fair

uncut viper
#

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

tender bloom
#

cat!!!!

next plaza
rancid temple
#

Off topic channels give me anxiety

uncut viper
#

every time i look in there i feel more stupid than before

tender bloom
#

they're just nerds

lucid iron
#

everyone knows steady supply of cat required for coding

teal bridge
tender bloom
#

shhhh

#

i too am nerd

#

but button doesn't have to know

calm nebula
teal bridge
#

And with good cause, no?

uncut viper
tender bloom
#

I'm not very good at disguises SDVpufferchickcry

calm nebula
calm nebula
#

and also to do debugging away from modders in general

#

that's a nicer life

next plaza
calm nebula
teal bridge
#

I rate that 100% wonderful and great, personally.

uncut viper
next plaza
#

points at aquarium

tender bloom
#

retired except for the exceptions

uncut viper
#

yeah im pretty sure with aquarium work atra has done modding more than me these last few weeks

lucid iron
#

atra is the least retired retired modder i know

next plaza
#

I mean, everything fits under "itself except for exceptions"

uncut viper
#

except for the exceptions

brittle pasture
#

Nah, Aquarium just did that to itself one day

calm nebula
#

throw new AtraIsAnnoyedException();

brittle pasture
#

There is truly magic left in this worls

rancid temple
#

atra tripped and accidentally a mod

next plaza
#

catch (AtraIsAnnoyedException) {}

uncut viper
#

continue;

brittle pasture
#

what's an "exception", can we eat that

  • signed, crab person
next plaza
#

How dare you imply rust in my C# modding channel

teal bridge
rancid temple
#

There's content packs here too

tiny zealot
#

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

uncut viper
#

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

next plaza
#

Wouldn't it be better

lucid iron
#

so like global dynamic tokens?

next plaza
#

Just to PR CP for allowing packs to expose DTs

uncut viper
#

making PRs for advanced functionality to content patcher is for people who are smarter than me to do

next plaza
#

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

uncut viper
#

i do these crimes in my own mods because i dont have to worry about things like "best practices" or "quality code"

rancid temple
#

PR scary

teal bridge
#

To be fair, hacking a solution is a lot faster than getting a Pathos PR approved...

tiny zealot
#

you don't need permission to hack together an external thing like you do with a PR

next plaza
#

I mean, I guess, but I'm pretty sure Pathos is open to that as a feature

calm nebula
#

Pathos is not that scary

brittle pasture
#

tbh it's not so bad an idea, like mail flags but better because you don't have to unregister it every day end

lucid iron
#

hm maybe like

calm nebula
#

he's taken my PRs before, even the ones with math mistakes in it

next plaza
#

And how do you plan on unregistering tokens that disappear from the asset

uncut viper
#

i genuinely just dont know how to implement it in CP itself

lucid iron
#

GlobalDynamicTokens

teal bridge
#

It's not scariness, it's workload.

lucid iron
#

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

calm nebula
#

what about

{
    "Name": "MyFancyDynamicToken".
    "Value": "Perfection",
    "IsGlobal": true
}
teal bridge
#

Good idea.

rancid temple
#

It's a start

uncut viper
#

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

next plaza
uncut viper
#

i thought thatd be in the dynamictokens field

next plaza
#

You could argue it's only valid for the base case

uncut viper
#

oh wait

#

i forgot you can When dynamic tokens

devout oriole
#

does anyone know if it would be possible for me to add east scarp to an existing save?

next plaza
#

But that sounds like something Pathos wouldn't go for

devout oriole
#

3 years in and i wanna use east scarp now lmao

calm nebula
old edge
#

Mod has now loaded in 1.6.10 hooray

devout oriole
#

mainly bcuz im almost done with perfection and want more to do lollll

uncut viper
#

CP already has to go down the list for dynamic tokens anyway right? couldnt the When just control its value the same way

calm nebula
uncut viper
#

if the IsGlobal is on the first one

devout oriole
next plaza
lucid iron
#

i really think it should just be separate field

next plaza
#

Like, what happens if another mod is using a token that is suddenly no longer valid

lucid iron
#

then u can be like "all global tokens go first no exceptions"

next plaza
#

I guess it could act like tokens that aren't ready

uncut viper
#

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?

calm nebula
#

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

lucid iron
#

thats just reinventing python shadowing MitsuYawn

calm nebula
#

but that sounds confusing af

teal bridge
calm nebula
#

oh my goddddddddd

#

is this "develop the worst programming language" time?

teal bridge
#

I sure hope so!

calm nebula
#

I want to actually think more about the mathematical concept of sets, ficustents

uncut viper
#

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

calm nebula
#

yes, if you hated yourself

lucid iron
#

would you follow the same format as C# registered tokens

#

need {{johndoe.ModId/GlobalToken}} instead of just {{GlobalToken}}

uncut viper
#

do you mean for an official implementation or my hacky external workaround

calm nebula
#

yes

uncut viper
#

that makes most sense to me

tiny zealot
uncut viper
#

(i thought you meant the registering part)

next plaza
#

But if it's a separate mod, well...

lucid iron
#

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

uncut viper
#

do you mean CMCT or another one

lucid iron
#

yea CMCT DokkanStare

next plaza
#

Ah yes, everyone loves all the acronyms in the modding community

tiny zealot
#

petition to rename CMCT -> Kumquat

lucid iron
#

wow yes

royal stump
#

(my brain has decided that reads "cement")

uncut viper
#

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

uncut viper
#

or minecraft performance mods

brittle pasture
#

Let's embrace that tradition
What the fuck is a Firefox SDVpufferwoke

next plaza
#

I mean, I'm literally planning on naming a theoretical HC core mod I do "Catnip"

uncut viper
#

if its a core mod that doesnt exactly need to be generally found i think its fine and fun

lucid iron
#

casey already planning ahead DokkanStare

next plaza
#

I mean, it's no more clear than SpaceCore

uncut viper
#

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

lucid iron
#

i keep googling spacecore and getting hits for the spacecore aesthetic

next plaza
#

SpaceCore wasn't originally a content pack framework, so that's part of it

#

I'm not sure Content Patcher existed back then

uncut viper
#

yeah the name kind of implies its origins ๐Ÿ˜›

next plaza
#

What are you talking about? I don't know anybody with space in the name

uncut viper
#

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

next plaza
#

And yeah, CP was early 2018, SpaceCore was mid 2017

uncut viper
#

if im not supposed to just randomly stumble upon it for a specific purpose then its w/e

next plaza
tiny zealot
#

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

uncut viper
#

and core mods arent usually meant to be randomly stumbled upon for a user to go "oh i want this!"

calm nebula
#

got it.

#

naming literally everything -core now

brittle pasture
#

on the other hand iCore sounds like an Apple product

uncut viper
#

if nexus could just search in the mini description they make us write above the normal description thatd be great

royal stump
#

farm type core, now everyone will know what it does & stop reporting map errors to me

lucid iron
#

what if you suffix all your mods with tower instead

next plaza
#

(Though that can be said for FTM too)

calm nebula
#

we now have "fix-all-my-stupid-silkscreen-mistakes-core"

tiny zealot
#

if i did it (which i won't), EyeTowerCore would be the most likely name, what was i thinking

royal stump
next plaza
uncut viper
#

if we're coming up with fun cool names for our core mods i call dibs on Spiderweb

odd iris
#

Does anyone know if the ModManifestBuilder Nuget package can work with mod build package's new <ContentPacks> functionality to build manifests in content packs?

uncut viper
lucid iron
next plaza
odd iris
uncut viper
#

true, but at leasty with the mini description theres less space to include all the common dictionary words

lucid iron
#

csproj is just description of build targets (things to put into release)

lucid iron
#

so ig it'd be additional targets? unsure

next plaza
#

<inserts all common words and no mod description>

lucid iron
#

either way its not a feature provided by ModManifestBuilder or ModBuildConfig

tiny zealot
#

can't wait for nexus mod listings to become keyword spam like amazon products

brittle pasture
#

best nice pretty witchcore cottagecore gardencore faecore magiccore texture

calm nebula
next plaza
lucid iron
#

is there char limit on mod unique id

next plaza
#

Not that I'm aware of

#

Have fun typing patch reload for that though (if it were a CP mod)

uncut viper
#

casey when are you gonna make a PR to CP to add fuzzy search to patch reload