#Lobby Control & Matty's Fixes

1 messages Β· Page 8 of 1

unreal oriole
#

soo high chance of it not working yet

polar briar
#

Is the non-experimental version of fixes not working in v55?

unreal oriole
#

i've been reported it has some issues with cruiser

#

plus the already existing issues in some apparently frequent edge cases

#

so i took v56 opportunity and did a full rewrite

polar briar
#

Nice! Can't wait for both of these to be fully stable😁

#

I'll definitely be testing out Fixes later today

unreal oriole
#

i apreciate you guys testing as i am not able to play anything for the time beeing ( RDP is decent for coding but definitely impossible for gaming )

polar briar
#

How's lobby control coming along? I haven't really been able to test that since I don't have another person to test with

unreal oriole
#

lobby control stable, was working fine in v50, the only reported issues where:

  • cruiser not disappearing/spawning with lobby load command
  • lateJoiners that took the place of a player that disconnected while in the cruiser would have a broken animator ( same as the invisible issue when player disconnected when dead )
  • somehow lobby clear not working
#

car is a zeekers issue as he never deletes it if you get fired 🀦

#

i added a temp fix in experimental but hope he fixes it on his side

#

the animator i just applied the same solution i do for dead players.. i just kill them again as soon as they join πŸ™ƒ

polar briar
unreal oriole
#

experimental simply has some attempted patches for the problems i listed but is essentially the exact same as stable. so either of them should work

#

obvs experimental could lead to some issues but so far nobody reported any

#

also since zeekers changed the values for ItemsSaved and Synced . the "Moreitems" patches in stable do not work in v50

polar briar
unreal oriole
#

still with the savelimit to 200 ( 1A3 correct me if i'm wrong ) and sync limit to 500.. i doubt anybody is going to notice

vague talon
#

hi, A1C here, i think its 400?

unreal oriole
#

decompiler actually still says 45 πŸ€”

brisk harbor
#

it's still 45 in code but this value is serialized to inspector

#

so the inspector value is what's actually used

#

it was increased to 400 sometime during v50

unreal oriole
#

that makes sense. i still yeet the checks entierely anyways 🀣

brisk harbor
#

that being said, 999 is greater than 400

#

and infinite is greater than 999 πŸ˜›

vague talon
#

int.MaxValue thumbsUp

unreal oriole
#

i litterally remove the IL lines where it checks... so mine is greater than int.Max i guess πŸ™ƒ

vague talon
vague talon
brisk harbor
#

just to clarify

#

does mattyfixes experimental fix the cruiser manual falling out of bounds when you order it

unreal oriole
#

in theory yes

crimson sorrel
#

Would be nice to have a SaveFile list command in Lobby Control and the option to delete saves

#

Just for convenience, that I don't need to open the folder

unreal oriole
#

currently it's not really possible. LC save files do not have an extension thagt can be used to easly recognize and are kinda just thorwn randomly inside the LC save folder together with a bunch of other files or varying degrees of importance

#

i could limit the names to only the files starting with "LCSaveFile" but that would come with a bunch of other issues

unreal oriole
#

i'm going to drop here a "more than Experimental" version
with a rewrite for the vertical_offset system

#

it is so experimental that i made a new branch in my github for it 🀣

#

also has a bunch of logspam during the calculation to help iron out issues

#

i'm mostly interested in how it interacts with modded scrap

#

^ also if using this version please set the config ItemClipping.verticalOffset to 0.01 or higher ( new default is 0.01 )

brisk harbor
#

using mattyfixes experimental spammed the log with errors about not being able eto find the cupboard

#

the thunderstore release, not the one posted here

brisk harbor
#

and eventually items started to fall through the cupboard on reload

vagrant root
#

Yeah the Cubpoard stuff in MattyFixes rn is broken

#

Everything else with Experimental seems to work though

unreal oriole
#

yeah TS release is broken i've been reported so and am trying to fix it

#

will probably release soon today something to target that.. still will probably not solve the items falling through the cupborad

#

if you want do you mind testing this? new default ItemClipping.verticalOffset is now negative -0.01f

unreal oriole
#

i kept closing and reopening the same save w/o touching anything

#

why tf items are "drifting" in Z direction?

unreal oriole
#

Pushed the Alpha to Experimental.. please remember to reset the ItemClipping.verticalOffset value to the new default

#

for the record this is all you need to fix items falling though furniture on Load on the host!

        [HarmonyPostfix]
        [HarmonyPatch(typeof(StartOfRound), nameof(StartOfRound.LoadUnlockables))]
        private static void CorrectlyPlaceAllUnlockables(StartOfRound __instance)
        {
            foreach (var placeableObject in Object.FindObjectsOfType<AutoParentToShip>())
            {
                placeableObject.MoveToOffset();
            }
            
            Physics.SyncTransforms();
        }
#

basically the postion of furniture is only updated after 1 frame. and only at the end of the frame, so basically 2 frames

#

this forces it to update immediatly

polar briar
unreal oriole
#

not really if you feel they are good as they are just keep them

#

verticalOffset is a single float. that is applied to all computed values

#

manalOffsets are a different setting

polar briar
unreal oriole
polar briar
#

I see you also have the plushie in yours XD

unreal oriole
#

the only one that needs to be updated ( if you have not tweaked it before obvs ) is vertical

#

grabbed the pic from Lunxara pack

#

also Experimental allows you to tweak rotation of any item

polar briar
unreal oriole
#

i belive Lunxara used it to align the rotations of the GoldScrap

polar briar
#

I don't use the golden scrap modπŸ˜…

unreal oriole
#

golden scrap mod

polar briar
#

I had to look it up, I couldn't remember what it was calledπŸ˜‚

barren hamlet
#

oh hol up

#

is the regular lobby control available to use now?

#

it got updated like 20 mins ago, but the only thing in the changelog i see is that it keeps the cruiser after closing the lobby

unreal oriole
#

well yeah that was the only real change in v56 πŸ˜…

#

and no it correctly deletes/loads the cruiser

#

there are quite a few versions since last stable

empty nest
#

Damn, so 2.4.3 is actually 2.4.3.1.

unreal oriole
#

nah i just never relased 2.4.3.1 not even in experimental

barren hamlet
#

OH i didn't even see 2.4.3 down there

empty nest
#

So a hotfix?

barren hamlet
#

okay that's just my bad then

unreal oriole
#

NOTE: MattyFixes cupboard patch

the patch turns out to be inherently incompatible with LethalPipeRemoval due to the way the other mod moves furniture
if you have LethalPipeRemoval there is a high chance of CupboardFix not working

lament jetty
unreal oriole
#

items falling though the storage on load

#

and them not parenting to the storage when inside it

brisk harbor
#

just for clarity i dont use lethalpiperemoval

#

havent had a chance to test the new versions though

#

so my cupboard issue might've been fixed already

unreal oriole
#

a lot of issues have been fixed in the last two Experimental releases

brisk harbor
#

ye

brisk harbor
#

still having issues with the cruiser immediately dropping its manual out of the map when landing

#

this is on latest mattyfixes experimental with vertical offset set to -0.01

#

items also get placed incorrectly on the truck shelves when it's tilted

unreal oriole
#

latest is v1.1.5 sadly TS is taking it's sweet time to release :/

#

the manual is a MattyFixes issue or is vanilla?

unreal oriole
brisk harbor
#

but i suppose it is possible

#

i have logging mostly disabled on this profile but i will go generate some logs in a test profile

#

interestingly, it was fine the first time i tried it on a profile with nothing but mattyfixes experimental

#

i took a peek at the default config and it is completely different from the one on my other profile which seems weird

#

... wait nvm im just an idiot

#

for some reason i toggled off experimental and toggled normal mattyfixes on (on my other profile, with the bug)

#

so i think im actually just full of shit

#

using mattyfixes experimental 1.1.4 causes weed killer to be clipped into the ground on default settings though

unreal oriole
#

yeah v1.1.4 uses a multiplication instead of a division for verticalOffsets

#

it's fixed in v1.1.5

brisk harbor
#

gotcha

#

i wont bother you with anything else for now then

unreal oriole
#

but TS for some reason is holding it back since 2h

brisk harbor
#

i think it was just a case of me using the wrong version, in this case

#

but i will let you know when i get some time to try 1.1.5

unreal oriole
#

thx for your time

brisk harbor
#

speaking of which, 1.1.5 shows for me now

#

86 minutes gotta be the longest TS delay i've seen

#

oh well there definitely seem to be problems

#

all of these keys should be sitting on the table with the batteries

#

and it appears my jetpack (and what might be my flashlights and walkies?) have gone to heaven

unreal oriole
#

πŸ˜‚. can i have some logs?

brisk harbor
#

just a sec

#

... well

#

i was going to order weed killer and a pro flashlight

#

so i could test placing the weed killer on the shelves

#

but immediately after they dropped out of the ship they just started endlessly floating into the sky

#

here's the log

#

Β―_(ツ)_/Β―

#

just bepinex and matty fixes so hopefully it's easy to pore through

unreal oriole
#

thanks... i have no idea where stuff is going wrong

#

or better i know where.. just not why

brisk harbor
#

for what it's worth, 1.1.4 is pretty functional

#

some items have ugly offsets but it's not a big deal

#

i assume you could also just temporarily turn off item clipping in 1.1.5

#

perhaps

#

but yeah this floaty item thing is definitely a major bug

vernal minnow
#

how stable is the experimental release?

unreal oriole
#

last few updates seems good except ItemClipping

vagrant root
unreal oriole
#

now that's flush πŸ˜„

vagrant root
#

πŸ‘€

unreal oriole
#

apparently i was mis-interpreting a Unity API

vagrant root
#

Fun

#

Are you gonna be pushing the Experimental update soon?

unreal oriole
#

does dropping items in the CC use a different method??? the vertical position seems to randomize every time i try to drop the lamp πŸ‘€

vagrant root
#

Zeekerss probably has the CC setup differently

vague talon
#

It still uses DiscardItemFromPlayer

#

Or whatever the method is called

#

Well it does branch off differently

#

Since it parents to the truck

#

There's a debug log about the item getting parented, that's the branch it ends up to

#

Since it just drops, finds the transform of the truck, gets its network object and parents to that

unreal oriole
#

@brisk sierra can i ask you to do a profiler run on this MattyFixes build?

brisk sierra
#

can you manually

unreal oriole
#

i'd be intrested in knowing how expensive the functions in MattyFixes.Utils.VerticesExtensions are

brisk sierra
#

i cannot sorry
#1259442214921175082

unreal oriole
#

it's fine. that's why i asked

brisk sierra
#

πŸ‘

unreal oriole
#

sadly i do not use unity. only Rider

brisk sierra
#

i can profile it after 30mins

#

but please add profiler markers so i don't need to enable deep profiling

#
#define ENABLE_PROFILER
namespace ...

private static readonly ProfilerMarker s_UpdateShaderVariablesXRCB = new("DiFFoZ.HDCamera.UpdateShaderVariablesXRCB");


s_UpdateShaderVariablesXRCB.Begin();
// ...
s_UpdateShaderVariablesXRCB.End();
unreal oriole
#

oh ok i'll add it to the points i'd like profiled

#

does it stack or overwrite if run multiple times?

brisk sierra
#

probably should stack

unreal oriole
#

cause the code i'd like info on runs:

  • once for each item type ( when said item is first spawned in world )
  • once every time an object is selected to be hit by lightning

they are two different methods

#

i'll put markers around the calls and we'll see

#

like this?

#

obvs i put the Begin/End in the right places in the code

unreal oriole
#

and thx for the help

brisk sierra
#

yeah, and also where is your method runs?

#

in loading dungeon or somewhere else?

unreal oriole
#

first is in prefix of GrabbableObject.Start
second is in postfix of StormyWeather.SetStaticElectricityWarning

#

i excpect a function called GetChildVertexes to be the most expensive one.. but i have no idea how much

brisk sierra
#

first call long execution is because of jit

unreal oriole
#

oh intresting. applying matrixes / doing aggregation work on lists of vectors is not that heavy...
and the only issue is meshes not being readable therefore it using the hack way of querying the vertices from GPU instead πŸ€”

#

could you try to spawn an LGU item? i remember WhiteSpike marked them all as readable last time i requested it πŸ€”

brisk sierra
#

i don't have LGU in my modpack πŸ₯Ή

unreal oriole
#

i do not know if other scrap/item mods have readable meshes. πŸ˜…

#

how's the lightning one instead?

vague talon
#

how do you even mark a mesh as readable lol

unreal oriole
#

^

empty nest
#

Nom.

unreal oriole
#

this is also what the game requires to properly show lightning particles in compiled builds

#

and why when run in editor shows them properly ( all meshes are readable while in editor )

brisk sierra
#

probably cached?

unreal oriole
#

i'm not doing any caching yet in the version i sent

brisk sierra
#

πŸ™‚

unreal oriole
#

πŸ™ƒ

brisk sierra
unreal oriole
#

what's taking time there? the request seems to be just a small part of the call πŸ€”

#

also thanks for the help πŸ˜„

brisk sierra
#

well for that I cannot

#

deepprofiling taking so much time to execute

unreal oriole
#

πŸ˜… .

brisk sierra
#

you can try to wrap more thing with markers

unreal oriole
#

that's the problem most of it is a big recursive call ( going recursive inside each child of the GameObject i'm "reading" )

brisk sierra
#

here is logging

#

GC.Alloc
0.008ms

Current frame accumulated time:
7.95ms for 1220 instances on thread 'Main Thread'
16.93ms for 2851 instances over 2 threads
Size: 128
Call Stack:
MattyFixes.dll!MattyFixes.Utils::VerticesExtensions.TryGetCentroid() <a href="./src/Utils/VerticesExtensions.cs" line="1">./src/Utils/VerticesExtensions.cs</a>
MattyFixes.dll!MattyFixes.Utils::VerticesExtensions.<TryGetRadius>g__Logfunc|4_0() <a href="./src/Utils/VerticesExtensions.cs" line="62">./src/Utils/VerticesExtensions.cs:62</a>
MattyFixes.dll!MattyFixes.Utils::VerticesExtensions.GetChildVertexes() <a href="./src/Utils/VerticesExtensions.cs" line="81">./src/Utils/VerticesExtensions.cs:81</a>
MattyFixes.dll!MattyFixes.Utils::VerticesExtensions.TryGetRadius() <a href="./src/Utils/VerticesExtensions.cs" line="69">./src/Utils/VerticesExtensions.cs:69</a>
MattyFixes.dll!::StormyWeatherPatch.ChangeParticleShape() <a href="./src/Patches/ItemPatches.cs" line="538">./src/Patches/ItemPatches.cs:538</a>
DMDASM.3B5E25D8.Cecil.dll!::DMD<SetStaticElectricityWarning>?2013449850._StormyWeather::SetStaticElectricityWarning()
Assembly-CSharp.dll!::RoundManager.ShowStaticElectricityWarningClientRpc()
Assembly-CSharp.dll!::RoundManager.__rpc_handler_3840203489()

unreal oriole
#

🀦 it's still running the log function even if verbose logging is disabled

#

wait

#

let me add some more markers

brisk sierra
#

ok

unreal oriole
#

is it the GetComponent calls maybe?

brisk sierra
unreal oriole
#

uhh i probably messed up something with the markers there

brisk sierra
#

radius is the expensive one

unreal oriole
#

radius is the wrapper XD

#

radius calls the other πŸ˜‚

#

the stack is:

  • TryRadius:
    • getVertex ( recursive )
brisk sierra
#

i mean enumerating 10000+ vertices for 0.5ms

#

and then allocating 16kb

unreal oriole
#

true i never check how many vertices it finds πŸ€”

unreal oriole
brisk sierra
#

and even 3 times

unreal oriole
#

oh it iterates over them each recursion when applying the localMatrix to them

brisk sierra
#

large axle

unreal oriole
#

i'm evaluating for the lightning if to keep it , cache it or yeet it and go back to the renderer bounds πŸ€”

brisk sierra
#

use array and list pool please

unreal oriole
#

list pool?

brisk sierra
#

yeah it's unity thing

unreal oriole
#

πŸ€” how do i make this with the ListPool tho?

brisk sierra
#

get pool list -> AddRange

#

or just foreach once

unreal oriole
#

:/ sure

brisk sierra
#

i mean foreach once instead of 3 times

unreal oriole
#

this is inside in the recursion

#

i've yet to recode the Radius method

#

you meant like this?

brisk sierra
unreal oriole
#

i can't tell did it make a difference?

brisk sierra
#

well from 1.26 to 0.70

#

so yeah it did

unreal oriole
#

thanks for testing it btw

#

i know i'm repeating but i'm really thankfull πŸ˜„

#

i knew this approach was going to be heavy. so any help optimizing it is apreciated

#

as the previous one was not working most of the times

brisk sierra
#

I can pr to make it allocate less gc if you need

unreal oriole
#

that will surely help, from what i see the biggest time is now actually the semaphore waiting for mesh data right?

brisk sierra
#

yeah

unreal oriole
#

i'll probably make a cache for the mesh vertices, but will no be too helpful when it runs only once most of the time πŸ˜…

unreal oriole
#

i've put some kind of caching for the mesh vertices.. hopefully this will improve performance

#

(at the cost of a small stutter when joining the lobby StartOfRound.Awake)

brisk sierra
unreal oriole
#

πŸ˜‚ sry

brisk sierra
#

Also, I used unity modules package, so probably it may not build on your side

#

Will test the performance rn

unreal oriole
#

you'll have the second commit to fix the conflicts 🀣

brisk sierra
#

no allocation in the profiler

unreal oriole
#

well probably some in the "cache..." methods thoose are still using my old logic πŸ˜…

#

but nice

brisk sierra
#

that 7 years old reddit thread

unreal oriole
#

lol

#

i did not notice the year

#

i guess now it's more optimizedπŸ˜…

brisk sierra
#

fixed some more stuff

unreal oriole
#

found it:
Unity.Collections.dll

unreal oriole
#

how bad is the call now with all thoose tweaks?

is better to only run it once or i can, for example, recalculate the offset each time an object is dropped?

unreal oriole
#

@still stirrup i'm checking why the cruiser manual always clips through with MattyFixes... but from what i can see it is categorized as ClipboardItem ( so same as the normal Clipboard ) therefore all my patches should ignore it πŸ€”

#

you're the one that changed the detection for clipboard and stickynote

still stirrup
#

so I'm guessing there's something in MattyFixes that isn't in TooManyItems that causes it?

unreal oriole
#

oh is it fixed in current TMI release?

#

i guess the issue i received was about stable MattyFixes then πŸ€”

brisk harbor
#

last time i used mattyfixes experimental the clipboard wasnt falling out of the truck yeah

still stirrup
vagrant root
#

@brisk sierra Is there no way for Matty to fix compat with LethalPipeRemoval? I like my storage cabinet starting off moved and I'm tired of Matty's fix for the cupboard not working with it lol

lament fox
# unreal oriole oh is it fixed in current TMI release?

so, there is a issue with lobby control, when people join after the game starts, for the host the player that joined is not invisible, but for other players that already joined the player who joined after the game started is invisible

lament fox
#

the only version that i dont have that issue is v2.3.6

errant furnace
unreal oriole
#

i've been reported it a couple of times, but never managed to find what was causing the issue in the code πŸ€”

#

typically making the invisible player relog fixed the issues

errant furnace
#

mhm, it fixed it which was good

crimson sorrel
#

I think most mods use extensions, if they put files in the games folder

lament fox
#

until it gets fixed, im gonna stay with v2.3.6

unreal oriole
#

v2.3.6 will not handle any of the new stuff from v50 and v56

#

also the dead invisible player fix also wont work as zeekers changed the kill method

brisk harbor
#

pretty sure the invisible player thing happened to me before v2.4.0

lament fox
#

(btw try to fix it fr)

unreal oriole
#

i am, just i wasn't able to reliably reproduce it

vague talon
#

@unreal oriole idk if u have a thread for ur position and rotation mod for unlockables and stuff

#

but it brokey

#

or smthn

#

mrov pinged u in luni's server about it, have fun there

unreal oriole
#

already received a prior report of it XD. will fix tomorrow

vague talon
#

oki

unreal oriole
lament fox
#

im gonna try to reproduce it later

floral patio
#

hi, i'm making a pack that's oriented around pure perfomance with absolutely minimal qol, how much of a performance impact does this mod have?

unreal oriole
#

my only performance mod is #1217111718224728165

#

while i always try to code stuff with as low performance impact as possible all my other mods are not focused on that

#

MattyFixes/LobbyControl are QOL
AdditionalNetworking is for desyncs
QuickSandColor/DoNoEatItems/ImmmovablePlayers are all in their own category as change vanilla gameplay
FurnitureLock is the newest addition ad can probably be categorized as QOL

vagrant root
#

lol

vagrant root
#

XD

#

It's for QOL lol

analog eagle
vagrant root
#

It does

analog eagle
#

alright sweet, thanks for bringing it up lol

unreal oriole
#

at that point shouldn't it be a request to BetterEXP?
either to sync the badge or be able to toggle them off

vagrant root
#

So I won't even attempt to request anything else

unreal oriole
#

🀣 jk, i'll see what i can do once i have time

brisk harbor
#

had stuff fall through the cupboard onto a lower shelf

#

not all the way through

#

but just the wrong shlef

#

using latest

vagrant root
#

The 2nd shelf is broken and Items on it fall to the 3rd

#

Other ones work fine

brisk harbor
#

happened for all shelves except the bottom for me

#

top fell to 2nd, 2nd to 3rd, most of 3rd to 4th

unreal oriole
#

that is probably affected by items with a negative vertical_offset.. as their position is saved lower than they are πŸ€”

vagrant root
#

Soooo

#

I think the cabinet fix is just janky

unreal oriole
#

should i work the other way, and instead of moving stuff up on load, shift them on save instead πŸ€”

unreal oriole
vagrant root
unreal oriole
#

i'm evaluating the options

vagrant root
unreal oriole
#

the easiest one would be to shift the stuff before saving it to file instead of after loading it

unreal oriole
unreal oriole
#

this also has the side effect that. the OutOfBounds fixes of the mod will also apply the first time you load the save in vanilla 🀣 but only once 🀣x2

feral jasper
#

could this mod be causing desync between players interiors? Is there a mod known to be conflicting with this mod in the profile, I can't figure out what is causing the issues 0190c591-cd75-eae2-eac8-5fc4d21e4ee3

unreal oriole
#

any interior desync comes from mods that are modifing moons/dungen

this mod only allows people to join in orbit.

unreal oriole
#

i've been re-reported of masks floating to heaven when dropped by clients with Experimental.
does any of you have a Verbose log ( config -> Debug -> Verbose -> true ) of this happening?

#

and apparently specifically by clients and not by the host ❓

vague talon
#

masks are special?

unreal oriole
#

they have always been weird.. that's why stable had them in the default vertical offset list

empty nest
#

Damn, I didnt know masks have never sinned.

crimson sorrel
#

What features from Matty_Fixes are working without clients having to install the mod?

#

Does it make sense to use the mod as a client in public lobbies?

unreal oriole
#

matty fixes is entirely client-side

brisk harbor
#

just to check if anybody might have a similar issue

#

is it a known bug that having additional networking prevents the apparatus from muting itself for all clients when picked up

#

because i dont remember ever having this issue in vanilla but i feel like it's been occurring recently

#

even after i fixed the thing causing it in butteryfixes (oopsie)

#

not 100% certain it's additionalnetworking but it's at least my best guess, at this point in time

quaint lance
brisk harbor
#

dont have lethal resonance or the soundapi

unreal oriole
#

AD shouldn't be causing that kind of issue as all the vanilla code still runs

#

as the name implies AD adds more RPCs after the vanilla code to fix various kind of desyncs

brisk harbor
#

cool

unreal oriole
#

i said "shouldn't" so if you can reliabily make it happen and can pinpoint AD beening the cause i'll def look into it

brisk harbor
#

it seems like it must be something interfering with EquipItem being called on the apparatus for all clients, just not sure what that would be

unreal oriole
#

ik having an apparatus in ship and reloading the lobby, will make the apparatus reset to its plugged in state

brisk harbor
#

yeah, that's true

#

it isn't what im referring to here, though

unreal oriole
#

so humming sound and all the cinema when you grab it

brisk harbor
#

sometimes freshly unplugged apparatus are still making noise which definitely shouldnt be happening

unreal oriole
#

i'm working on adding a fix for that in Matty Fixes

brisk harbor
#

ah

unreal oriole
#

not sure what might be causing your issue, but mrov had to make a patch to stop it humming once you drop it

brisk harbor
#

yeah

wary isle
#

It seems the cruiser still doesn't get deleted after ejecting

#

I know it's a zeekers problem, but I was under the impression there was a fix for this

#

at least it loads when it should

wary isle
#

Ok, so, I sold every scrap I had...

#

Manually saved
(This is all with autosave disabled)
Then I went to a paid moon, changed my mind, reloaded the save

#

there's a random bell in my ship now

vague talon
#

that bell might've been glitched somewhere out of your sight and was just placed back here lol

wary isle
#

Maybe, I definitely never placed a bell that deep in the ship

brisk harbor
#

extension ladders are being dropped rotated 90 degrees from the direction they are meant to

#

seemingly because of the mattyfixes experimental update

#

which makes deploying them completely different

vagrant root
#

That's why

unreal oriole
#

yeah new version uses the 2nd value of itemRotation ( the y value )

#

you need to check the defaults again for them

#

next version will have default be the string "default" so it will not be affected in newer updates

brisk harbor
#

i see

#

cool

wary isle
#

Clients still seem to see new players invisible when I reopen the lobby pretty consistently

#

This is the mods I have, dunno if there's a conflict or what 0190fc0b-9d9e-9b16-80b7-d8304338886f

analog eagle
#

it is still an attempt
but still better than just using latecompany in my case
but yea i hope someone can figure out the invisible/not being listed in the crewmate list part

wary isle
#

I feel like this started happening on V55

#

So if I use like ShipLobby, it would still be a problem? Is it even compatible?

analog eagle
quaint lance
wary isle
#

but if the old players do rejoin they see them again

quaint lance
#

Might as well just reload the lobby at the point then anyways. Really wish late joining wasnt so finnicky OTL

brisk harbor
#

lobbycontrol is by far your best bet for it

#

but yeah latejoin is always going to be finicky

#

vanilla makes so many assumptions that just dont work with latejoin

late bloom
#

hey so a friend of mine whenever they host their lobby has an issue where people can't pick up specific items, they turned off force drop but now it happens for items that get dropped by mobs or players at random, is this cause of the ghost items setting?

analog eagle
late bloom
analog eagle
#

both set to false(default)

late bloom
#

aight

#

ty

#

god damnit it's still happening

#

just that there's no message now

#

player died and their items are not grabbable

analog eagle
#

must be something else then?
i barely have any problem left after turning those 2 off

late bloom
#

guh

#

weird thing is

#

this never happens when i host

analog eagle
#

what mods u have

late bloom
#

my pack has like 73 mods

#

theirs have 23

#

i'll send screenshot of theirs in a second

analog eagle
#

????
why they only have 23 when u use 73mods modpack

#

that should be the main concern no lol

late bloom
late bloom
#

other players report the same problems as me

#

not everyone

#

so it's clear it's some ghost items

analog eagle
#

what about yours

late bloom
#

never happened on my servers

#

no one ever reported issues of item desyncs

#

and it was randoms

analog eagle
#

im not sure then
could be one the admin/anticheat mods
i never used them before tho, cant help much

late bloom
#

damn

unreal oriole
#

all the settings under ItemSync section are there to prevent some really bad desyncs.
if any of them trigger it means that w/o the setting you would have some really bad situations:

  • GhostItems and ForceDrop are tied and work together to exactly prevent

player died and their items are not grabbable
this happens because one of your friends has a mod that edits the inventory ( typically reserved slots/extra slots 9
. Ghostitems only prevents them from picking up too many items, ForceDrop uses the only vanilla way of re-syncing the inventories between clients by dumping all items to the floor

#
  • ShotgunReload, SyncOnUse, SyncOnInteract all are related to eachother and attempt to fix a different, less dangerous desync that typically happens when people have different GI settings between each otherhttps://cdn.discordapp.com/attachments/1211989201793449994/1227685531505135729/image.png?ex=66adcd00&is=66ac7b80&hm=844b28e0769ff19ec3922d585624a351940156c7d09e3220dbd7a2aa800a18ee&
#

when client and server have desynced active slot and the client tries to reload a shotgun there is a 1/4th chance of it deleting itself completly bricking the lobby. and a 1/2th of it deleting something else instead of the ammo

#

TL;DR: if your friends trigger the "drop-all" message then there is a bigger issue in the modpack and toggling it off from LobbyControl will only hide it without solving the root cause

analog eagle
#

@unreal oriole can u add option to turn off the log for additionalnetworking

unreal oriole
#

i could put them under a "Verbose" config but they are visible for a reason πŸ€”

#

they should only appear once per action ( well twice if you're the host )

#

if you see many of them then you probably have a mod doing weird stuff with the inventory

unreal oriole
#

i've complied anyways and the new release has most of the debug logs under the Verbose config toggle

vagrant root
unreal oriole
#

@vagrant root have you had time to check the scan mod? i'd really appreciate some feedback from someone who might actually use it πŸ˜„

vagrant root
inner thicket
#

I have an issue with my friends will have shovels in their hand, but we cant see them

#

I have all the fixes mod btw

#

lethal fixes
buttery
matty
test account

unreal oriole
#

noone of this mods can fix desyncs , some can mitigate them but there is only so much that can be done while maintaining vanilla compatibility

#

if you don't care about vanilla compatibility then you can try and have everyone install AdditionalNetworking

ashen dove
#

20:27:48.9256715] [Warning:Matty's Fixes] Requesting vertices for Hazeel (UnityEngine.Mesh)
[20:27:48.9256715] [Error :Matty's Fixes] LethalLevelLoader|Hazeel'smark.Hazeel's mark crashed badly ! System.ArgumentException: Cannot use any of the following characters in section and key names: = \n \t \ " ' [ ]
Parameter name: section
at BepInEx.Configuration.ConfigDefinition.CheckInvalidConfigChars (System.String val, System.String name) [0x0004b] in <fe49c90fe8e24102b42489c11910c71c>:IL_004B
at BepInEx.Configuration.ConfigDefinition..ctor (System.String section, System.String key) [0x00006] in <fe49c90fe8e24102b42489c11910c71c>:IL_0006
at BepInEx.Configuration.ConfigFile.Bind[T] (System.String section, System.String key, T defaultValue, System.String description) [0x00000] in <fe49c90fe8e24102b42489c11910c71c>:IL_0000
at MattyFixes.Patches.ItemPatches.UpdateItemRotation (System.String modName, Item item) [0x000a4] in ./src/Patches/ItemPatches.cs:273
at MattyFixes.Patches.ItemPatches.AwakePatch (StartOfRound __instance, System.Boolean __runOriginal) [0x00156] in ./src/Patches/ItemPatches.cs:343

#

Any idea what this could be? Trying to figure out whats causing this so I can weed out the broken stuff from my mod pack. Got one also on another item but that item still spawns and functions like it should.

brisk harbor
#

"hazeel's mark" contains an apostraphe which can't be properly parsed

#

for some reason or another

ashen dove
void spade
#

My inventory freezes sometimes whne putting stuff on the sell counter

#

This mod is one of the mods that mentions changing items

#

Unfortunately the log was too cluttered with
[03:21:14.7807947] [Info : Unity Log] grabInvalidated: False
for me to find anything

unreal oriole
#

this mod does not change item grabbing and even adds some server side checks to try and prevent you from softlocking..

#

as far as i'm aware that is still a vanilla issue and AutoGrabFix before now TestaccounfFixes should solve

analog eagle
#

but yea testaccountfixes mod have a fix for that

void spade
#

Gonna test, test account fixes next time

grim terrace
#

@unreal oriole
I have noticed a lot of mods were removing LobbyCompatibility as a dependancy and I was wondering if you planned to remove it from "DoNotEatItems". It seems to be the only addon in my pack still using it and players have had problems with Lobby Compatibility not allowing lobby join as it does not detect the mods properly between players. πŸ˜„

unreal oriole
#

technically i've implemented it as a soft-dependency ( meaning you can safely remove/disable it ) in DoNotEatItems too.
but the mod breaks really bad if it's not installed by everyone

#

so while you can disable/delete LobbyCompat i Highly suggest you to ensure everyone has exactly the same pack

void spade
#

Does this work with v61?

vagrant root
void spade
#

Alrighty

unreal oriole
#

wrong!

#

the reported error is unrelated to MattyFixes

#

as far as it's been tested all my mods seem to work fine in v61

#

FurnitureLock sliglty broke the cupboard in v60 but zeekers solved the issue on it's own in v61

#

still waiting for some more tests before marking the threads

brisk harbor
#

all of the mods have worked ok for me

#

that being lobbycontrol, mattyfixes experimental, additionalnetworking, and asyncloggers

shell harness
#

i'm like almost 200% sure this lobbycontrol mod is causing me to have permanent weight

#

ever since we installed this mod our party has consistently been getting randomly hit with permanent weight

#

or invisible weight froim no items

#

either at random or when we're at the company and we're selling and mashing E on the sell portal and it just adds weight there

#

which sucks because im pretty sure this is the exact problem this was supposed to solve (?)

vagrant root
#

you have a scrap mod that adds negative weight

shell harness
#

that's 100% the reason?

#

we dont have a single mod that adds negative weight

#

wth

polar briar
#

Normally this issue is caused by a negative weight scrap

shell harness
#

i can't think of any mod we've added that adds scrap thats of any significance really

#

wesleys moons scrap should be good

#

.....thats it really

#

i doubt wesleys scrap values have changed within the past 6 months as well and i rarely experienced this before

polar briar
#

Could be a shop item. Whatever the item is, it'll be something that's supposed to be 0 weight. So while your holding it it weighs nothing, it's when you drop it that you gain the weight

shell harness
#

im pretty sure it happened on a cash register actually

#

i noticed that sometimes when i try to sell at the company window

#

i press E

#

the item disappears and then reappears into my hand

#

(didn't go into the window)

#

and then i prss e again and it works as normal

#

but sometimes when that happens i'll get invisible scrap weight

#

do any of these have incompatibilities with eachother??

tacit lynx
#

no

shell harness
#

because these were the only recent mods ive ever added to an otherwise normally working modpack

#

the only thing i can think of is whatever that item sync feature is

brisk harbor
#

it causes you to immediately pick up scrap after placing it on the counter

shell harness
#

that's probably it

#

ill try it tonight

#

man i should just uninstall that damn mod

chilly phoenix
#

Suitsterminal + furniture lock + ship inventory + moresuits causes suitsterminal to not be able to fetch or display any suits other than vanilla.
Removing furniture lock fixes the issue, and going back a version for ship inventory to version 1.0.2.
The ship inventory dev could not figure out how/what caused this incompatibility, hopefully you know

unreal oriole
#

we know ship inventory is having some issues with furniture lock. i'm getting back from vacation tonight so i was planing on answering the ping in #1269100547147829298 thread later today

#

i belive it's some misconfiguration on their side but we'll see

chilly phoenix
#

Oh, I had though you had missed the ping or turned off some notifications and felt it would be rude to ping again mb

unreal oriole
#

no problem. you're genuinely struggling with your pack

chilly phoenix
#

It's only this one issue left after the update, and the update didn't even have anything to do with it UAHGHHUAHGHHH

left spade
floral patio
#

is matty fixes depracated permanently?

unreal oriole
#

Experimental is the one currently supported but not yet fully Stable

#

i deprecated the stable one because i stopped giving support for it as Experimental now is a rewrite

brisk harbor
#

out of curiosity is there anything particularly unstable or needing testing

#

been using experimental ever since v56 without issues

#

outside of those item positioning glitches that seem to be straightened out now

unreal oriole
#

primarly me not beein here to ensure everything works is the reson why it's still in experimental πŸ˜…

brisk harbor
#

ic

chilly phoenix
#

I'm not entierly shure what triggered it

unreal oriole
#

this is a weird error

#

the drop item code triggered but the player is not holding any item

chilly phoenix
#

yeah, I was holding a cursed item from CursedScraps with the captive curse and it still let me drop the item after a while (it should not)

unreal oriole
#

if i was not patching it it would have crased normal game function too

chilly phoenix
#

yeah, I expect that this is on CursedScraps

unreal oriole
#

just disable CruiserFixes.Enabled and you'll see

chilly phoenix
#

I do not want to crash lmao

ashen dove
#

Cursed Scraps has a lot issues right now. I'd recommend not using it until they update. I believe they were planning on doing a big update to it.

chilly phoenix
crimson sorrel
#

New bug: renaming the lobby clears the name

#

Can a lobby have no name?

floral patio
unreal oriole
#

yes once it is stable i will upload it to the MattyFixes main page and un-deprecate it

floral patio
#

oki cool

#

also im assuming ur other stuff doesnt just magically work on v62

#

just confirming incase i can chuck it in a temp modpack for 10 mins from now

unreal oriole
#

as far as i'm aware all my mods are currently working fine in v62

floral patio
#

wait fr?

#

inclduing fixes?

brisk harbor
#

i was curious

#

did you ever implement a fix in lobbycontrol for the cruiser carrying over when you're fired

#

i think i remember someone mentioning it but i feel like i still encountered that bug after reading that

unreal oriole
#

not for firing. but for lobby load and clear commands

brisk harbor
#

ok i see

#

i was thinking about fixing this bug myself but just wanted to make sure it was even still a problem

#

before i get in the way of other mods

unreal oriole
#

i was expecting zeekers to fix it in this update cycle.. but apparently it's intended for it to remain??

#

or so one of the moderators reported in the official bugtracker as far as i remember

brisk harbor
#

i don't recall hearing anything about it being intended

#

in zeekcord

violet pewter
#

Can I use TooManyItems and Matty Fixes Experimental together?

#

Just not interested in the Lobby Control stuff

unreal oriole
#

TooManyItems litterally contains fixes with the exact code from either MattyFixes and LobbyControl. i coded it so if it detects one of my main mods it disables the corresponding part.

#

tl;dr:

it will work but it will be as not having the mod

light fern
#

Players joining late still seem to be invisible for other players in the lobby.

unreal oriole
#

apparently zeekers added a weird check on the RPC i'm using and the fix will only work if the players are friends with the host

light fern
unreal oriole
#

they do not have a method.. they just fix the issue for whoever has the mod. but if a vanilla player joins he's going to see the invisible players

#

that's why LateCompany has to be installed by everybody to work

light fern
unreal oriole
#

while LobbyControl is host only

light fern
ashen dove
#

I was curious is lobby control able to fix a lobby that soft locked on landing? I haven't messed with the load feature from the terminal commands.

unreal oriole
#

the commands are only available in orbit

#

so if you have pulled the lever you'll not be able to run any command till you go back

ashen dove
#

Hmm...didn't think about that. Any chance you can add something to help reset soft locks with it?

#

Like a command that forces the ship back into Orbit state?

unreal oriole
#

sadly there is nothing that can be done because at that point some of your connected players ( or even the host ) threw an unrecoverable error.. and the only way to fix it w/o knowing what the error skipped is to go back to the menu (and sometimes the menu is not enough and you need a full reboot of the game )

#

you can use mods like QuickQuitToMenu if you are softlocked so bad you cannot go to the escape menu

ashen dove
#

Ah gotcha. Thanks for the info.

chilly phoenix
#

both fixes and async are the experimentals

violet pewter
violet pewter
# brisk harbor yeah

I think you still need TooManyItems for the item limit removal if you're not using Lobby Control, Im not a coder and Im probably looking at this incorrectly but it seems like TooManyItems is only patching specific parts, all 3 mods together would be pointless but if you're not using Lobby Control and Matty's Fixes together then TooManyItems will still have some functionality

brisk harbor
#

oh wait sorry i misread

#

yeah lobbycontrol has the items patch

brisk sierra
#
ArgumentException: NetworkObjectReference can only be created from spawned NetworkObjects.
  at Unity.Netcode.NetworkObjectReference..ctor (Unity.Netcode.NetworkObject networkObject) [0x0001c] in <895801699cfc4b4ab52267f31e2a4998>:IL_001C 
  at Unity.Netcode.NetworkObjectReference.op_Implicit (Unity.Netcode.NetworkObject networkObject) [0x00000] in <895801699cfc4b4ab52267f31e2a4998>:IL_0000 
  at AdditionalNetworking.Patches.State.GrabbableObjectPatch.CheckScrapHasValue (GrabbableObject __instance) [0x00053] in ./src/Patches/State/GrabbableObjectPatch.cs:32 
  at GrabbableObject.LateUpdate () [0x00141] in <066a7b7eb8c24d4facd1e255e669803f>:IL_0141 
  at DMD<>?-463887962.Trampoline<GrabbableObject::LateUpdate>?-1719388982 (GrabbableObject ) [0x00025] in <2e6795a2b5814ecd976c5fe20f9ff7cb>:IL_0025 
  at EmotesAPI.CustomEmotesAPI.GrabbableObjectLateUpdate (System.Action`1[T] orig, GrabbableObject self) [0x0008a] in /home/runner/work/LethalEmotesAPI/LethalEmotesAPI/CustomEmotesAPI/CustomEmotesAPI.cs:394 
  at DMD<>?-1807189256.Hook<GrabbableObject::LateUpdate>?291692320 (GrabbableObject ) [0x00019] in <97dfa673d21f4d5fb15c26bf3dba1c90>:IL_0019 

erm

unreal oriole
#

why tf is lethalemotes spawning a scrap

#

and double wtf are they doing so in the f** MAIN MENU?

#

or am i reading the trace wrong?

brisk sierra
#

yes you reading trace wrong

unreal oriole
#

anyways the error is quite simple on my side:
somehow a scrap item is beeing instantiated w/o being network spawned ( and has scrap value 0 )

#

which should never happen so i wonder what mod does that

brisk sierra
#

hmm

unreal oriole
#

and my code runs in Late Update so it even survived one entire frame from it's instantiation w/o getting network spawned

brisk sierra
unreal oriole
#

well yeah. it runs every frame... it's in Late Update

#

it stops running once it successfully syncs the values but it will never happen if the scrap is not network spawned

#

i can put a try catch and print the scrap name if you need but that's not going to help you much debugging that modpack :/

brisk harbor
#

this is probably more within the bounds of additional networking

#

or possibly just a mod conflict to begin with

#

but are you aware of desyncs that can occur with the radar

#

i've had a couple of sessions now where a friend has used the teleporter and it shows the particles on the wrong player before teleporting the correct one

#

or worse, using the teleporter causes the wrong person to be teleported, which can be quite disruptive

#

on occasion we've even had it teleport 2 targets at once (a dead body and a player)

#

and it seems like that happens because different people are seeing different people on the radar at the same time

#

not sure if it's related to boosters cuz i know there's another bug with boosters (at least in vanilla, i thought one of your mods fixed it?)

vagrant root
# brisk sierra ...

I remember having this error spam once for me a while back, it eventually stopped and I'm still unsure of whatever caused it tbh

solar monolith
#

@brisk harbor are you using TwoRadarMaps? there's a lot of bug fixes for the radar targeting in there, so it's possible that would either fix it or be part of the problem

if you figure out a way to reproduce the issue regardless of whether that mod is installed, I'd be interested to take a look too because it's probably something I want to fix on my side as well

#

it's not likely something that additional packets are needed for as well, I would hope

#

the radar does send a packet with the current target, but the code around that is kinda screwy

unreal oriole
#

the radar desync is a "vanilla" bug.
i put it in quotes because it only happens in case of latejoin or if you have a mod that allows you to grab all items before landing

#

it's caused by the Radar Booster as it reorders the radar list when activated

#

and newly joining clients are not able to reallign the list

solar monolith
#

yeah, with regard to that particular bug, TwoRadarMaps just sorts it immediately upon taking control of the character

#

I believe that should prevent any issues with late joining causing desync, but that's not what I tested the fix against

#

the symptom I noticed was that switching targets would select the same target twice after activating a radar booster, or otherwise have an unexpected order

brisk harbor
#

we are using latejoin yeah but i think one time it occurred even when everyone joined in first orbit

#

but that might be wrong

solar monolith
#

would be interesting to see if using it fixes that then

#

I think Lunxara has mentioned it happening though, and I think she runs it

#

(the fix that would affect late joins is only one of a few)

acoustic kestrel
#

Is Matty's Fixes deprecated? I know it says such on the Thunderstore page but I just wanted to double check / inquire about it

brisk harbor
#

matty's fixes is deprecated because it was rewritten and is not maintained

#

matty's fixes experimental is the rewrite and will eventually be pushed back to the main upload

#

but for now you should use it instead

unreal oriole
#

deprecating the stable one is causing more chaos than i was expecting 🀣

acoustic kestrel
#

The fishing economy will never recover from this

solar monolith
#

yeah deprecating it definitely seems confusing unless it wasn't recommended anymore because of serious instability lol

unreal oriole
#

well yeah bugs kept popping up and i already did a full rewrite so it was not worth maintain two separate versions

solar monolith
#

hmm gotcha

analog eagle
#

i like how some of the mods that got deprecate purge went back to not deprecated cuz of all the complain lol

violet pewter
#

Items are shifting down 1 level in the cupboard for clients with Mattys Fixes

polar briar
#

One of the paintings in SDM is laying flat with the defaults instead of being on the wall hanging like normal, but only one of them (I think the red one, I know it wasn't the green one)

#

With Matty Fixes ^^^

vagrant root
#

It happens with both of them

polar briar
unreal oriole
#
[ItemClipping.Rotations|LethalLib|ScarletMansion]
## Comma separated Vector3 rotation
## vanilla default = '-90,0,0'
# Setting type: String
# Default value: default
Demonic painting = default
#

MattyFixes is not touching it at least not in Lunx pack

#

i too noticed it spawns flat

vagrant root
#

My only guess here would be is maybe Raphtalia is using custom values and your mod is recognizing the defaults wrong

#

If it only happens with MattyFixes

unreal oriole
vagrant root
#

That would be for @winged hedge to tell us though

#

Yeah the only thing I could imagine is if there is some weird Edge Case here

#

Wouldn't make sense for your mod to break them otherwise

unreal oriole
#

this value is set in the 2nd frame of a lobby

#

and if it was null so much stuff would be broken not even in my mod 🀣

winged hedge
#

My portrait item spawn rotation is based on what SpawnSyncedObject says. It then uses the resting rotation when it's grabbed and dropped like any other item.

#

I can only guess that LoadItemSaveData() is called by some other mod. That function causes the rotation to reset itself back to the resting rotation

unreal oriole
#

AdditionalNetworking calls that function if the item has no scrap value πŸ€”

#

are you setting the value w/o using the SetScrapValue method?

winged hedge
#

my painting certainly has a value. it follows the same design as the apparatus

#

I do use functions to set the scrap value but i do them very differently, and it's not related to the painting

unreal oriole
#

cause if you never call that function then the game belives it's still not initialized

#

and AdditionalNetowrking intecepts that and requests the values from the host

#
[ClientRpc]
private void SyncValuesClientRpc(NetworkObjectReference grabbableReference, int scrapValue, int dataValue, ClientRpcParams clientRpcParams = default)
{
    var grabbableObject = ((GameObject)grabbableReference).GetComponent<GrabbableObject>();
    if(AdditionalNetworking.PluginConfig.Debug.Verbose.Value)
        AdditionalNetworking.Log.LogDebug($"{nameof(GrabbableNetworking)}.SyncValuesClientRpc was called for {grabbableReference.NetworkObjectId}! scrap: {scrapValue}, data: {dataValue}");

    if (grabbableObject.itemProperties.saveItemVariable)
    {
        grabbableObject.LoadItemSaveData(dataValue);
    }
    
    grabbableObject.SetScrapValue(scrapValue);

    grabbableObject.AdditionalNetworking_hasRequestedSync = false;
}
winged hedge
#

I see that I see that, hmmst. I don't think it's AdditionalNetworking but I'm gonna try some testing on my end to find the culprit.

unreal oriole
#

oh i see you set the value in the Start() of the painting

#

while vanilla pushes the value with the method instead

winged hedge
#

it should be 100 by default, it's then updated correctly on Start() based on the configs

unreal oriole
#

yeah you do set a value but not by usign the vanilla method but by manually setting the field

#
public override void Start() {
  base.Start();

  if (isAttached){
    bedroom = AngerManager.Instance.GetBedroomWithPainting(transform.position);
    scrapValue = PluginConfig.Instance.paintingValueValue;
    grabbedByEvent = false;
  }
}
winged hedge
#

yuhyuh, but are you saying that causes an issue with your end?

#

unless im forgetful, the apparatus also wouldn't set its value with SetScrapValue

#

and that item is probs fine with your mod

unreal oriole
#

it's a different way of vanilla and AdditionalNetworking instead expects items to get a value though the SetScrapValue method

#

πŸ€”

winged hedge
#

to be clear on what you are saying. you overload SetScrapValue() as a way to know that the item was initialized properly?

unreal oriole
#

i intecept calls to both SetScrapValue and/or LoadItemSaveData and if neither get's called i request the values from host with the rpc i posted above

winged hedge
#

ahh i see i see, and my painting doesn't do either so it effectively eats shit

unreal oriole
#

and as it indeed has SaveData the rpc calls the LoadItemSaveData and somehow resets your rotation?

#

why do you reset the rotation on LoadItemSaveData?

#
// why zeekers
``` you even put this in πŸ˜‚
winged hedge
#

a hacky solution to fix the painting's rotation to its resting rotation upon entering the ship

#

the rotation isn't fixed to its resting rotation when spawned by the ship (When you load in)

unreal oriole
#

oh that's because the itemProperties is set to no gravity

winged hedge
#

so it would be at its default rotation, in my case the painting would be straight up

unreal oriole
#

so it will not attempt to fall on ship load

winged hedge
#

ya i get that, so i simply created a hacked solution since LoadItemSaveData() is only ever called on ship startup, the one place that I need to fix the rotation

#

never expecting someone else to call it, until YOU

#

i can make a better solution though

unreal oriole
#

πŸ™ƒ .

winged hedge
unreal oriole
#

hacky solution 2 for you would be:

public override void Start() {

  //make the item fall if we're loading the ship
  this.itemProperties.itemSpawnsOnGround = !isAttached;
  base.Start();
  //reset it for other items to work normally ( potentially not even needed )
  this.itemProperties.itemSpawnsOnGround = false;

  if (isAttached){
    bedroom = AngerManager.Instance.GetBedroomWithPainting(transform.position);
    scrapValue = PluginConfig.Instance.paintingValueValue;
    grabbedByEvent = false;
  }
}
unreal oriole
#

that's why i was confused to why your paining was updating the rotation on DataLoad πŸ˜‚

winged hedge
#

zeekers jank requires janky solutions

unreal oriole
#

if want an actual line to test if were in the ship load stage ( first two frames of a lobby ) then this is the code:
var loadPhase = StartOfRound.Instance.localPlayerController == null;

winged hedge
#

I should be able to fix it with just

 if (isAttached){
        bedroom = AngerManager.Instance.GetBedroomWithPainting(transform.position);
        scrapValue = PluginConfig.Instance.paintingValueValue;
        grabbedByEvent = false;
      }
else {
  transform.rotation = Quaternion.Euler(itemProperties.restingRotation);
}
#

since isAttached is only active for paintings spawned by the map, and it should be disabled once grabbed

unreal oriole
#

oh well yeah you have controll over the isAttached field

winged hedge
#

yuhs

#

may we meet again when our codes collide

unreal oriole
#

may we never meet for such a reason 🀞

#

i mean i think we'll meet again the ( now quite far away ) day i'll publish with Xu the Animator Override API πŸ˜„

winged hedge
#

Actually I'm safe since I changed my snowglobe animation to use the new clock item's animation

#

For once I'm mega safe

unreal oriole
#

you still replace the animatorcontroller no?

winged hedge
#

not anymore, touching that gives me the hibbie jibbies. too many modders can touch that and that gives me a heart attack as a modder

unreal oriole
#

i need to look at the code for the new clock item then... did zeekers add a builtin way to do overridden animations?

winged hedge
#

oh no, it's just that the clock animation is the player holding their hands out.

#

which fits perfectly for my snowglobe

dapper nexus
#

ok actually this is probably the same issue so i am gonna use the solution that you provided

unreal oriole
winged hedge
unreal oriole
#

πŸ€” is it set to true always?

winged hedge
#

Paintings spawned by the map, the value is set to true. Paintings spawned by the ship, the value is set to false

#

Simply by how prefabs work

unreal oriole
#

you have two different prefabs?

#

otherwise clients cannot tell the difference

winged hedge
#

Ya, it's how the apparatus works too

unreal oriole
#

host can, but for clients it will always be as if they are spawned by map

#

that's why vanilla apparatusses always float on ship reload

winged hedge
#

On ship reload, do you mean like reloading the save file again?

unreal oriole
#

yeah

winged hedge
#

Maybe for the apparatus, but the map prefab is not the same as the item prefab

unreal oriole
#

host will have all the values but clients wont so they belive all scrap is map spawned scrap ( its a vanilla bug )

winged hedge
#

They both link to the same item scriptableobject, but the prefabs are different

unreal oriole
#

and MattyFixes does it best at fixing it but still

#

ohh you have the item in the room prefab?

#

wait how can you have a prefab with two network objects?

winged hedge
#

No that's not what I mean

#

Let me summarize what's happening

unreal oriole
#

or you fully have two prefabs for the painting one you use to spawn in map and one when the ship loads?

#

with different prefab IDs but same object id, so the save code will save them as the "ship" one

winged hedge
#

The map prefab has the item scriptableobject. That item's spawn prefab is a different prefab to the map prefab. The only difference is the isAttached variable. But since both prefabs link to the same item scriptableobject, when the game saves they both have the same item ID. The spawn prefab is the one that the ship uses to reload the ship loot.

#

So the last thing you said, it's that one.

unreal oriole
#

got it, so it's a non issue in this case, good

violet pewter
#

@unreal oriole would you mind having a look at "rotate_on_spawn" setting for ItemClipping? I believe its still rotating items on spawn if false, V8 engines are on their side and Tattered Metal Sheets are not scannable until ive picked them up and dropped them

fathom notch
#

I'm using the UnityDebuggerAssistant mod to help create more verbose error messages with better explanations, and I just recieved a number of error messages that popped up in relation to a few of your mods. I'm guessing it's really just one trigger that caused the rest of the error messages. The errors are at the very bottom of this log file.

fathom notch
#

Tested again and again with the same result. Seems to be when the main menu finishes first-time initiation.

vagrant root
#

@fathom notch It's due to this

unreal oriole
unreal oriole
#

if you do not see a StackTrace then it's probably not an issue, and even if it was the UDA report w/o a stacktrace is completly useless to a dev sadly πŸ™

violet pewter
swift kelp
#

I was playing the beta and noticed that the lightining wasn't striking conductive items, went to the logs and found this, just posting here to let you know, don't mind it too much because it's not official release yet

[21:25:00.5708465] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object.
Stack trace:
StormyWeather.Update () (at <0a162ac9a7f648d5b278a9662b6f7638>:IL_0168)

[21:25:00.6058468] [Error :UnityDebuggerAssistant]

--- Exception Handler ---

Exception Caught: System.NullReferenceException
Assembly: Assembly-CSharp
Message: Object reference not set to an instance of an object.
Source: Assembly-CSharp

--- Begin Frames ---

--FRAME 1:
In Assembly: Assembly-CSharp
Target Method: StormyWeather.Update

Patched By:
  HotbarPlus

  Plugin Info
    GUID:     FlipMods.HotbarPlus
    NAME/VER: [email protected]
    LOCATION: \plugins\FlipMods-HotbarPlus\HotbarPlus.dll

  MattyFixes

  Plugin Info
    GUID:     mattymatty.MattyFixes
    NAME/VER: Matty's [email protected]
    LOCATION: \plugins\mattymatty-Matty_Fixes_Experimental\MattyFixes.dll

--- End Frames ---

--- End Exception Handler ---

swift kelp
#

(Ignore this for the current time, it can be a false alarm and a bug from v64.4)

swift kelp
#

Yes

brisk harbor
#

ic

elder quest
#

the AdditionalNetworking still work? or have conflict?

brisk harbor
#

additionalnetworking is fine

chrome ingot
#

v64 "Fixed position of dropped items," which sounds like it could possibly conflict with MattyFixes ItemClipping settings. Might be something to take a peek at

vagrant root
#

that was fixed natively too

chrome ingot
#

oooh, gotcha

#

I knew there was something else I was missing, lol

vagrant root
#

Yeah shotguns no longer vanish on reload, he fixed that

#

I don't see it being noted anywhere that position of dropped items was fixed btw

#

Oh nvm I see

#

V64.2

chrome ingot
#

ye

unreal oriole
#

πŸ€” the Shotgun code is still completely untuched

#

no idea why 1A3 reported it as fixed but the issue is still there and can still happen

vague talon
#

Shotgun wasn't named in v64.2

#

They all shizo

#

"Fixed position of dropped items"

unreal oriole
#

it's in v64.7

#

but still there is no code for it in that version and the latest v64.9 still has the bugged code

vague talon
#

Isn't it fixed with the isowner check

#

On playercontrollerb

unreal oriole
#

all items in the player inventory are owned by the player...

vague talon
#

I'm just looking at the code diffs rn

unreal oriole
#

you can still have a desync and have the player tell the host to delete the wrong slot

vague talon
unreal oriole
#

all that does is prevent other cheat clients from requesting the deletion of items in the hands of somebody else πŸ˜…

#

the reason why the shotgun is disapperaing is because the RPC used to delete the ammo on reload specifies a numeric value for the slot to be deleted

vague talon
#

Icic

unreal oriole
#

but host and client can have different item order in the inventory as all the other inventory related RPCs only rely on "forward"/"backwards" and not an actual number

vague talon
#

Icic

#

Yeah makes sense

unreal oriole
#

or better which version?

vague talon
#

V64.2

unreal oriole
#

found it

unreal oriole
#

yeah MattyFixes CruiserFixes is potentially not needed anymore

unreal oriole
#

not yet

#

from the look at the code it probably still has the issue of items sticking to the ceiling from inside 🀣

elder quest
#

and for Bagconfig, have issue can't add to inside Belt Bag

unreal oriole
#

@lucid forum please can you make UDA stop blaming mods when the stacktrace is clearly in the basegame?

elder quest
#

already spam Q for add the shovel still not enter

unreal oriole
elder quest
#

ahh work now

unreal oriole
#

yeah i've put the two modes in there to see wich own would work better

elder quest
#

about ItemClipping better still enabled or disabled?

unreal oriole
#

nothing has changed in the code. the only thing that might be unneeded is the CruiserFixes

lucid forum
#

The only thing UDA does is tell you what mods patched a method when the frame is in that method

unreal oriole
#

sadly people think that whatever UDA says is the culprit

#

we had a similar situation with early AsyncLoggers as it was always at the top of the Stack

lucid forum
#

I dunno what you want me to do about it. UDA just outputs what patches the method in the frame. If you're patching something that is throwing you could be the reason

#

I could just delete UDA cuz harmony fucks up the stack anyway and its kind of useless

unreal oriole
#

🀷 it was worth to ask i guess

lucid forum
#

I could help you if I knew both what the problem was and what you want me to do about it but "UDA says my mod patched a method when it did" is not a problem its a valid output

unreal oriole
#

i'll have to just keep refusing errors when they are not related to my mods.

Eg: this issue is because a on object in StormyWeather.metalObjects is null or destroyed and Zeekers has no checks

#

i tought UDA was intercepting the stacktraces and only outputting the mods that were listed in the trace

#

does it also check for any other mod that might patch something in the trace even if it's never called?

lucid forum
#

It gets the exception and walks back one frame at a time outputting what mods patched the method in the frame each time to help figure out where to start working

#

People treating it as 100% the actual answer aren't paying attention to the huge warning I output at the top of the log that says not to bother modders with the output unless you are having trouble with their mod

unreal oriole
#

you might want to repeat the warning on each print... 😭

lucid forum
#

The problem is that harmony turns the final step into a dynamic method because harmony things so UDA doesn't even catch most harmony patched methods, and obviously it won't catch anything inlined or optimized away either

unreal oriole
#

does it detect monomod hooks?

lucid forum
#

Pretty much exclusively

unreal oriole
#

🀷. i guess i'm going to prepare a Sticker to print when people throw me a UDA report w/o a clear cause :/

lucid forum
#

Treat it like any other stack trace because that's all it is

unreal oriole
#

that's the issue, at least when a stacktrace mentions my mod i have something to look at

#

when the trace is litterally just

[21:25:00.5708465] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object.
Stack trace:
StormyWeather.Update () (at <0a162ac9a7f648d5b278a9662b6f7638>:IL_0168)

#

and people send it to me because UDA says so it's quite ambiguous on how i should respond

lucid forum
#

UDA says MattyFixes modifies this method that is throwing and could be the cause of it

#

And then you say "Its not me its base game"

unreal oriole
#

i'm going to use mattyfixes as an example but this applies to other cases too:

#

UDA says MattyFixes could be the cause but MattyFixes only has a Postfix ( or Finalizer ) on the method so how can it be MattyFixes if it has never run?

brisk sierra
#

good that UDA doesn't show my patches

#

because it would cause a lot of users reporting to me errors

unreal oriole
#

list of Diffoz Patches: yes

unreal oriole
lucid forum
#

There's nothing stopping a postfix from setting a null value on __instance or something. I don't feel that skipping the report on 2/3 of the harmony patches makes sense

#

I kind of hate UDA and how popular it became despite literally not working for the majority of it's existence

#

It still barely functions as is and people keep using it because it sounds like it does something

#

The stupid #treasure-hunt channel is now the most active channel on the server and all you do in there is click a button to watch a number go up. Its totally off topic but I feel like a lot of the time I only get rewarded when I appeal to the worst qualities in people and its making me want to stop coding

unreal oriole
#

now i feel sorry for it πŸ˜…

vague talon
#

i dont get how the worst quality is meowing but pats

lucid forum
#

Don't get me started on my old man rant

brisk harbor
#

thats what 1a3 is referring to in the changelog

winter basin
vagrant root
#

Lol

brisk harbor
#

yes

vagrant root
gloomy flume
#

Can the price of the belt bag be configurable with the BagConfig mod?

vagrant root
#

I personally want an option to not see it when looking down, not a fan of seeing the floating waist bag

unreal oriole
#

it's an intentional feature ( from zeekers ) tho, so you can access it w/o having to hold it

unreal oriole
#

main issue with hiding it is that the interaction prompt/area would still be there

unreal oriole
ashen dove
#

@unreal oriole can we get an option to change the drop all button from E. You know how many times I've gone to interact with something and instead dump my bag everywhere πŸ˜† 🀣 πŸ˜‚ I have added it to reserved slots at least.

gloomy flume
#

Something was wrong with the soccer ball, I was able to store them in the bag and sometimes I cant and when I did the soccer ball was still there for the host and he couldnt pick it up

#

And I have the two handed storing disabled

unreal oriole
wintry token
unreal oriole
#

that's not possible within the bound of the vanilla code.

#

for how the backend is made you cannot put an item unless it's on the ground ( not held by neither players nor enemies )

ashen dove
#

I also dislike how you added a scrap feature too it πŸ˜† it took all my power to not turn on that config after discovering the ability to store bag within bag within bag.

unreal oriole
#

it would require new RPCs and would not be a "client-only" mod

ashen dove
#

In all honesty though. Thank you Matty because this was exactly what I was hoping someone would do (the drop all button) and it was you of all devs to do it so I did not hesitate to download it.

unreal oriole
ashen dove
unreal oriole
#

mine is actually the 3rd beltbag mod if you check thunderstore

ashen dove
#

Oh well yours was the first I saw.

unreal oriole
ashen dove
#

Plus it's you so I trust it to work.

unreal oriole
#

glad to be in the list of trusted developers 😁

ashen dove
#

Np. Thank you for the great mods and fixes. Awhile back I was purging some to figure out issues and upon removing yours I was getting annoyed at some little bugs happening and then realized oh shit Mattys mods were working so well I didn't notice anymore until I removed it.

#

You Buttery and Shaosil, you three have some of the best fixes that make it hard to play the game without now πŸ˜†

Also can I request you make a belt bag mod that adds a separate config setup?
You can call it
Mattys Pack!
Make it a different color too and have it be a rare spawn chance as scrap so it's a rare find that can hold scrap. πŸ˜†

unreal oriole
#

i dont even have unity installedπŸ˜…, i'd have to ask for the collaboration of one of the other scrap devs

vague talon
#

lazy levels = 100

unreal oriole
#

it's a choice , and i'm gonna hold it as long as i can 😏

empty nest
#

I only touch it when I have to import some models anyways.

ashen dove
empty nest
#

Ehh.

#

I dislike the UI

ashen dove
#

😭

swift kelp
#

idk what happened, but i was in a run with friends and the belt bag glitched and all the items inside was invisible and couldn't pick up, later i went to the logs and found this:

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
BagConfig.Patches.BeltBagPatch.FixVerticalOffset (UnityEngine.Vector3 position, BeltBagItem beltBagItem, Unity.Netcode.NetworkObject targetObject) (at ./Plugin/src/Patches/BeltBagPatch.cs:300)
BeltBagItem.RemoveObjectFromBag (System.Int32 objectId) (at <d0d093e9162748b6a00ca8938a14b439>:IL_003C)
BagConfig.Patches.BeltBagPatch+<EmptyBagCoroutine>d__3.MoveNext () (at ./Plugin/src/Patches/BeltBagPatch.cs:45)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <e27997765c1848b09d8073e5d642717a>:IL_0026)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
BagConfig.Patches.BeltBagPatch:OverrideGrab(Action`2, BeltBagItem, Boolean) (at ./Plugin/src/Patches/BeltBagPatch.cs:59)
DMD<>?1971766198:HookBeltBagItem::ItemInteractLeftRight?-1221664804(BeltBagItem, Boolean)
GrabbableObject:ItemInteractLeftRightOnClient(Boolean)
GameNetcodeStuff.PlayerControllerB:ItemTertiaryUse_performed(CallbackContext)
UnityEngine.InputSystem.LowLevel.<>c__DisplayClass7_0:<set_onUpdate>b__0(NativeInputUpdateType, NativeInputEventBuffer*)
UnityEngineInternal.Input.NativeInputSystem:NotifyUpdate(NativeInputUpdateType, IntPtr)

ashen dove
#

I actually had the same thing happen too.
Also can't remember which fix did it but had a Shotgun bug out and vanish again too. Thought that was fixed in vanilla.

wintry token
# unreal oriole ^

Hello!
I have a small question, How does the position and rotation system work in furniture lock?

#

I can't find the thread of that mod btw

unreal oriole
#
  1. place where you want
  2. press Copy
  3. tweak the values if needed
wintry token
#

oh

#

interesting, thanks!

unreal oriole
#

yeah the actual value are whatever zeekers uses internally. and there isn't a good way of knowing them from outside the game as each furniture has a different zero

#

so instead you have the handy LethalConfig buttons to edit them

#

also all edits will apply at runtime, so you can lock/unlock/move stuff while playing and it will propagate to the other clients too

#

and this is entirely Host-only so vanilla compat ecc...

wintry token
polar briar
#

Is bag config going to have a whitelist option again at some point? I just want the ammo from piggys variety mod to be able to be put in the bag

tacit lynx
#

It does

#

just add Bullet: Utils or whatever the revolver ammo is called in "Item Categories" under "Limits"

#

or another one of the limit categories you have turned on

polar briar
#

I thought that's how it worked, thanks for the confirmationπŸ˜…

unreal oriole
#

i need to make a better readme for the system but for now i'm focussing on making the mod work ( and not allow it be used as a cheat mod )

#

you can define any Category you want ( my examples are not the best as they are "Blocklist" and "Utils" ) and both are still disallowed by default

#

whatever new category name you put in the Limits.Item Categories will appear as a new section in the config for you to tweak

#

if an item does not have a category it will fallback to one of the 3 default ones:
Tools ( anything that is not scrap )
One handed scrap
Two handed scrap

#

Maneater is an exception as ( to prevent softlocks ) it's hardcoded as not allowed

unreal oriole
#

is there anybody that is using the Category system?

#

in BagConfig

chilly phoenix
#

I might use it, I haven't decided what I want the bags primary function to be in my pack yet

unreal oriole
#

i'm trying to find a decent example to put in the README

polar briar
unreal oriole
unreal oriole
#

i've got an example from @tacit lynx , where he put:

  • weapons in a category and limited them to 2
  • ammo in another category and limited it to 5
#

which seems like a really good example to use for the Readme

unreal oriole
solar monolith
#

hey Matty, since you've committed unreadable mesh heists already, I'm wondering, what's the simplest way for me to grab a submesh from the monitors in the ship? I'm in a conundrum as far as adding an overlay to any old monitor in there

#

and then split out the submesh after that?

unreal oriole
#

do you need to compute the mesh at runtime? if not you're better using the assetripper to get it tbh

solar monolith
#

I do, because I have support for changing the monitor when GeneralImprovements is present

#

I have a working method for doing it using the function to make it readable first, but if I was able to skip that and read directly from the buffers that would save a little work

#

obviously that can be tricky since I don't know if Unity exposes that much information about the buffer formats, although it clearly knows how to read them itself

unreal oriole
#

the main issue is that what i'm doing is requesting the buffers from the GPU and i can only access some ( vertexes, indexes and normals )

#

and asking the GPU is incredibly slow

#

if you need to access a basegame mesh maybe you can try getting it from resources but i doubt πŸ€”
what do you need from the mesh?

solar monolith
#

just the vertices and uvs, it's unlit when I render it

#

I guess if requesting the buffers is the slowest part then anything else I'm doing will probably be negligible

unreal oriole
solar monolith
#

thonk do some models use vertex colors?

unreal oriole
#

jetpack i belive

solar monolith
#

how does it turn out b/w otherwise?

#

oh interesting

#

so then that option is off by default?

#

it's curious that that's not in the vertex buffer, but I guess it might be per tri instead

unreal oriole
#

yeah i've put as default the use of my Spherical particles instead of vanilla mesh ones

#

so i do not have to deal with meshes anymore. tho i still do grab the vertices from GPU for my other calculations

solar monolith
#

using the same method to make them readable? or another way?

unreal oriole
#

sliglthly different by making direct requests to GPU buffers

solar monolith
#

ah, but still similar in concept I guess, in that it sends the data to a new mesh

#

I think the only improvement I could make is to read directly instead of giving it to a mesh, but if the mesh class doesn't immediately upload data when you assign it then it doesn't matter

unreal oriole
vagrant root
#

If you did it the intended way it better behave

#

As funny as the bugs we got with Experimental the last time were XD

unreal oriole
#

answer is always "shouldn't" but still might

#

i'm not trying to avoid Unity Server/Client Rpc system anymore so it should ba 1:1 to Stable

vagrant root
#

Hell yeah

unreal oriole
#

but still allow Vanilla players to join

unreal oriole
candid jay
#

Hey! Was playing with friends and noticed some scrap are uh.... very offset after 1.1.20
Only some of the skinnedmesh scrap are off, while some aren't.
Left is 1.1.19, right is 1.1.20

unreal oriole
#

uh? 🀣

#

if fixed some and broke some others i guess 😭

#

do you mind sendig me a log when you load a lobby with the item and verbose logs ?

candid jay
#

Yup just a sec

#

Not exactly sure what I'm meant to be sending here

#

Ah found it

#

But it ends up with an offset of 7.251334

vagrant root
#

I'm also seeing cases of scraps randomly floating

#

You may be better off reverting your changes

#

Because to put it bluntly

#

V1.1.19 worked fine and I don't wanna deal with this broken ass build on Thursday 🀭

#

Not to be mean or throw any shade or anything

#

Lol

#

Previous version was just a build I'd consider stable

vagrant root
#

I respect you for trying to fix issues lunxara_love_with_tail

civic cobalt
vagrant root
#

@unreal oriole if you wanna know the ones that floated for me to make it easier

#

Eva

#

She floats now for some reason ascending plant girl XD

#

And Rodrigo from Surfaced

#

Idk if any others in my pack might those are the 2 I found that I know do

unreal oriole
#

😭

candid marlin
#

@unreal oriole The latest update of Matty's Fixes made it so you can't place items on top of the cruiser anymore they just fall through, you can't place them in the back either unless you store them on the shelves.

vagrant root
inner thicket
#

matty fixes got depcrated so I got the experimentatl version instead

inner thicket
vagrant root
#

It's gonna be a big one 🀭

unreal oriole