#Lobby Control & Matty's Fixes

1 messages ยท Page 12 of 1

languid hound
#

Hmm... This problem just happened in my lobby. Let me check the logs.

#

This is why the prompt key is duplicated, because the previous one interrupted the process.

vagrant root
#

@unreal oriole

#

I wonder if ShipLobby or Late Company would repro this

languid hound
#

So this NullReferenceException is the cause of the problem.

#

This might not be a problem caused by lobbycontrol; it's that some network objects are having issues.

vagrant root
#

Looks like a Lobby Control bug to me based on the NRE

#

NRE throws after it adds the client

languid hound
#

I will add some logs to confirm which object is null.

unreal oriole
vagrant root
#

Someone was talking about it in modding general

unreal oriole
#

ship lobby should work. as it's the most basic latejoin logic

unreal oriole
outer void
#

Works for me ๐Ÿ‘

vagrant root
#

I wonder

#

@unreal oriole Could ShipLobby and Lobby Control be used together if ShipLobby works? or would stuff break

#

just wondering if you could have ShipLobby do the late joins and keep Lobby Control to fix the bugs until you manage to resolve whatever is happening

#

I still wonder if it's somehow from this

unreal oriole
#

lunx... please. i know you are in a hurry to have the issue fixed but take a bit of time to read what we say

#

LobbyControl LateJoin code is 1:1 from Ship Lobby as LobbyControl originally was a fork of Ship Lobby

#

if you disable the JoinQueue you'll have ShipLobby code running ( plus a check to still enforce the banlist )

languid hound
#

I was running the Vanilla Public lobby all afternoon and evening, and this problem only occurred 3 times. It's really hard to reproduce the issue.

forest flame
#

today i had this problem when the 5th guy tried to join the lobby

median thicket
#

Personally I have no issues with LobbyControl late join features

tawdry gyro
#

Im hearing more than 10 or even 25 starts to have problems

median thicket
#

i have games with 7 to 11 players but thats it

median thicket
tawdry gyro
median thicket
#

lmao thats too much, whats this person doing

tawdry gyro
#

Sure

brisk harbor
#

the latest version of furniture lock doesnt appear to actually prevent other clients from moving furniture

#

i keep the teleporter locked in default position and someone was just able to move it

vagrant root
errant furnace
#

I think he can see the message in his own thread Lunx

#

If he hasn't responded he might just be busy

vagrant root
#

Thread's been active so I wanna make sure he doesn't miss it since a lot of messages have been posted

errant furnace
#

the thread did in fact not fill up in the 4 hours since that message

#

chill ๐Ÿ‘

vagrant root
#

Fair, I just still like to try and help when possible

errant furnace
#

if it does get filled up then do ping

errant furnace
faint vine
#

@errant furnace I am helping beevil

errant furnace
#

yes you are little paquito!!!

vagrant root
#

So maybe disabling the Queue would fix it? Idk

#

I thought you did a lot of rewriting and they weren't remotely the same based on how you said it started off as a fork then underwent a lot of changes

languid hound
#

No, these are not the causes of the problem.

#

If you want this issue to be fixed, you need to provide a stable way to reproduce it.

languid hound
#

This problem is absolutely crazy. I decompiled and modified Unity.Netcode.Runtime.dll, and just added a try-catch in the SortParentedNetworkObjects method to catch exceptions and output logs, and the problem was fixed. There are no more exceptions...

#

Raw

        private int SortChildrenNetworkObjects(NetworkObject first, NetworkObject second)
        {
            Transform cachedParent = first.GetCachedParent();
            NetworkObject networkObject = ((cachedParent != null) ? cachedParent.GetComponent<NetworkObject>() : null);
            if (networkObject != null && networkObject == second)
            {
                return 1;
            }
            Transform cachedParent2 = second.GetCachedParent();
            NetworkObject networkObject2 = ((cachedParent2 != null) ? cachedParent2.GetComponent<NetworkObject>() : null);
            if (networkObject2 != null && networkObject2 == first)
            {
                return -1;
            }
            return 0;
        }

Modify

private int SortChildrenNetworkObjects(NetworkObject first, NetworkObject second)
        {
            int num;
            try
            {
                Transform cachedParent = first.GetCachedParent();
                NetworkObject networkObject = ((cachedParent != null) ? cachedParent.GetComponent<NetworkObject>() : null);
                if (networkObject != null && networkObject == second)
                {
                    num = 1;
                }
                else
                {
                    Transform cachedParent2 = second.GetCachedParent();
                    NetworkObject networkObject2 = ((cachedParent2 != null) ? cachedParent2.GetComponent<NetworkObject>() : null);
                    if (networkObject2 != null && networkObject2 == first)
                    {
                        num = -1;
                    }
                    else
                    {
                        num = 0;
                    }
                }
            }
            catch (Exception)
            {
                Debug.Log("first:" + first.name + ",second" + second.name);
                throw;
            }
            return num;
        }
vagrant root
#

But neat that late join problems are solved by that

#

You could probably upload it as a workaround solution til Matty has more time to look into the issue

languid hound
#

No, this shouldn't be a solution...

vagrant root
#

Oh yeah I don't think so either

languid hound
#

This is a very strange problem.

#

Even if I don't catch exceptions and just output logs, the problem is still fixed.

#
        private int SortChildrenNetworkObjects(NetworkObject first, NetworkObject second)
        {
            Debug.Log("first:" + first.name + ",second" + second.name);
            Transform cachedParent = first.GetCachedParent();
            Debug.Log("16");
            NetworkObject networkObject = ((cachedParent != null) ? cachedParent.GetComponent<NetworkObject>() : null);
            if (networkObject != null && networkObject == second)
            {
                return 1;
            }
            Transform cachedParent2 = second.GetCachedParent();
            Debug.Log("23");
            NetworkObject networkObject2 = ((cachedParent2 != null) ? cachedParent2.GetComponent<NetworkObject>() : null);
            if (networkObject2 != null && networkObject2 == first)
            {
                return -1;
            }
            return 0;
        }
vagrant root
#

I mean it did error upon LobbyControl logging it was adding the client before

#

So this isn't too surprising

languid hound
#

Fixing this problem is actually very simple, but the difficulty lies in finding out which mod is causing this problem.

vagrant root
#

Idk what's in your testing profile tbh

#

but that would be a safe guess

vagrant root
frozen basalt
#

Hello, is that normal AdditionalNetworking Experimental 2.3.4 first give this error when starting the game: [Fatal :AdditionalNetworking] Could not find Interfaces dll!
Then spam errors in the console in game?

vagrant root
#

I've never seen this error so I would say definitely not

frozen basalt
#

When I'm using the normal version or the 2.3.3 there is not that problem, could be a mod conflict or something?

vague talon
#

did you manually install AdditionalNetworking

frozen basalt
#

No from gale

#

I checked in the folder there is the additionalnetworking.interfaces.dll that weird he don't see it ๐Ÿค”

vague talon
#

we share basically the same code

frozen basalt
#

I try that

#

Same error at the start for the moment

#

Same issue

vague talon
#

hmm

#

do you have other profiles with DawnLib in them?

frozen basalt
#

I didn't try to disable every mods and just keep AdditionalNetworking Experimental and see if that the same

Yes I do, Im on one Im testing things

#

Just tested with every mods disable and just AdditionalNetworking Experimental and same issue

vague talon
#

uh this is gonna be a weird request but are u able to delete your other profiles?

#

or test on those other profiles instead?

frozen basalt
#

they are synced so I guess I can do that and download them back if needed right?

frozen basalt
#

I do a new profile and delete the other and download AdditionalNetworking Experimental and DawnLib only?

vague talon
#

well you dont need to make a new profile, just need to get rid of AN or DL from other profiles and test

frozen basalt
#

No more issue

#

hmmm

#

Could be because it's an old profil Im editing from a long time and it has a lot of old cfg in it?

vague talon
#

@unreal oriole the plugins path search picks the first one with our mods in it ๐Ÿ™ƒ

vague talon
frozen basalt
#

It's looking in the wrong profile?

vague talon
#

yep

#

it's probably alphabetical

frozen basalt
#

Hope that could help fix things!

vague talon
#

ye we'll fix it when we can, its a silly issue

frozen basalt
#

It's ok I can use the normal version for the moment or just the previous version I think

unreal oriole
#

the only fix for us Xu is to actually make the separate Injection library. or politely ask people to not have other mods with our name in the profile ( even if they are disabled )

languid hound
#

Iโ€™m very sorry for occupying the LobbyControl channel these past few days. The issue has now been resolved, and Iโ€™d like to summarize what happened.

https://thunderstore.io/c/lethal-company/p/chuxiaaaa/v73ncfix/

Q: Was this problem caused by LobbyControl?
A: Not at all.

Q: Was this a vanilla (base game) bug?
A: Yes, but not entirely. In vanilla, after the ship lands, players can no longer join the lobby, so this issue wouldnโ€™t occur there.

unreal oriole
#

anything that helps fix bugs. i'd say a latejoin issue definitely fits the channel๐Ÿ˜„

#

what was the issue btw? unity NGO jank?

languid hound
#

The cached parent of network objects is lost, and I don't know why.

errant furnace
#

oo so that fixes latejoin issues?

languid hound
#

@errant furnace Solved this problem

errant furnace
#

gotcha!

wintry token
unreal oriole
#

i'm not aware of new latejoin issues other than this semi-rare one

#

and LobbyControl Experimental should solve most of the green fogs from my mod

vagrant root
#

It wasnโ€™t even semi-rare we reprod it so often lol

#

It just was that none of us knew the direct cause

errant furnace
#

I haven't had any late join issues myself so unsure

vagrant root
errant furnace
#

ye I installed it

#

chuxia the goat

tawdry gyro
#

Idk what this is

vagrant root
#

That way people won't keep reporting issues with late joins

tawdry gyro
languid hound
# unreal oriole what was the issue btw? unity NGO jank?

How to Reproduce the Issue

  1. Install any late join mod (e.g., LobbyControl).

  2. Start the game, go into the facility, remove the LungApparatus, and bring it back to the ship.

  3. Launch the ship.

  4. When another player joins the lobby,will an error occurs.


Reason for the Issue

  1. In older versions, NetworkObject did not have the concept of CachedParent โ€” this property was introduced in newer versions of Unity.

  2. The CachedParent value is only assigned during the Awake() phase. For the Apparatus object, its CachedParent is the MapPropsContainer inside the planet.

  3. When the ship leaves the planet, the entire planet gets destroyed, making the CachedParent (MapPropsContainer) become Destroyed (i.e., null).

  4. When a new player joins the lobby, Unity sorts all networked objects before sending them to the client.
    During this sorting process, Unity attempts to call GetComponent() via the CachedParent, but since the parent has already been destroyed, it throws an error.

vague talon
#

what was da solution?

languid hound
#
[HarmonyPrefix]
[HarmonyPatch("GetCachedParent")]
public static void GetCachedParent(NetworkObject __instance)
{
    if (__instance.m_CachedParent == null)
    {
        __instance.SetCachedParent(__instance.transform.parent);
    }
}
vague talon
#

interesting okie

forest flame
vagrant root
wintry token
#

hu_luo said that he will do a separated mod for the auto-apparatus selling soon

vagrant root
#

That being said @stiff nymph I can see there being issues with this, you might wanna make sure it can't sell the ones that are part of Wesley's progression

#

I'm gonna downgrade the mod to v1.0.3 to avoid problems

vague talon
#

The issue would probably happen to modded apparatuses too, no point in making sure it affects vanilla apparatuses only

#

It just would directly miss the point of what it does

faint vine
vague talon
#

Ye

unreal oriole
#

problem is not apparatus specifically. is any scrap that spawns as part of a scene/prefab as opposed to the RoundManager code

and we cna generalize it even more to any NetworkObject that can persist across rounds but spawns as part of a prefab that instead gets destroyed

#

i wonder if the bird eggs count. or probably even the cruiser clipboard if it survives while the cruiser gets destroyed ๐Ÿค”

languid hound
# languid hound ``` private int SortChildrenNetworkObjects(NetworkObject first, NetworkO...

I took a look,the CachedParent of Kiwiโ€™s egg is initialized as null, so there shouldnโ€™t be any issue.
What I donโ€™t really understand is why Unityโ€™s internal code would run into a problem.
In the code I posted, it checks whether CachedParent != null before calling GetComponent, but when the object is Destroyed, the condition check doesnโ€™t behave correctly.
However, after I modified Unity.Netcode.Runtime and added some logging, the condition started working properly again.

unreal oriole
#

a destroyed object is not null in the c# meaning of null

#

unity overrides the equality check to see if it was destroyed and treat it as null

#

i'd guess this code was compiled w/o that override so it is doing a native null check instead of unity own version

#

when you modified/recompiped it. it started using the correct logic so it started working ๐Ÿ˜…

#

@solar monolith do you think this explanation makes sense?

solar monolith
#

it's certainly possible, but it's worth confirming, since it would be very surprising to me if the decompiler emits ==/!= for that

#

I think it's much more relevant to see what exactly the IL instructions are at the point where it's getting the null

#

I didn't read everything here, but I didn't see any indication that that has been done

#

I think normally I would expect the decompiler to do a (object) a == b or perhaps ReferenceEquals

slow dagger
#

additionalnetworking experimental makes this error spam in lobby and breaks toomanysuits

unreal oriole
#

there is probably a error earlier at the start of the log

#

the preloader is not running

#

either you have both Experimental and not installed or your installation got somehow corrupted

#

i'm waiting on a feedback from @vague talon about something that could make the system more reliable

#

but exactly because it's a 2 dll system if either one is missing things will break ๐Ÿ˜…

slow dagger
#

the first time it did that i did have normal still active so that was on me

vagrant root
#

I do wonder why some people are having this happen

slow dagger
#

second time was with normal disabled

vagrant root
#

I haven't had any problems with the Interfaces dll missing

#

super odd

unreal oriole
#

experimental break if stable is installed at all. it doesn't matter if it's disabled or not ๐Ÿ˜…

slow dagger
#

thats weird

vagrant root
unreal oriole
#

files still exist and that's the issue with the current system and why i've not moved it out of Experimental yet

slow dagger
#

i'm trying again with stable completely uninstalled

vagrant root
#

Speaking of Experimental you could probably push it to stable

#

I haven't had any problems

slow dagger
#

with stable completely gone its now working fine

unreal oriole
#

no worries. i've seen how busy you are

vague talon
#

๐Ÿฅบ could always lighten my load and join dawnlib, more than just the groupchat i spammed

unreal oriole
#

if i had time to work on a library i would be redoing multiplayer ๐Ÿ˜…

lament jetty
#

is there any options that cause errors rn

wispy widget
#

Is this mod compatible /w Lobby Control

#

As far as we're aware, LobbyControl doesn't allow joining mid-session, and we'd like that for our lobbies, but LobbyControl also has a lot of qol features for the host, so we'd like to keep both if we can

lament jetty
#

lobby control has mid session

#

you need to enable it

wispy widget
#

Oh we didn't know

#

Can you just use the Lobby Open command while landed? Is that how it works?

faint vine
#

Expect a million issues plink

wispy widget
#

Idc

faint vine
#

Well

#

Make sure to mention you're doin mid-round joins when reporting bugs ๐Ÿ’€

errant furnace
errant furnace
#

hopefully it doesn't but augh ๐Ÿฅฒ

forest flame
#

Nope

#

It says that you can only do this in orbit

unreal oriole
#

yeah, i've already have enough troubles preventing desyncs from orbit. i intentionally avoided allowing moon-joining

#

also for compatibility, nope. both mods are modifying the same part of the code so you can only use one of them. tho i'm not sure what part of LobbyControl you want to use if you have another mod handle Late-Join ๐Ÿค”

lament jetty
median thicket
#

I only use Lobby Control for late joining in orbit, peak mod that's it

kindred cove
#

and if it did it's weird no one tried to recreate it lol

faint vine
#

-# (Probably)

#

If it does then it's gullible greed

kindred cove
#

although

#

the 2-year expiration date is coming really close

faint vine
#

๐Ÿ’€

kindred cove
#

and I will use it fully

kindred cove
faint vine
#

Lol

kindred cove
#

I wonder how's the advanced all-game modloader doing

faint vine
#

But uh, thing I'm most worried about with mid-round joining is uhh

#

Good luck with interior hot-reloading plink

median thicket
unreal oriole
forest flame
#

Could you add an option to the command lobby dropall trigger the "you can't hold this item until the ship land" or something like that.

unreal oriole
#

uh?

forest flame
#

You can turn this off with General Improvements, but I noticed it causes desyncs.

unreal oriole
#

uhmmm yeah most of the times other mods completly remove it

#

and it's not something i can toggle back on in a host-only way. plus even if it was turned back on desyncs will still happen because the state of those items is not synced

#

that works on new lobbies because when the items spawn they are all in the default state. and they can't change state until they get picked up

forest flame
#

ah, thx for explain.

unreal oriole
#

i should add more items to AdditionalNetworking tbh

#

that mod objective is fix desyncs

forest flame
proper sparrow
#

Could it be possible to add "Latejoin" or "Latejoining" to the tiny readme so when people search for latejoin or late or anything like that, lobbycontrol would pop out?

unreal oriole
#

โ“

proper sparrow
#

No like

#

In here!!

unreal oriole
#

ah. that description

proper sparrow
#

If you add it to this tiny readme or whatever its called, it will pop out in ts

#

Like if you add latejoin in there, it will appear as an option when you search for latejoin in thunderstore :3

#

I just say it because, well we saw whats been happening with all the new latejoining mods, and maybe its because they dont even know this mod already does late joining, or dont want all the options it has and just want the latejoining section, but they resort to using an old broken version so idk

#

Having it be easily searchable could maybe improve a bit the situation??

unreal oriole
#

sure i can add that on the next update... soontm

ashen dove
#

Yeah I agree with cheese on that. That would be a great idea. I've been having to direct so many people to lobby control cause they didnt know it had late join. Mithzan started using it too and almost went for one of those Late Join mods.

Also just want to say thank you @unreal oriole for your continued work in the community and amazing mods. Lobby Control has been a staple for us for a long time, even the new features you've added have been amazing and very helpful with my large groups.

unreal oriole
#

i appreciate the sentiment.
i've some exams coming up soon , but after them i have a couple of additions fo LobbyControl planed ( small things as i still don't have much time with my job ).
๐Ÿ‘‹

proper sparrow
#

Hey matty hii i hope you've been doing amazing! Hope your exams went well!

I wanted to ask for smth regarding your visualizer website for profile codes, more about suggestions to it

Is this the right place to ask you?

unreal oriole
#

yeah you can ask in here, tho the visualizer tool is kinda in a limbo because any improvements requires changes on TS side and i've been told they wont happen for a while ๐Ÿ˜ฆ

proper sparrow
#

Awww

#

Thats sad

#

I just wanted to ask for 2 features

#

The ability to use gale sync profiles

unreal oriole
#

ask anyway, i'll see what's feasible

proper sparrow
#

Rn gale profiles dont work

#

Would be cool if that could be added

#

And the other is a way to click on the mods shown or somewhere close, that then would redirect you to their thunderstore link

unreal oriole
#

i don't think i can add support for gale codes. as they are fundamentally different from TS ones

unreal oriole
# proper sparrow And the other is a way to click on the mods shown or somewhere close, that then ...

this is an even weirder issue.
TS profiles do not contain the community they are made for. heck you can even have mods from other communities without issues.
but from the publicly exposed endpoints i have access there is no way to find the url for a mod from the profile code.
mod managers avoid that by pulling the entire TS mod list and matching against that. but a static webpage cannot feasibly fit all the data needed and even if it could it would take minutes ๐Ÿ˜…

proper sparrow
#

Ooooh makes sense

#

Thats crazy bad design sorry, not from you of course hehehehe

#

Welp ty anyways for looking if it could have been a possibility

unreal oriole
#

no problem, and just to be clear.
this is from what i could find in the limited time i worked on the project.

proper sparrow
#

Also

#

The website hasnt been working for me for a few days by now

#

Says "failed to fetch profile, rate limit hit, retry in 60s"

slow dagger
#

same here

unreal oriole
#

yeah. i had to use a 3rd party site to bypass TS CORS limitations (essentially you can use their API only if your site is literally called "thunderstore.io" or you are a server, as that can ignore CORS)

#

larger profile codes will most-likely have you hit rate-limits :/

unreal oriole
#

nvm the proxy i was using has gone paid.... time to find an alternative

slow dagger
#

Gotta love when the free software starts wanting money

proper sparrow
#

Sad

#

I hope you can find an alternative

unreal oriole
#

should have found one this afternoon. see how long it will last

whole bluff
#

019c7f9b-8f26-d58e-cc6e-2dc1f69d2ab8

#

what if commands dont work

#

and for example close gives me an option to buy a moon xd

brisk harbor
#

are there plans to push additionalnetworking experimental to main "soon"

#

not that there's really a rush

#

i just kinda got to where i stopped switching between the two because everybody uses different mods and making everybody change between the two before sessions got to be confusing

#

but it's been outdated for a couple months

#

wasn't sure if there were issues preventing it from going out or anything

proper sparrow
#

i might be jinxing but iirc smth happened with the main branch

#

like matty lost it or smth like that

#

so thats why experiemntal is like the "official" version now

unreal oriole
#

nah, it's a combination of procastination and the fact that for a while experimental was indeed unstable ( before the Monkey Library )

brisk harbor
#

i see

unreal oriole
#

well now it's in Stable

WARNING:

you CANNOT have both Experimental and Stable installed ( even if one is disabled )

proper sparrow
#

Wow

proper sparrow
#

so what does exp and default have different? is it the same exact version rn?

civic violet
#

any known conflicts for lobby control late joining?
i'm getting this error spammed whenever someone tries to join late and they never load in

#

019c9310-810f-b492-85d9-a8a76de8d839 profile code but fair warning its ~3gb

civic violet
#

ok

brisk harbor
#

so im observing a very bizarre issue and im hoping you might have some insight into what's going on here (since you implemented the read/write fix for stormy weather)

#

in v73 zeekerss introduced all the body parts scrap for dine

#

and several of them use a new item class RandomFlyParticle that spawns 2 versions of a particle effect ("FlyParticle" and "WorseFlyParticle") at random

#

"FlyParticle" is just a simple orbiting flies particle effect, nothing really special there

#

"WorseFlyParticle" is more interesting, because on top of having the orbiting flies, it has a secondary particle system to make it look like there are flies crawling on the item itself

#

it does this using the exact same setup as stormy's static electricity particle, where the shape of the particle system is set to the meshrenderer of the item itself

#

but i've been noticing that, for some reason, this "WorseParticle" only works for the Foot (SeveredFoot) item

#

even though it can also be spawned on the Ear (SeveredEar), Hand (SeveredHand), and Knee (SeveredThigh) items

#

when using unityexplorer i notice some curiosities on the shape module... namely, the fact that every single item points to "SeveredFootLOD0" in the mesh field (this screenshot is from a SeveredHandLOD0(Clone)\WorseFlyParticle(Clone)\WorseParticle, and the same thing is apparent for Ear(Clone)s and SeveredThighLOD0(Clone)s)

#

i have no idea where it is pulling this mesh from

#

but you can see that meshRenderer is null, because none of these objects' meshes have Read/Write enabled, as you can see in the log

Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
Mesh Ear requires Read/Write Enabled to be set in the importer to work on the particle system shape module
Mesh SeveredThighLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
Mesh Ear requires Read/Write Enabled to be set in the importer to work on the particle system shape module
Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
Mesh SeveredThighLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
#

whatever mesh it's grabbing has isReadable == false too, so ???

#

anyways, lastly, if you look at all of the meshes for these scrap items, including SeveredFootLOD0, none of them are set to enable read/write

#

so, ultimately this all boils down to 3 questions from me:

  1. why does the particle effect shape-matching always work for feet, but never work for hands, ears, and knees?
  2. why does the shape seem to default to pointing to the foot mesh whenever it gets instantiated? (i checked, and the mesh field is empty on the prefab itself)
  3. would it be possible to extend your Read/Write patch to apply to items of type RandomFlyParticle, like how it already applies to all conductive metal items?
unreal oriole
#

you have to check the shape of the particle system. that will tell you from where it is reading

#

i suspect the shape is ( like for the lightning particles ) from MeshRenderer so it reads the mesh of the ShapeModule.meshRenderer and that is a different one than the one references in ShapeModule.mesh

brisk harbor
#

right, but the part which i find confusing is that on the prefab itself, mesh and meshRenderer are both null. only once it gets instantiated, mesh is being filled with the reference to SeveredFootLOD0, even on the items which do not use that mesh

#

also im not sure why it succeeds at setting meshRenderer for the foot specifically, because if you check the meshfilter attached to SeveredFootLOD0(Clone), its mesh does not have isReadable set to true

#

and read/write is disabled for it, at least in the decompile

#

all of the others throw an error and then keep the value set to null

unreal oriole
#

i have a feeling the MeshRenderer SeveredFootLOD0(Clone) ,which i'm 99% sure searches for a MeshFilter on the same GameObject, actually uses a different mesh

#

the chain is:
ParticleSystem -> MeshRenderer -> GameObject -> MeshFilter -> Mesh

#

i can VC for a bit if you want

brisk harbor
#

yeah i think the actual mesh filter points to something named SeveredFootLOD0 Instance which is still isReadable = false

#

and that's what is confusing me because idk how the instance is getting created or why it's still not readable (but is acceptable for the particle system anyway)

brisk harbor
#

maybe if this is still stumping me tomorrow

unreal oriole
#

๐Ÿ‘€ the shapeType of WorseFlyParticle is "Box" โ“

unreal oriole
#

nvm there are 2 particle systems

unreal oriole
brisk harbor
#

i see

#

would applying your stormy weather approach even work then?

#

this detail was irking me and im putting out a BF update that fixes a couple other polish issues with the v73 scrap

#

but i wanted to come to you first since you already fix stormy's static particles and i thought this would have used the same solution

unreal oriole
#

what i'm doing for stormy particles is quite dirty tbh, i use some low level gpu oprators to copy vertexes and indeces into a new Mesh ( anything else, eg. colors, is lost ) and swap the og with that one for the duration of the particles

#

next release of MattyFixes actually will not change the MeshRenderer and just convert the particle system to a Mesh one supplying directly the mesh + postion,rotation and scale ๐Ÿ˜ฉ

#

you could use my new approach for the flies but if you clone the meshes and i clone the meshes it's going to eat a lot of RAM with all this duplicates ๐Ÿ™ƒ

unreal oriole
proper sparrow
#

yayyy so glad to see you back in action matty!!!!

brisk harbor
#

so all the "particle mesh fixes" are in one place

#

i do a fair amount of auto-compat stuff, so if we both implemented a fix for this thing, i could just disable mine while yours is installed

#

but to be real id hope most of the people using my mod are using yours as well

unreal oriole
vague talon
#

whats the dawnlib support stuff for?

faint vine
scarlet crow
faint vine
#

Damn ๐Ÿ˜”

unreal oriole
unreal oriole
unreal oriole
scarlet crow
brisk harbor
#

all 4 of those items point to both the same "FlyParticle" and "WorseFlyParticle" (the latter is the one with the mesh shape issue)

#

currently only the foot supports the shaped particle system

unreal oriole
brisk harbor
#

when "WorseFlyParticle" is spawned on the other 3 items, the "WorseParticle" half is invisible (or at least, unnoticeable in game)

#

the worse version of the particle effect spawns larger orbiting flies and makes different sound effects, but the crawling flies dont work for anything other than the feet

#

and that is what i would like fixed (or, otherwise, like to fix)

unreal oriole
#

do you have a UnityExplorer console script to spawn the worse effect? or maybe a coordinate in ship/testing room ?

brisk harbor
#

not really i've just been landing on dine and then searching the hierarchy for WorseFlyParticle

#

dine spawns 200+ items per day and it's a:

  • 1/4 chance to spawn fly particles at all
  • if previous succeeds, 1/10 chance to spawn the "worse" particle effect
#

so you get like 5 per day on average

#

it would be easy to patch RandomFlyParticle.InitializeAfterPositioning() to force spawn the WorseFlyParticle on all items for testing sake

proper sparrow
brisk harbor
#

it's sorta difficult to show the difference between screenshots (the flies are a lot more noticeable when they're actually animated) but the left is a foot with FlyParticle and the right is WorseFlyParticle

#

the other 3 items look "basically identical" with either particle since the differences in the orbiting flies are very subtle (there are 6 orbiting flies instead of 4, and they are "a bit larger", but that's it)

unreal oriole
#

can confirm it's the same issue as the Lighting particles:

[Warning: Unity Log] Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
[Warning: Unity Log] Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
[Warning: Unity Log] Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module
[Warning: Unity Log] Mesh SeveredHandLOD0 requires Read/Write Enabled to be set in the importer to work on the particle system shape module

solar monolith
#

zeekerss really needs to read the logs more often

#

but I suppose Unity doesn't let you launch with it visible, we have an advantage in that regard

brisk harbor
forest flame
unreal oriole
unreal oriole
forest flame
#

019ca91b-92ae-8c2e-9cb3-6579a0c3778c before using experimental

outer void
#

I actually had quite a bit of errors thrown in regards to item groups or something from memory (?), I will send logs and code in a bit, using experimental

forest flame
outer void
unreal oriole
#

could you check this version @outer void ?
EDIT: removed attachment

outer void
forest flame
#

how can I set manual_offsets for modded scraps?

#

I tried LethalLevelLoade/Scrap name, LethalLevelLoader|Modname/Scrap name and only the scrap name. I tried both scrap names from in game and mattyfixes config

unreal oriole
unreal oriole
unreal oriole
forest flame
#

I wasn't using experimental

unreal oriole
#

this is the expected format

#

let's see if this one works better but i'm still confused
EDIT: yeeted attachment again

brisk harbor
#

alright, sorry to rehash the issue so many times (especially in the middle of this other bug), but just to make sure im 100% clear...

are you ultimately planning to adopt the flies shape bug into mattyfixes? im currently planning to push the BF update with some other fixes for dine scrap "soon", and i guess if i need to handle the particle thing myself, id probably rather wait and bundle it all together

#

as long as you can get to it "eventually" im more than happy to stay out of your way, there's no rush on when it goes out. but i'd like for somebody to fix it :)

forest flame
#

Lethallevelloader scraps are still in the vanilla.

unreal oriole
unreal oriole
#

well i was patching the same method in two different files and the order of execution was wrong. Prayge

forest flame
#

It looks like it's working, but these two scraps where ScienBirdTweaks and ButteryFixes change the name are here now.

#

In Lunar Config all vanilla items are lethal_company but these two are lethalcompany

unreal oriole
#

well they are indeed modded items ๐Ÿ˜…

#

not sure why DawnLib considers them in the vanilla namespace but i'm 99% sure they are not vanilla

forest flame
#

The manual offset that debbicar set for the V-type engine is working too. The current experimental is a little underground, unlike the default version.

unreal oriole
#

๐Ÿ˜…๐Ÿ™ƒ .

#

i love forgetting a negation

neat raft
#

thats why i lowkey hate !'s

#

explicit trues and falses are nicer to read

unreal oriole
#

i'm torn on that. sometimes it's indeed a lot cleaner to write the comparsion explicitly, but others the ! can conpact things, especially in long expressions

unreal oriole
#

the "particle" feels like a shader tbh so it might be some weird interaction with the material i'm not sure

#

but i do not have much time to test lately :/

#

my 1st attempt is in the v1.1.37 tho, as i said, doesn't seem to be working

brisk harbor
#

i see, ok

#

in that case i will abstain from messing with it

#

just wanted to know who had custody of this one ๐Ÿ˜…

unreal oriole
#

you can try. having two people working on it will definitely speed up finding a solution

brisk harbor
#

yeah, i'll try to gather some more info, i just wont implement cloning the meshes on my side too

#

i am invested in figuring it out, i just dont want to cause conflicts with implementation

unreal oriole
#

as always for my fixes it is behind a toggle. so even if there are conflicts one of us can easily turn it's patch off

#

and if you figure out a working fix before me i can just remove the code entirely โœ‚๏ธ

brisk harbor
#

i'm not entirely sure what your fix is doing under the hood, but i am noticing it breaks the flies for the foot, and also prevents flyAudio from being assigned to RandomFlyParticle, which prevents the buzzing audio from playing

brisk harbor
#

all of the items use the same HDRP/Lit shader for each of their materials (each mesh uses 2-4 materials) and some of them even overlap across items (MeatMaterial and SeveredBodyBone1 are used on almost everything, including the foot, so im not sure shader's related)

#

i did notice a difference in the data types used by the foot LOD0 mesh though - maybe that's related? (maybe this is just how the decompile shows read/write meshes?)

#

lastly, i did notice that the particles do render in vanilla - it's visible on the ear model, due to its concave shape and small size. all the flies just build up in the center of the mesh (like the lightning particles) and no motion is visible

brisk harbor
neat raft
brisk harbor
#

maybe... but normal, tangent, and uv0 are all float32 for SeveredFootLOD0 (the only mesh that supports the flies in vanilla)

#

for the other 3 that don't work (ear/hand/thigh) they're all float16

#

it's the only correlation im noticing in the decompile, at least

neat raft
#

that could be a symptom of what might be the difference

#

is there a difference in how they are boned or how the skin stuff is setup?

brisk harbor
brisk harbor
#

ok so... sorry for being so flip/floppy on this, but for now, i will actually be including [a tentative fix](#1245891961966170204 message) (i am 100% convinced there's a much better solution than what im using, so this probably is not "end of the story" for this bug)

what im doing right now:

  1. i duplicated the original 3 meshes, enabled Read/Write on them in the editor, and then packed them into an asset bundle
  2. in StartOfRound.Awake(), all of the bugged scraps have their MeshFilter.mesh replaced with the duplicates from the asset bundle
  3. after MeshFilter.mesh is assigned, RecalculateNormals() and RecalculateTangents() are run on it
brisk harbor
#

at minimum, there's probably a better way to recalculate that data before packing the asset bundle, but i did notice that recalculating normals/tangents didn't fix the issue unless it was run after assigning it to the meshfilter

#

and ideally there's probably a way to do all of this at runtime

neat raft
#

if its read/write based

brisk harbor
#

well iirc matty just worked around it previously by creating a new mesh and cloning all the vertex data from the originals

#

using runtime code

#

i think that's how the stormy weather particle fix used to work (before he overhauled it in this latest experimental build)

brisk harbor
#

what im doing probably doesnt either tbf... it gets the job done but it does feel very band-aid-y

#

the only reason i have anything working at all is because i went further down the rabbit hole trying to figure out what was wrong with his version of the flies fix, and then wound up with "something usable" along the way

neat raft
#

see the real solution is to build a runtime level assetripper and dynamically rip the mesh ๐Ÿ˜‡

#

your route seems sane

brisk harbor
#

currently using MF experimental and enabling the flies fix probably breaks some of my stuff, since flyAudio being null prevents some of my patches from catching

#

so i guess for now, im just gonna release what i have, recommend people toggle that setting off for now, and then if it's figured out in the future i can pull my stuff since it's probably much worse than matty's will be once it works

forest flame
#

It doesn't look like the lightning particles are aligned to some scrap.

forest flame
unreal oriole
#

... right i set the rotation once the zapping starts and never update it ๐Ÿค”

forest flame
unreal oriole
#

i might have to bring out my best weapon: ParentingConstraint

unreal oriole
#

also i managed to make the particles show up on Thigh, Hand and Foot ( ik it works in vanilla, but i mean with my mesh ) tho it's not consistent and does not seem to like me changing settings during Instantiation :/

brisk harbor
#

but on a profile with just mattyfixes experimental 1.1.37, imperium, and unityexplorer

#

any item with WorseFlyParticle just doesnt have flyAudio assigned

#

you can see WorseFlyParticle on the item, but WorseParticle appears to be completley invisible, and the FliesBuzzingAndMaggots audio doesnt play

brisk harbor
# brisk harbor but on a profile with just mattyfixes experimental 1.1.37, imperium, and unityex...

[Debug :Matty's Fixes] Vanilla/Foot(101) position updated [(0.00, 0.00, 0.00)] -> [(0.00, 0.04, 0.00)]
global startposition falltoground for object SeveredFootLOD0(Clone): (-0.49, -219.53, 19.13)
Item Foot landed on : mesh / mesh
NullReferenceException: Object reference not set to an instance of an object
at MattyFixes.Patches.ItemPatches+RandomFlyParticlePatches.ChangeParticleShape (UnityEngine.ParticleSystem+ShapeModule& shapeModule, UnityEngine.MeshRenderer meshRenderer) [0x00027] in ./Plugin/src/Patches/ItemPatches.cs:516
at (wrapper dynamic-method) RandomFlyParticle.DMDRandomFlyParticle::InitializeAfterPositioning(RandomFlyParticle)
at GrabbableObject.FallToGround (System.Boolean randomizePosition, System.Boolean justSpawned, UnityEngine.Vector3 overrideStartPos) [0x00229] in <83220f1fc337491eba19b3618ec61339>:0
at GrabbableObject+<fallToGroundOnFrameDelay>d__40.MoveNext () [0x0004a] in <83220f1fc337491eba19b3618ec61339>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00026] in <c39a522eee05469b8171a6cfeb646c59>:0

(Filename: ./Plugin/src/Patches/ItemPatches.cs Line: 516)

#

this makes sense

#

i assume ChangeParticleShape() is happening before the rest of InitializeAfterPositioning(), where flyAudio gets assigned

unreal oriole
#
= {
=     gameObject = UnityEngine.Object.Instantiate<GameObject>(this.badFlyPrefab, this.transform.position, Quaternion.identity, this.transform);
-     gameObject.GetComponentsInChildren<ParticleSystem>()[1].shape.meshRenderer = this.gameObject.GetComponent<MeshRenderer>();
+     RandomFlyParticlePatches.ChangeParticleShape(gameObject.GetComponentsInChildren<ParticleSystem>()[1].shape, this.gameObject.GetComponent<MeshRenderer>());
= }
brisk harbor
#

yeah so this nullref is the problem then

#

though i doubt that's helpful since it sounds like you've made changes upstream anyway

unreal oriole
#

i never noticed that NRE.... one sec let me compare live experimental vs my dev

unreal oriole
#

๐Ÿ™ƒ

brisk harbor
#

ah

#

yes

unreal oriole
#

soo. i managed to have the particles show... but somehow they break immediately once the item is picked up or moved

#

and they fix themselves only if i set the shape to MeshRenderer and back to Mesh tilted_head

#

i'm so confused by how this particle systems work

#

if i pause the system and grab the list of particles in the broken state they are basically all over the map ๐Ÿ™ƒ

waxen whale
#

Hey @unreal oriole the laye join feature doesnt allow for joining after u get fired

#

Its kinda buggy rn

forest flame
#

Are you using chuxiafixes?

waxen whale
#

Yes

#

Why?

waxen whale
#

Or supposed to be a fix?

forest flame
#

Nope. I thought you weren't using it.

unreal oriole
#

from the current code. the lobby would fail to open only if another mod fully replaced StartOfRound.SetShipReadyToLand

#

are you sure you have toggled autoLobby in config or ran lobby open in terminal?

waxen whale
#

I have the shipdoors mod

#

Maybe that is the issue

unreal oriole
#

@brisk harbor if you (or anybody with knowledge of ParticleSystems) can help me find which settings i'm missing.

from what i could see with UnityExplorer i'm using the same settings as the lightning one.

#

i've pushed my current setup on githib

#

it works if:

  • item is on the ground
  • you open the particle system in UE and toggle it's shape to MeshRenderer and back to Mesh
#

and even then it breaks if you move/grab the item reee

#

by pausing the system and calling GetParticles i see that they are probably using the wrong scale but i have no idea what to change

brisk harbor
#

im by no means a particlesystem expert

#

this has been an "exploratory" issue for me

#

but i will try to look into it and see if i can figure something out

vague talon
#

I've messed a lot with particle systems, but im unsure entirely what you're looking for

#

if you're looking for specific scale of particles, then it's either in the shapes module or the render module

#

im opening unity to check but that's where it'd be

solar monolith
unreal oriole
#

@sikente with somemany thanks to @vague talon for in editor testing.

v1.1.38 is out in experimental

#

the issue with mis-alligned lightning particles should be fixed with the use of constraints

forest flame
#

Nice

vague talon
#

@sikent

unreal oriole
#

the fly particles should now appear correctly ( apparently mesh mode is not affected by scale )

unreal oriole
proper sparrow
#

Will this be moved to main fixes or is experimental the new red hehehe

unreal oriole
#

i mean i still had to fix things in the last 2 releases. ๐Ÿ˜…

i do not think i can consider it stable yet ๐Ÿ™ƒ

forest flame
#

Could butteryfixes fix conflict with yours? Or its gonna just overrides

slow dagger
#

what settings are you referring to

brisk harbor
#

but i havent had an opportunity to test 1.1.38 yet

brisk harbor
#

but that's more or less the intended effect

#

yeah

#

it's been a couple days so it could be placebo but i feel like the flies are a bit closer to the surface of the mesh in vanilla

#

also im not sure why they are so translucent for you

brisk harbor
#

so matty... an interesting development

#

it looks like zeekerss is going through #bug-reporting in zeekcord and fixing some stuff

#

#1479718720673681539 message

#

a moderator just went through and closed this recently. im pretty sure it was open earlier this morning

brisk harbor
vague talon
#

oo that's cool

brisk harbor
#

im sure your fix will still be helpful (in case zeekerss forgets some scrap in the future, or for modded scraps, or whatever) but i guess it's nice to know he is likely aware of the read/write thing now

#

also i guess your fix might still be helpful even for vanilla items because i assume your new approach doesn't have the issue with particles being offset weirdly from the original mesh

forest flame
#

the big bolt was normal

unreal oriole
unreal oriole
unreal oriole
#

if you were to die to it you can't say it didn't warn you ๐Ÿ™ƒ

forest flame
forest flame
#

and some scraps the lightning particles looks different (Tea kettle for example)

wispy widget
#

Does anyone know the configuration to fix Matty's Fixes Experimental making V-Type Engines lay on their side?

#

-90,0,0 is the default configuration, and so far stuff like 0,90,0 and 0,0,90 hasn't worked in propping the engines back up

forest flame
#

I'm using 0,-90,90 and itemclipping 0.5 from debbicar

wispy widget
#

What does that do for us, exactly?

forest flame
#

Vanilla/V-type engine:0.5 manual_offsets

wispy widget
#

I see,,,

#

@torpid badge Whuh this do?

forest flame
#

the scrap will be a little underground

wispy widget
#

Are they a little underground in vanilla?

forest flame
#

yes

wispy widget
#

Ohh, okay

#

Ty

#

Both of u

outer void
torpid badge
# wispy widget <@1151383263504506910> Whuh this do?

by default in mattyfixes (after rotating it vertically, i mean), the engine rests higher than it does in vanilla because there are a couple pipes sticking out of the bottom that normally appear in the floor, so i use that number to make it rest as low as it does in vanilla

wispy widget
#

Yeah, I forgor that the engine clips into the ground in vanilla

#

I remember having that issue when having solved the engines resting on their sides before in the past, but didn't know how to fix it

brisk harbor
#

though something possibly related to particles looking different

#

i notice zeekerss set the static electricity particle to use vertical billboarding which makes it look weird if you stand on top of a charged scrap and look down

#

i feel like it'd look better with both horizontak and vertical billboarding

#

but im not 100% sure

wispy widget
#

Matty's Fixes Experimental angles it for sum reason

torpid badge
#

i dont use the experimental version but yeah i have rotations for all vanilla items

wispy widget
#

Would you mind just passing the config over? lol

torpid badge
unreal oriole
unreal oriole
wispy widget
#

Shovels, homemade flashbangs, red sodas, for example, are all angled sideways

torpid badge
#

this is intentional, so when they drop out of your hands it looks like basically falling straight down

#

because for example dropping a shovel in vanilla rotates it 180 degrees and i think it looks really bad

wispy widget
torpid badge
#

i guess it's subjective tho

#

the one thing i dont like about my angles being slightly tilted is that the rotate_on_spawn config doesn't work when disabled so all the loot spawns at that slight angle

#

but i personally still think its a worthwhile tradeoff to have nicer looking drops

forest flame
brisk harbor
#

this is actually after modifying the particle system to use Billboard instead of VerticalBillboard and it still doesn't even seem to be billboarding horizontally

#

anyways yeah im using the "Fixed" setting here and it appears to be using the "Alternate" behavior regardless

unreal oriole
#

Billboard means the particles are oriented towards the object up vector.
VerticalBillboard means the particles are oriented towards the camera forward vector

#

HorizzontalBillboard means the particles are oriented towards the world up vector

brisk harbor
#

ohh. weird

#

i guess i should have read whatever it is you're looking at

#

in that case i guess vertical billboard (what it already uses) should be correct? but it still looked wrong which is why i started messing with it in the first place

#

maybe the issue is something else

#

oh i see. it looks like "Billboard" with render alignment "View" is the way to go

#

to make it look consistent from all angles

unreal oriole
torpid badge
#

oh ok interesting

unreal oriole
#

you can't selectively apply resting rotations to dropped items but not newly spawned ones ๐Ÿ˜… i would have to save a list of all the original values and check against that every time ๐Ÿ™ƒ

unreal oriole
forest flame
#

If i wanna do manual offsets for modded scraps? its like "LethalLevelLoader/ScrapName:0.2"

unreal oriole
#

[API]/[ModName]/[ItemName]

exceptions are Vanilla/[ItemName] and Unknown/[ItemName]

forest flame
#

thx

wispy widget
#

Is there a way to completely fix Matty's Fixes from messing /w the rotations of items ?

#

E.g. V-type engines being on their side

torpid badge
#

you could just put "default" for every item in the config

#

or at least whichever ones you dont like

#

wait actually nvm not default

#

it says what the vanilla rotation coordinates are above that, and so you just copy that into the rotation thing

wispy widget
#

And we have to do that for like 100 items fuuuck

brisk harbor
#

in old versions you had to copy vanilla rotations into the box but as of 1.1.34:

default in config will now use vanilla values instead of ItemClippingFix ones

torpid badge
#

maybe i misremembered then, i was thinking it puts the default one given by mattyfixes

#

gotcha, ok sick

wispy widget
#

Like this ?

brisk harbor
#

in these

torpid badge
#

wow gale's config editor looks so awesome... i'm jealous..

wispy widget
#

Does it seriously do this one at a time

#

Or is there a workaround to display everything

torpid badge
#

what da hell

wispy widget
#

Is it cuz of this?

torpid badge
#

did it just like, not generate the thingies for all the other items

brisk harbor
#

it can't fetch the item list until you load into the ship

#

leave matty fixes enabled and make a new save file

#

or load a save

#

or whatever

#

then it generates the list

#

once the entries are generated you can edit them just fine in gale

wispy widget
#

We made a new save file and landed,,,

#

That's all there is in the config

brisk harbor
#

lol

#

did he change it in experimental or something

#

let me check

#

here is a fresh profile where i only installed matty fixes, and loaded a brand new save

wispy widget
#

Idk

#

Do you mind passing the config file over

brisk harbor
#

same deal for experimental (v1.1.39) as well

wispy widget
#

@torpid badge Does leaving this disabled fix V-type engines floating

brisk harbor
#

does disabling the Enabled setting not work sufficiently

#

on that note

wispy widget
#

Idk

torpid badge
#

i dunno i have brain worms

brisk harbor
#

the description of that setting makes it sound like it disables everything in the list we've been talking about

torpid badge
#

but uh i just put a manual offset for the engine to sink it into the ground

brisk harbor
#

as well as vertical_offset and manual_offsets

wispy widget
#

Matty's Fixes still likes to quietly affect items, even when all of its settings relating to them are disabled

#

Well, maybe used to

#

Idk now

#

Does anyone know how effective this is btw?

#

Cuz we don't

brisk harbor
#

i mean

#

i always leave it enabled

#

and ive never had problems with out-of-bounds items

#

not sure what else there is to say about that

wispy widget
#

Alr

#

Last thing

#

Buttery did you fix the flies already, we feel like u did

#

If so then we'll disable this Matty setting

brisk harbor
#

yes we both fixed the flies

#

im probably gonna remove my fix once the experimental version goes live

#

since i feel like everybody using BF should also be using MF

#

but at least for the time being you can just disable matty's fix and it's fine

wispy widget
#

Ohh okay

#

Ty

limber osprey
#

Occasionally I'm seeing NREs spammed by additional networking immediately upon round start. Is it related to scrap? Can I avoid it by turning off the Item state / Item Values options maybe?

unreal oriole
#

i'd need to see the nre itself to answer that ๐Ÿ˜…

limber osprey
#

Sure, I thought it was a common thing/incompat. I should still have it in logrota. Will report back in a bit.

limber osprey
#
NullReferenceException: Object reference not set to an instance of an object
Stack trace:
AdditionalNetworking.Patches.Value.GrabbableObjectPatch.CheckScrapHasValue (GrabbableObject __instance) (at ./Plugin/src/Patches/Value/GrabbableObjectPatch.cs:22)
(wrapper dynamic-method) GrabbableObject.DMD<GrabbableObject::LateUpdate>(GrabbableObject)
unreal oriole
#

that's weird it's an item without itemProperties ๐Ÿค”

limber osprey
#

Hmm, didn't notice any weird invisible/desynced item. I didn't even have that much on me or anything in the ship I think. A pro flashlight and an audio log from asteroid 13. I was just testing stuff.

unreal oriole
#

nah, from your description is something that spawned during landing. so either part of the moon or a scrap from a mod not using any of the APIs

limber osprey
#

ah, I guess in that case prime candidates could be the items added by the ancient MoreInteriors (bunker) v2.0.0. By default unless reconfigured with sth like LunarConfig it adds those to each moon's loot table. But could be anything really with so many mods sneaking in an item here or there. Maybe I'll figure out more when I get around setting up the loot tables myself and playtesting. I guess next time it happens I'll do a loot scan, screenshot for reference. Then when it happens again check against that to narrow it down.

limber osprey
#

oh yea, I realized the game itself also throws this so dw about it. Something's being wonky and I'll just have to figure out what it is

forest flame
#

For some reason, the lightning particles weren't able to produce the shape of a shotgun.

forest flame
#

(Only clients) If you change the slot while putting an item in the cupboard/cruiser/elevator, the item will be invisible and uninteractable, but the scan node will be visible.

#

if you could take a look in the next update

#

For Additional Network of course

unreal oriole
unreal oriole
forest flame
#

if theres a mod for all three

#

idk

forest flame
unreal oriole
#

yeah. that's correct from vanilla code

#

jetpack is made of many objects and vanilla logic only places particles around the first one

wispy widget
#

Wayy farther 'n bigger than they're supposed to be

forest flame
#

Shovels is working

wispy widget
#

and no, we weren't using the version that makes growing static appear in a sphere around items

wispy widget
#

Though, in this instance, it's a yield sign

forest flame
#

MattyFixes is broken and AdditionalNetworking logs a warning everytime it utilizes the new slot

vagrant root
#

AdditionalNetworking is probably mostly redundant now

vagrant root
#

It's prolly the Slot change option that is borked

#

Should just need to turn off these I'd assume

#

I may choose to just not run the mod til it's updated

unreal oriole
#

do you mind providing logs for both? i sadly do not have time to check probably for the upcoming month ๐Ÿ˜ญ

vagrant root
#

I can get that log for ya

#

both Stable and Experimental

#

Additionalnetworking is prolly redundant or mostly so

#

he did a lot of changes to how item slot stuff works

vagrant root
#

I fixed it

#

It's your Out of Bounds patch for Interiors

vague talon
#

DunGen scripts are missing and broken since DunGen was separated out of Assembly-CSharp and also split into 3 different dlls @unreal oriole

vagrant root
#

I noticed the spawning in furniture was fixed in Vanilla anyways when playing V80

#

he can likely get rid of that patch

vague talon
#

Wdym spawning in furniture

vagrant root
#

that did not happen at all that I saw when playing the new update

#

So I think Zeekerss fixed it himself finally when he updated to the new DunGen version

unreal oriole
vagrant root
#

You also might wanna check if he changed the lightning particles in Vanilla I think he might have

unreal oriole
#

from the error and a look at my code i'd say there are now multiple RoundManager.GetRandomNavMeshPositionInBoxPredictable

#

if the mesh is readable my patch is skipped so that will not cause issues

vagrant root
#

But yeah the Spawn in furniture thing I am pretty certain is fixed in Vanilla cus I never experienced the bug playing V80

unreal oriole
#

but i doubt he did from what Buttery says

vagrant root
#

Got ya lol

#

He did change so much so I might have just been thinking they were changed cus it'd been so long

#

XD

unreal oriole
#

do we not have v80 GameLibs?

vagrant root
#

V80 is still currently in the Public Beta, he's talking about releasing it to Main Branch later today after he pushes some bug fixes

#

Assuming that's what you mean lol

unreal oriole
#

i'll still have to recheck all the patches tho

vagrant root
unreal oriole
#

from the diff you linked the spawning in furniture bug is still there

#

he might have changed the vertical offset for the lamp instead

vagrant root
#

Yeah he may have just changed where they can spawn

#

since with the DunGen update I think he redid the interiors

unreal oriole
#

and yes, my assumption was correct and there are two RoundManager.GetRandomNavMeshPositionInBoxPredictable now

vagrant root
#

I should check if LandFromOrbit is still needed, he completely changed how the ship lands

#

I do not think it starts landed anymore but would be funny if it does

#

LMAO it does wild

brisk harbor
#

like i think i noticed red soda(?) was fixed

#

but jetpacks aren't

#

i havent gone through and checked every item like i've intended to

#

eventually

forest flame
brisk harbor
#

yes, zeekerss fixed crouch sync

#

there is a vanilla RPC now

#

i kinda doubt he changed any of the item slot syncing stuff

#

but it's probably still broken in AN because of utility slot

forest flame
#

at least the cupboard

vagrant root
#

Players above 4 will see everything sank when they join

forest flame
vagrant root
#

So you still will want Mattyโ€™s Patch for the Cupboard

vagrant root
forest flame
vagrant root
#

Yeah AdditionalNetworking has a fit over the Utility Slot

proper sparrow
#

lobbycontrol breaks the game too :c

vagrant root
#

Lobby Control works fine

proper sparrow
#

WHAT

#

||utility slot?||

unreal oriole
#

lol

#

||utility slot|| is hardcoded 50 ๐Ÿคฃ

vagrant root
vague talon
vague talon
proper sparrow
vagrant root
#

goober

proper sparrow
#

i know

#

when i press tab it doesnt go to that slot

unreal oriole
#

ehhh. you can ignore the warnings then

vague talon
proper sparrow
#

goes to the last inv

#

:c

vague talon
#

since it's a beta, lordfire can't get a gamelibs going

proper sparrow
#

did i miss smth?

vagrant root
unreal oriole
vagrant root
unreal oriole
vagrant root
#

That works too lmao

unreal oriole
#

eventually i'll update it. i just don't have the time rn

vagrant root
proper sparrow
#

?

vagrant root
#

Press tab once, it highlights the slot, press it again it goes back to hotbar

proper sparrow
#

no it doesnt

vagrant root
#

Yes it does

proper sparrow
#

already tried vanilla i know how it works

vagrant root
#

Your game is fucked if not

proper sparrow
#

its not working for me :c

vagrant root
#

Check your keybinds

unreal oriole
proper sparrow
vagrant root
#

works for me lmao

proper sparrow
#

hmmm

#

maybe host fixes

vagrant root
#

Might be

#

Idk why you're running that

unreal oriole
#

MattyFixes v1.1.40 Hotfix is up in Experimental.

other mods will be checked as i have time. at least this one was easy ๐Ÿ˜…

proper sparrow
#

wasnt me

vagrant root
proper sparrow
#

was my friend Shayde :3

#

we removed it, it was that

#

incompat between the 2

#

yayyy

unreal oriole
vagrant root
#

lmao

unreal oriole
#

๐Ÿฅถ

brisk harbor
#

any time it changes on your client

#

it runs the rpc to sync it immediately

#

in the same function that toggles crouch

proper sparrow
#

LOL

#

that was a bit late matty nyehehehe

#

silly

#

its fine

#

it was hostfixes doing CRAZY stuff

unreal oriole
#

i'm scrambling to track any mentions of my mods ๐Ÿ˜… . i noticed that just because i searched for it ๐Ÿ™ƒ

unreal oriole
forest flame
#

So, inventory fixes are still better?

brisk harbor
#

the exploits that let you get a permanent flashlight attached to your helmet

#

and let you get a permanent belt bag attached to your waist

#

and then of course there's the utility slot

#

but i kinda feel like it's unlikely he "fixed" much in the way of inventory outside of that

forest flame
#

Probably, because he fixed that problem I mentioned earlier

#

hotbarplus fixed only for cupboard and guoda light/bag was impossible to do

#
  at AdditionalNetworking.Networking.PlayerController.OnSyncInventoryClientRpc (System.UInt64 senderId, Unity.Netcode.FastBufferReader data) [0x000e9] in ./Plugin/src/Networking/PlayerController.cs:186```
#

probably its not good play with inventory sync

slow dagger
#

Probably anyways

forest flame
#

probably BabyManater

forest flame
#

Your lightning particles are a little misaligned.

unreal oriole
forest flame
#

The way vanilla sync crouching isn't working 100%?

#

Sorry to bother

wispy widget
#

I believe Lobby Control is causing vanilla players to cut out

#

There will be times this mod just makes certain vanilla players inaudible

#

I say believe, as it might be Lobby Improvements as well, since it's the one of two mods I've disabled for this ongoing test, but I have reason to suspect Control over Improvements since Control was updated for v80

forest flame
#

Are you using chuxiafixes?

wispy widget
#

no

#

Does that mod cause the same bug?

forest flame
#

Since v73 it's needed for latejoin mods

wispy widget
#

I was never told this, the fuck

#

Will that fix it?

#

@forest flame

forest flame
#

Idk but its good to have

unreal oriole
vagrant root
#

lmao

unreal oriole
forest flame
#

that's why i thought you didn't remove

brisk harbor
#

it's just in the desc

#

and in the config too i guess

#

but vanilla's fix looks fine imo

wispy widget
unreal oriole
#

LobbyControl? in what conditions? is it this mod specific issue or LateJoin in general?

lament jetty
#

wait LC works in v81?

heavy garden
brisk harbor
heavy garden
#

i think something with latejoining is weird tho

#

it would not work for us, but after adding chuxiafixes it was fine (there were a couple patches in between so i am not 100% sure if that actually fixed it)

wispy widget
#

Certain people will just go permanently silent for me unless I rejoin the lobby

unreal oriole
#

yeah i migth end up adding chuxiafixes as a dependency as the new netcode version borked even more stuff about late join

wispy widget
#

The other players in the lobby can hear them just fine

unreal oriole
#

uh? LobbyControl is only server side

#

it does not touch any of the client code

wispy widget
#

I have no idea how the hell itโ€™s doing it then, because disabling it specifically fixes the issue

unreal oriole
#

any error logs?

wispy widget
#

Iโ€™m at work, so not rn, but I will give a log and my modpack code when I am home

vague talon
#

cuz we went from 1.12.0 to 1.12.2

#

these were the changes, idk if any stick out

unreal oriole
#

noone of them strike me as our problems but chuxiaaa would be more knowledgeable on the topic

vague talon
# vague talon

@languid hound NGO was updated in v81 from v73 to 1.12.2 from 1.12.0, do you think any of those changes made anything in chuxiafixes obsolete by any chance?

#

i think there isnt but not 100% sure myself

languid hound
vague talon
#

yea

outer void
wispy widget
#

General Improvements updated, though

worn aurora
#

@unreal oriole hey just wanted to ask is matty's fixes still relevant for v81?

worn aurora
#

and additional networking?

forest flame
#

both mods are updated

#

use experimental

worn aurora
violet glacier
#

Eventually, they will

languid hound
#

After testing, this issue still exists.

vague talon
#

F

unreal oriole
#

due to the many requests

Matty Fixes and AdditionalNetworking

have been pushed out of Experimental early.

-# Here be dragons enderdragon

slow dagger
#

i forgot to send this a few days ago sorry matty

#

do not eat items had an issue when i loaded up my profile in v80

#

granted everything else was breaking down but i'll show this error just in case there is something wrong with it

wispy widget
#

Will Lobby Control be ported to v80?

forest flame
#

Its working

wispy widget
#

No, it is not

#

It should be recompiled at least

#

It's causing an issue where random players will go permanently silent until the lobby is restarted

forest flame
#

Since v73 you need chuxiafixes. I played with 6 players and I didn't have any problems

wispy widget
languid hound
proper sparrow
#

Lol

#

Everyone that has used it has reported its working fine

#

No idea why its not working for you specifically

unreal oriole
#

thank you guys for sorting through issues and helping people in stead of the devs.
i'm super busy with work so i rarely have time to work on mods. and you guys allow me to focus only of proven issues ๐Ÿ˜„

unreal oriole
#

i've overheard of some issues but typically was a single message sent somewhere an coupled with an avalanche of errors from other mods, so nothing confirmed yet

#

i have a rewrite in progress for LobbyControl but no time to finish it. maybe by summer i'll move it to a community repo and get some help maintaining it ๐Ÿค”

proper sparrow
#

v73*

#

hehehe

#

take your time matty

#

tysm for updating your other mods

errant furnace
#

thank you so much for your hard work

wispy widget
#

i apologize to whichever pub i sacrificed to get this log lol

unreal oriole
# wispy widget ``019d7f2f-3843-a3ff-ab1c-7a26b39fe45f``
  1. you have a lot of exceptions from your model replacement mods
  2. also exceptions from PlayerHUDTweaks
  3. something still using the old embedded DunGen (v80 moved it to a separate dll)

[00:40:43.3688676] [Error : Unity Log] TypeLoadException: Could not resolve type with token 0100008d from typeref (expected class 'DunGen.Tile' in assembly 'Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null')

  1. something seems to be breaking StartOfRound.SyncShipUnlockablesClientRpc but you do not have the right mod to know who it is

at (wrapper dynamic-method) StartOfRound.DMDStartOfRound::SyncShipUnlockablesClientRpc

due to the listed issues i can't say which mod is the cause, only that i'm surprised your modpack even runs ๐Ÿ˜…

wispy widget
#

Do I just install that on the tin, or do I configure it?

unreal oriole
#

it should work out of the box to give more detailed stack traces. it wont fix anything btw

wispy widget
#

Alright

plush hemlock
#

[23:35:18.7999045] [Error :Matty's Fixes] DawnLib/usual_scrap/Padlock Failed to mark prefab Mesh Readable! System.ArgumentException: Mesh 'Cube.004' index buffer is null
at (wrapper managed-to-native) UnityEngine.Mesh.GetIndexBufferImpl(UnityEngine.Mesh)
at UnityEngine.Mesh.GetIndexBuffer () [0x00012] in <c39a522eee05469b8171a6cfeb646c59>:IL_0012
at MattyFixes.Patches.ItemPatches.MakeReadableMeshCopy (UnityEngine.Mesh nonReadableMesh) [0x00088] in ./Plugin/src/Patches/ItemPatches.cs:279
at MattyFixes.Patches.ItemPatches.GetReadableMesh (UnityEngine.Mesh original) [0x0001b] in ./Plugin/src/Patches/ItemPatches.cs:236
at MattyFixes.Patches.ItemPatches.CacheReadableMeshes (UnityEngine.GameObject go) [0x00031] in ./Plugin/src/Patches/ItemPatches.cs:251
at MattyFixes.Patches.ItemPatches+NetworkSpawnPatch.Prefix (Unity.Netcode.NetworkBehaviour __instance) [0x0004b] in ./Plugin/src/Patches/ItemPatches.cs:157

#

@unreal oriole

brisk harbor
#

just to weigh in on the lightning particle issues

#

i did notice that they were much bigger than they are supposed to be for jetpacks

#

after appearing enlarged on a jetpack it seemed to be enlarged on other items too, like keys

unreal oriole
#

@brisk harbor i'll try to test it soonTM

elder verge
#

Heya, so I ran into an issue regarding some of the custom scrap from my mod.

#

There are 2 animate items in particular that animate into the negative on the y-axis in their prefab.

#

Matty Fixes seems to interpret the bottom most point of those animations as the offset.

elder verge
#

I was wondering if it's possible to have to so it only pulls from the idle state of the scrap rather than trying to determine it from the animation?

#

I don't know if this is considered a bug or not.

unreal oriole
#

why do you have the item sink in the ground?

#

how does that look on shelves for example?

elder verge
#

They don't, their animations go below their idle frame.

unreal oriole
#

MattyFixes waits for all animators to complete an iteration

var animators = grabbable.GetComponentsInChildren<Animator>();

        //wait till animators stop
        yield return new WaitUntil(() => animators.All(
            a => !a || Mathf.Approximately(a.speed, 0f) || a.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1));
#

but again. if the animation goes into the negatives it means that the item sinks into the ground no? ๐Ÿค”

elder verge
#

No, lemme grab some images from the prefab and I think you'll understand what I mean.

unreal oriole
#

does your item di the animation during spawn?

elder verge
#

No

unreal oriole
#

like the belt bag starts with the belt hanging down on spawn then settles down to the latched position

#

when does the animation play?

elder verge
#

It plays when you grab it.

unreal oriole
#

or your animation is toggling between two different meshes?

elder verge
#

No, it's an armature.

unreal oriole
#

in the logs, when does mattyfixes say it computed the offset? at spawn or after you grab it?

elder verge
#

It doesn't say, it adjusts the vertical offset after I first grab it.

#

Hold on one sec

#

On first grab yeah.

#

The one fix I was able to find is that the armature cannot animate below the resting position.

unreal oriole
elder verge
#

Oh I didn't have debug checked for BepInEx console oops

#

These issues only occur when Item Clipping is enabled in your mod.

unreal oriole
#

yeah that is what recomoutes all the vertical offsets

elder verge
#

Lemme grab the debug info real quick.

unreal oriole
#

i'm intrested in knowing if it computes the offset immediately or only after you pick the item up

#

it should compute it immediately but ๐Ÿคท

elder verge
#

It computes on first grab.

#
[Debug  :Matty's Fixes] DawnLib/terras_scrap/Fuzzy dice new offset is 0.9076259
[Debug  :Matty's Fixes] DawnLib/terras_scrap/Fuzzy dice(37) position updated [(1.76, 0.00, -6.30)] -> [(1.76, 0.91, -6.30)]
[Debug  :Matty's Fixes] DawnLib/terras_scrap/Fuzzy dice(37) position updated [(1.76, 0.91, -6.30)] -> [(1.76, 1.82, -6.30)]```
unreal oriole
#

that means your animator is not vanilla compliant.. i'll have to account for that

#

in vanilla all animators are constantly running and have a resting state

#

you problably start&stop the animator instead of toggling states

elder verge
#

Oh it does toggle.

unreal oriole
#

but do you have a .enable / .Start or it's always active and running?

elder verge
#

I'm not sure, I assume it's always active since it goes straight into the idle state.

unreal oriole
#

yeah the animator is disabled

#

if i simply enable it via UnityExplorer:

[08:09:21.6820786] [Debug  :Matty's Fixes] DawnLib/terras_scrap/Fuzzy dice(37) is computing vertical offset
[08:09:21.6825823] [Debug  :Matty's Fixes] DawnLib/terras_scrap/Fuzzy dice new offset is 0,01021164
#

you get a reasonable offset

#

btw i love the dangling while holding them ๐Ÿ˜„

elder verge
#

Thanks heheh

#

Hmm, is there a way to enable them in Unity?

unreal oriole
#

it should be part of the prefab

#

that is your animator behaviour

elder verge
#

This right?

vague talon
#

That looks enabled to me yeah

unreal oriole
#

lol i was about to ping you Xu

vague talon
#

:p I've been reading

unreal oriole
#

well it is not for unityExplorer

vague talon
#

Well, the animator is weird, but it depends if terra enabled it and sent the screenshot

#

Or if its just how the animator works

elder verge
#

It's been enabled.

vague talon
#

Cuz when im messing with animations in unity, the animator is technically off

#

Yeahhh

#

You can't trust the .enabled for the animator

unreal oriole
#

from UE, it's a generic AnimatedItem and i checked other vanilla ones but they all have the behaviour enabled in the prefab

vague talon
#

It might be related to how the animation clips are setup

#

Could be some sort of inherent optimisation they have

#

I will say, when I look in unity itself, and I'm previewing animations, the animator is automatically set to off (but blue)

#

I don't have a pc rn to send screenshots, but you'll probably want another way than checking if the component is enabled (even though that's also technically valid as you can turn it off, it's just unity also turns it off itself in some cases afaik)