#Open Body Cams

1 messages ยท Page 6 of 1

spice rampart
#

but let me have a look

raven arrow
#

Honestly I took the whole thing as a sign that I need to clean stuff up and removed like a dozen mods and ran the game for a bit

#

And I don't think anything bad happened

spice rampart
#

first step: checking the heavy bois

#

LethalFixes already fixes this

#

idk if it's true, but most mods that i played that tweaked masked behavior could cause lag too

#

also, why did you add Wesley moon by moon instead of the whole pack

#

you could add CleanerLogs and LessLogs too, also disable Unity Logs in BepInEx cfg if you're just going to play instead of testing

raven arrow
raven arrow
spice rampart
raven arrow
#

It doesn't matter cause you're still downloading off thunderstore

spice rampart
#

never happened to me then perceive

raven arrow
#

probably good enough connection yoiled

raven arrow
spice rampart
#

radar function?

raven arrow
#

alrighty, thanks for the heads up

raven arrow
#

on radar

spice rampart
#

general improvements has this option

raven arrow
#

oh that's nice

#

ty

spice rampart
#

why do you use LethalSettings & LethalConfig together?

#

don't they do the same thing

raven arrow
#

no idea, probably some leftover deps

#

ig i can just throw settings out

spice rampart
#

now let me open the game to check

raven arrow
spice rampart
#

don't know what happened here

#

let me check other cfg then

#

is scoppy's variety mod even working on your modpack?

#

BetterMonitors from GeneralImprovements are kinda heavy too, if your pc is good then it's fine i guess

#

also doesn't need OrbitRecharge

#

didn't see anything big that could cause lag spikes (aside from the moons)

#

strange

raven arrow
spice rampart
raven arrow
#

aha, ic

raven arrow
spice rampart
raven arrow
#

nah i mean multiplayer in general

#

cause that thing doesnt happen to clients

spice rampart
#

do the clients have a better pc than you?

raven arrow
#

its not a pc or performance issue, the game itself runs fine

spice rampart
#

then it's host related

#

damn

#

GI also do that ๐Ÿ˜…

raven arrow
spice rampart
#

but maybe GI doesn't have a good compatiblity with Terminal Formatter ๐Ÿค”

#

i do have the option to show planets after travelling but never appear on the moons catalogue

#

DiscJockey could also be the cause of some lag spikes i think?

#

It's more heavy to the host compared to the clients

raven arrow
#

we didnt have any boomboxes

#

tbh im thinking it might be moons or enemies

spice rampart
#

enemies aren't so heavy compared to moons

spice rampart
raven arrow
#

it wouldnt really matter size wise if its something that breaks and spams logs to the point of the game pretty much dying

#

so idk

spice rampart
spice rampart
#

you should take Imperium and go to some mod moons and spawn enemies or take a walk around while monitoring the FPS

#

you have Steam Overlay?

#

this option is very useful

raven arrow
#

yeah as i said before its not a performance issue, the game itself is running fine, its the moving objects that look like they teleport

spice rampart
#

perceive F

raven arrow
#

yup

#

1:1 to what i experienced

inland cipher
#

i cant remember the exact fix, but it was a mix of vsync + gsync im pretty sure, try disabling vsync in game

#

it could be HAGS too i cant remember

raven arrow
#

oh shiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

#

thanks a lot for the tip!

inland cipher
#

the weirdest thing for me was recording with any software, OBS, discord screenshare removed it LMAO

#

its why i had to record with my phone hahaha, but yea i think it was an issue with vsync

raven arrow
#

thats like the most random thing ever

#

holy hell

spice rampart
#

๐Ÿ’€ vsync moment

#

almost never saw a situation that vsync helped, why do that even exist

dense dune
spice rampart
#

Lol, why? Isn't just a recharge

raven arrow
#

can confirm GI works just fine

dense dune
#

I said Mrov's mod imo is better, it goes the extra mile so to speak

raven arrow
#

Idk what you said you literally gave no context lol

wintry bronze
#

does this mod conflict with general improvements? Notice that the bodycam doesnt show up

spice rampart
#

Do you have LethalLib?

wintry bronze
#

ya

spice rampart
wintry bronze
#

ohh okay

spice rampart
#

you can disable it on the cfg if you want

compact niche
#

hey @vital steeple quick question as an API user. Having some issues with my mirror implementations using OpenBodyCams for the camera. I only see the "thisPlayerModelArms" of my playermodel and nothing else. I thought maybe I'd need to update the perspective to third person using the methods in OpenBodyCams.Utilities ViewPerspective class but they dont seem to be doing what I'd like. Am I missing a super obvious attribute or something like that?

vital steeple
#

hmm, how are you setting it up? I would expect that if you're telling it to attach the camera to a non-player, it would set the third person perspective on the local player autiomatically

compact niche
#

let me try and screengrab what i'm working on with suitsTerminal

#

the published version in the latest version of terminal stuff has the same issue but is also a bit more complex with the regular bodycam being in the mix

vital steeple
#

the ViewPerspective class isn't intended to be used by users of BodyCamComponent, it's if you want to reimplement part of that component for yourself essentially

#

does the latest released version use a regular camera for the mirror?

#

I thought that was somewhat working previously

compact niche
#

i took the viewperspective stuff out, but basically i was creating a fresh playermodelstate off the local player and then running the apply static method

compact niche
vital steeple
#

huh.. so it works in TerminalStuff but not in suitsTerminal?

compact niche
#

uh no

vital steeple
#

and this pastebin is from suitsTerminal?

compact niche
#

both have the same issue where you only see the playermodel hands

#

for the mirror type camera

#

sorry for the confusion lol

#

and yeah the pastebin is from suitsTerminal

#

sent you that since it's the more up-to-date code im working with

vital steeple
#

hmm, that's odd

#

if you can send me a build where it's not working (probably just TerminalStuff since presumably that's all that's required) then I can reboot and look at it

compact niche
#

sure yeah the latest version of terminalstuff on thunderstore is a good place for you to look

#

the code isnt that different

vital steeple
#

๐Ÿ‘ hold on

compact niche
#

I was thinking the issue might be because the camera is targeting the player regardless of it being synced to any specific map renderer in this line

vital steeple
#

whatever you set the target to after that should override it, so hopefully that's not the issue

compact niche
#

ahhhh gotcha

#

theres also some unnecessary stuff in there that I planned on taking out once I was happy with my suitsTerminal update

#

I guess another minor bug I can report, but not sure if it's something on my end, is that running a terminal command would suddenly reset the camera position/transform back to a default bodycam

#

I noticed it in terminalstuff when having the mirror active and running the "randomsuit" command. And then again with my dev version of suitsTerminal when I would equip a suit in the menus

#

again, not sure if it's an OBC problem. Still t/s that one

vital steeple
#

oh wait you mentioned randomsuit sorry

#

doesn't seem to change the camera position here on the current release of terminalStuff though at least

compact niche
#

oh thats good, it was something i noticed last night

vital steeple
#

one thing I'd be wary of is putting two of the same component on an object

#

I haven't really designed it with two adjacent BodyCamComponents in mind, so I'm not sure if there might be issues related to that

compact niche
#

ahhh hadn't thought of that

vital steeple
#

also, this is what I'm seeing, is the arms showing up alongside the third person model what you were referring to?

#

my initial impression was that only the first person arms were there

compact niche
#

odd, in my test profile i'm not getting that at all

vital steeple
#

as in you're not getting the third-person model?

compact niche
#

ignore me

#

I was gonna ask you to check your config and found mine was using the wrong option facepalm

vital steeple
#

ah, so it was the default cam that was doing it?

compact niche
#

this is what decides whether to use OBC or my homebrew

#

yeah think so, double checking

vital steeple
#

the arms showing up is still an issue though

compact niche
#

yeah this is with OBC

vital steeple
compact niche
#

and then running randomsuit

vital steeple
#

is the link you sent for the code the live version?

compact niche
#

wonder if it's one of the dev mods

#

for terminalstuff yeah

#

let me try a fresh profile

#

testing with this fresh profile now

#

019051d0-2336-4190-d10f-8e98004bc955

#

yeah see myself fine now

#

the randomsuit thing still happened tho

#

might be an issue on my end for that one if it happens without OBC tho

vital steeple
#

yeah, I'd have to guess you're doing something weird with the camera but hard to say

compact niche
#

i'm willing to bet it's the extra stuff i want to remove

vital steeple
#

are you keeping a reference to the OBC camera in the same field where you would store your homebrew mirror cam?

#

trying to figure out if there's anything that I'm missing here for your live impl, I'm not sure where you're attaching it to the terminal

compact niche
#

im more concerned about the first person view models at this point

vital steeple
#

right, but it matters for that since I'm not seeing any code that sets the target yet

compact niche
#

im like 80% certain the camera flipping is my own issue

#

it should be attaching to the terminal game object

vital steeple
#

where does it do that on the GitHub link?

#

note that calling CreateBodyCam doesn't set the target to what you pass to it, it creates the controller component there

compact niche
#

I save a reference of the terminal instance on my plugin at the awake method

vital steeple
vital steeple
#

you did it correctly in the snippet you sent from suitsTerminal

compact niche
#

thats where this comes in, which is what I want to remove in favor of the suitsTerminal method

vital steeple
#

oh yeah you're still leaving the current player as the target and moving the camera, that won't work

#

it thinks it's in first person

compact niche
#

yeppp

#

thats probably the issue

#

whats weird is I was getting it with the dev branch of suitsterminal too

vital steeple
#

the reason I still see the third person body is because the resolution of the mirror is low enough to where the engine thinks it should use LOD1 instead of LOD0 and that one doesn't get hidden based on perspective since it's not normally used in first person

compact niche
#

so this is the code I can reproduce the model issue 019051d7-684d-812e-102e-b28cfc101053

#

i'm wondering if it has to do with one of the mods that replaces player models (i just downloaded a bunch for testing)

vital steeple
#

probably not if you're not using them?

#

and wait, is the suitsTerminal change live too?

compact niche
#

hmm Think

#

nah i wanted to fix this before pushing

#

well, if you didnt respond I was just gonna recommend not using the OBC camera for now lol

vital steeple
#

hmm

compact niche
vital steeple
#

then don't I need you to send a build?

compact niche
#

yeah I can send the WIP

#

there's some other stuff besides this I still need to fix up tho

#

doesnt have to do with the camera though

vital steeple
#

and I can toss this in with the live version of TerminalStuff I assume

#

I forget, how do I get the suitsTerminal-specific mirror?

compact niche
#

you just run suits command

#

it should be good to go with terminalstuff, but for testing I usually start out with suitsTerminal by itself

vital steeple
#

oh, I thought it had a dependency on TerminalStuff

#

lemme try that, that's probably best

compact niche
#

nah no dependency, trying to get all my mods to be dependency free

#

hold on, whatever i did in the latest dev branch broke the obc cam completely

vital steeple
#

oh god, the default key for toggle cam is the steam screenshot key

#

and it doesn't toggle the cam

compact niche
#

kekw sorry about that, i dont use that key

vital steeple
#

(seemingly)

compact niche
#

yeah let me get a working version for you

#

one sec

#

oh yeah i think i know why it isnt working lol

#

terminalMirrorCam.SetTargetToTransform(suitsTerminal.Terminal.gameObject.transform);

This doesnt work

vital steeple
#

oh how so?

compact niche
#

i added that while trying to fix the player model thing

#

i have another method that places the camera and attaches it to the terminal transform

vital steeple
#

the ideal thing to do would be to create an object that you position where you want the camera to be

compact niche
#

this is the method that should do it, i pass the obc camera object to it

compact niche
#

let me double check the cam works again and i'll send you a new build

vital steeple
#

it makes sense to do some of that to set up the ortho mode, but a lot of that should be in the target object

#

reflection probes are a different thing, I don't think you need/want to set that

compact niche
#

fair enough, i think that was something else I was just kind of experimenting with

compact niche
#

here we go

vital steeple
#

gotcha

#

well it's fine to do it that way if you set the target correctly, but you have to make sure to do it every time the camera is recreated

compact niche
compact niche
vital steeple
#

doesn't really hurt to have the camera exist but be disabled, but that's fine too yeah

compact niche
#

im realizing now though that the camera is not being deleted like I thought it would be

vital steeple
#

wuh oh

compact niche
#

targeting the wrong object to delete maybe?

vital steeple
#

ah, you're destroying the component, not the object

compact niche
#

yeah

#

i'm guessing i need to do the opposite of this

#

get the camera and delete it

vital steeple
#

you can just delete Component.gameObject

compact niche
#

of the monobehaviour?

#

oh wait

#

i think i see it

#

I just needed to modify it to Object.Destroy(TerminalMirrorCam.gameObject); right?

vital steeple
#

yeah

compact niche
#

oh yeah, still seeing the weird issue where i press enter to select a suit and the camera position adopts my own pov

#

and this is with the profile that we just confirmed worked with terminalstuff

#

๐Ÿ˜ต

#

maybe it's due to the multiple cams attached to the same object

vital steeple
#

it doesn't look like this build is calling SetTargetToTransform

compact niche
#

nvm, still seing the issue on fresh load with one cam. And what's weird is pressing enter a second time fixes it

#

yeah i mentioned that was what caused the cam to not show up for some reason

vital steeple
#

it's very possible that the reason the camera moves is because of some hook I use to update targets when the map changes, although I wouldn't have expected it to affect one that doesn't have a synchronizer component

compact niche
#

hmm

#

I could try to add settargettotransform back again

vital steeple
compact niche
#

not an exception

#

from what I could see no errors

vital steeple
#

then what was happening? you never said

compact niche
#

the camera just doesnt display anything to the render texture

#

im not sure why

#

that was the first build i sent you

#

commenting it out is what gets the camera to display on the texture again lol

#

my guess is I'm either calling the function too early or too late, since I am modifying the position with my own method too

vital steeple
#

hmmm

#

it looks like it doesn't like the target for some reason

#

it's blanking the display

#

if you hook up OnBlankedSet it would be called with true

compact niche
#

gotcha, i'll play with it

#

you think that method will fix the first person hands issue?

vital steeple
#

it might be an issue on my side, I'll look into it too

#

setting the target will, yeah

#

or it should if everything else is working

compact niche
#

gotcha, i figured it was something like that i needed to do on my end

vital steeple
#

oh, it is on my side

#

I wonder why I had it set up like this Hmm

#

it'll only display output if its non-player target is a radar booster

compact niche
#

oh LOL

vital steeple
#

probably just an oversight on my part, since that code path shouldn't be hit without API users

compact niche
#

yeah i mean, its not something you'd think of without trying to use the camera in a unique way

#

had to be an api user to find it

#

im just glad to hear it's not the terminal transform being an issue

vital steeple
#

yeah it should be fine to use that, though I think you'd have a better time with that other issue if you create an object to attach to

#

gives you a place to put the component where it'll actually have a relevant name as well

compact niche
#

ah I see

#

I already create an object for my homebrew cam. Maybe i'll re-use that

vital steeple
#

yeah the hidden output was the issue, returning false instead fixes it

#

also, do you do anything more than fiddle with the near plane distance to prevent the terminal from showing up in the mirror? and if just that, does that mean that the hands get cut off?

#

I'm thinking it would be nice to add an event to let you override the models that are hidden for the current attachment target

compact niche
vital steeple
#

oh I don't mean the first person hands

compact niche
#

like if you look down, the hands are gone

vital steeple
#

what I mean is that I would expect the terminal keyboard to show up on the mirror

compact niche
#

yeah the regular player model hands do get cut off a bit, the nearplane i have was kind of the best i could do

vital steeple
#

or that the hands wouldb e cut off

#

ah

#

you could skip that with this feature when using OBC

#

if you provide an array of all the renderers that need to be hidden

compact niche
#

im down for that, if you think it's possible

vital steeple
#

it's ez

compact niche
#

would probably just need an example for usage

#

I do appreciate like usage examples in the documentation, like the one you have in your readme

vital steeple
#

yeah, I should honestly set up a wiki

compact niche
#

i mean, my documentation for my mods could use some work too

#

its time consuming lol

#

definitely would appreciate it tho

vital steeple
#

the idea is basically:

bodyCam.GetRenderersToHide += originalRenderers => [ .. Terminal.GetComponentsInChildren<Renderer>() ];
#

(if it can infer the return type anyway)

compact niche
#

sounds good, i'll look out for the feature when you have it ready ๐Ÿ‘

#

im gonna go back to trying to make the menu in suitsTerminal less of a mess kekw

vital steeple
#

hmm, pressing backspace closes the suits menu, that's a bit annoying

#

trying to use UnityExplorer in the foreground doesn't work so well with that

compact niche
#

if you have better ideas for default controls im all ears

#

definitely seemed like backspace made the most sense since i was using enter to select a suit

#

if i remember right you can also change that in the config

vital steeple
#

I suppose it does make sense, I just would've hoped that UnityExplorer would intercept it like it does for alphanumerics

#

not sure how it even does that, though, so shrug

compact niche
#

yeah definitely annoying that unityexplorer still picks up input lol

vital steeple
#

just pushed the update that adds all that

#

the fixes and the event

#

hopefully it'll function as you need now

compact niche
#

awesome thanks!

#

i'll let you know if I find any other issues on my end

compact niche
#

not sure if it's actually doing anything, but I implemented the new feature in my latest update

dense dune
#

My friend with a model replacer has my cosmetics copied onto him

#

@vital steeple think this might be a conflict with TME and OBC?

#

XD

#

Yeah it was TooManyEmotes

#

@golden kindle you may wanna look into this XD

compact niche
dense dune
#

I think an interaction with TME and MRAPI or TME and OBC

vital steeple
#

TME worked for the longest time in this regard, though, right? did something change?

vital steeple
#

in GetRenderersForOBC(Renderer original), the Renderer original parameter is unused, and shadowed by the lambda's original parameter

#

it should be private static Renderer[] GetRenderersForOBC(Renderer[] original), or just append that lambda directly to the event

#

also, did using the OnCameraCreated callback solve the issue with the camera teleporting? I suspect that it could still happen

compact niche
# vital steeple also, did using the OnCameraCreated callback solve the issue with the camera tel...

it did not, for whatever reason when changing suits the camera position would get transformed to some odd position no matter what transform I assigned it. So I put together a hotfix as seen here -> https://github.com/darmuh/suitsTerminal/blob/dfd09fc9ba2a722313ca0c97874bb3133c55945f/Terminal Stuff/AdvancedMenu.cs#L394

GitHub

suitsTerminal for Lethal Company. Contribute to darmuh/suitsTerminal development by creating an account on GitHub.

#

basically from the user perspective the camera flickers when choosing a suit and then resets position to the default starting position (not changing the zoom level)

compact niche
dense dune
vital steeple
#

yeah, if you're not appending to the array it can be unused

dense dune
#

Today it happened regardless lol

vital steeple
#

as in when you emoted it would display someone else's cosmetics?

dense dune
#

and when SuitsTerminal updated today the duplication being hidden just stopped being hidden while not emoting lol

#

It's a longstanding issue that @golden kindle has needed to fix, I think this just gives more reason for him to finally fix it

compact niche
#

if you could explain how I can append the lambda directly to the event without visual studio throwing me errors I can try that lol

#

ok nvm im dumb, i fixed 2/3 of those errors

#

only issue I still have is the lambda at line 98

vital steeple
#

the function is an alternative for the lambda, they both can be converted to the delegate

#

you're returning a lambda from your function that returns an array

#

you want to do either a lambda passed directly to the OnRenderersToHideChanged event, or a function reference passed there instead, not both

golden kindle
# dense dune It's a longstanding issue that <@139243578504249344> has needed to fix, I think ...

I had this working in one of my previous updates, and I could not reproduce it no matter how hard I tried lol. I'm not really sure why the issue comes up again when other mods apply the patch, at least that's what I think is causing it for you guys?

I definitely do not have as much time as I used to. I'm currently prioritizing game breaking bugs, but I honestly want to look into this when I'm not so busy with work ๐Ÿ˜ฆ

dense dune
#

You can probably find the issue with MRAPI, OBC, and SuitsTerminal

#

I got a lot of respect for you and I know you'll fix it when you can

#

^^

vital steeple
#

also, it's worth noting that the terminal's keyboard is not a child of the terminal script's object, so you would have to get that separately

#

you can find it with UnityExplorer, it's in the parent of the terminal script

#

Terminal.003 iirc

compact niche
#

ahhh gotcha

#

yeah that plays much nicer

compact niche
dense dune
#

@vital steeple Any plans to add the fox to PathfindingLagFix? I notice it seems to cause lag when moving around quite a bit and it likes to throw errors

vital steeple
#

what kind of errors? and I haven't noticed that lag yet, but if it's the same sort of issue then it's likely I will

dense dune
#

[05:29:59.8024448] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
BushWolfEnemy.Update () (at <5d9e37d270a145d8b8da189629d118bc>:IL_007bf)

#

it spams this

vital steeple
#

if it's happening in Update(), then it's likely zeekers will fix that soon enough

#

I don't intend to fix bugs before the beta is over

#

as far as the lag, if it's the same thing, then it's been a long-standing issue and is unlikely to be fixed, so that's different

dense dune
#

Ye

vital steeple
#

if you have an idea of when this lag occurs, though, that would be helpful

#

there are a number of places where it was possible for choosing a path to take longer than the frame budget for previous enemies, but in practice there were only a few culprits

dense dune
vital steeple
#

hmm, I haven't noticed that yet

#

summit is the moon? maybe it has a ton of nodes

dense dune
#

Possible

dense dune
#

@vital steeple Is it possible you could implement a fix somehow for the External Cam Monitor and Internal Cam Monitors duplicating the main display when setting the External and Internal cams as disabled with Lethal Pipe Removal? Sometimes it's like OBC kicks in properly and fixes it but 99.9% of the time the Main display gets duplicated

#

When it works properly it looks like this XD

vital steeple
#

hmm

#

the main display as in the map screen?

dense dune
#

Routing

#

Map

#

Lol

vital steeple
#

does Lethal Pipe Removal duplicate it by default when no other mods are included?

dense dune
#

It might

vital steeple
#

because OBC only cares about what's on that right monitor, so it seems very strange for it to do that

#

it may be caused by inconsistent execution order of patches, but it's hard to say

dense dune
#

That would make the most sense tbh

spice rampart
#

Had the same problem, i remember sending a print in Ship Windows thread once

vital steeple
#

if they wanted to disable the screens, though, I would tend to say they should use the screen off material instead of copying the material from the map screen

#

but @dense dune if you make a GitHub issue for this, it'll help remind me to take a look, I haven't been actively modding for a bit

dense dune
vital steeple
#

except making a mod for my friends to make the ||cruiser steering recenter gradually||

dense dune
vital steeple
spice rampart
#

Also, quick question, why/how does OBC uses volumetric material even through i tried to disable it on HDLC perceive

dense dune
vital steeple
#

I just use the gameplay camera's settings, I'm not sure what you mean

spice rampart
#

I have a low end pc that can't handle volumetric material and keeps spamming on the console and lagging my game when the game renders it, HDLC has some magic that allows me to disable all volumetric material by disabling the fog, but for some reason the OBC keeps spamming "hardware not supported for volumetric materials" on the console when i'm looking to the big monitor on the ship

#

It doesn't spam when i'm looking away or out of the ship

#

And i thought it was weird, idk why it does that

#

So i keep the camera disabled on my side and enabled on my friends side

vital steeple
#

I'd have to check what they do with the camera settings specifically, but I think if they run their patches before I create the OBC camera, then it should work

#

which setting specifically fixes your problem for the gameplay camera?

spice rampart
#

ok, i'm felling dumb rn

#

i tested this not too long ago

#

like a week ago

vital steeple
#

wait how do you mean? what's dumb?

spice rampart
#

and now i was going to get the error in the console and give you

#

but it isn't happening...

#

but i didn't add many mods this week, there's only one mod that i added that "fixes" things...

dense dune
# spice rampart

Yeah that fixes Transpilers having inconsistent behavior, it's gonna be a dependency for Lethal Performance tomorrow

spice rampart
#

well, it indeed fixed something i didn't expect XD

#

or maybe i'm dumb and the problem still exists but my console decided to not cooperate with me today

dense dune
#

Yeah I think on top of fixing Harmony issues it also updates the version of Harmony to BepInEx 5.4.22's I believe it uses that as a base so there's some benefits there as well even though 5.4.22 was a minor update

vital steeple
#

well, as far as the disabling of the volumetrics, OpenBodyCams is set up to copy the relevant settings from the gameplay camera, so it definitely should be working. It even seems like HDLC does it before my code runs, so I don't know why it wouldn't work

dense dune
#

@vital steeple Just out of curiousity which of these sounds the best to you? I almost wonder if Inactive would be better than Renderer

vital steeple
#

I would tend to say inactive, but it may depend on the object

#

tbh I think it would be nice if this option didn't exist and it just did one configuration that works for what people need, but barring that, inactive is what I would choose if I were you

dense dune
#

๐Ÿ‘

dense dune
#

Idk why OBC is touching the Terminal anyways I don't have PIP enabled

vital steeple
#

it prefixes the terminal methods regardless, but it's not supposed to do anything if the option isn't enabled

#

do you have a profile code? and what are you typing in?

dense dune
#

I got off and it couldn't be interacted with anymore

#

Haven't been able to repro it though

vital steeple
#

I don't really see how it's possible for this to occur unless you changed the options in-game

#

obviously it is, but I don't know if some other mod is screwing something up

#

oh wait

#

lmao I think I have a pretty good guess what's causing this

#

or at least the symptom

#

I think someone is calling LoadNewNode(null)

#

which judging by that stack trace, is TerminalStuff

#

I'll put out a quick patch to handle this case, but I feel like other mods might make the same assumption that the node is not null

dense dune
#

Yeah I guess we'll see

grizzled relic
#

I've reported this here, and in the BunkbedRevive post

spice rampart
#

hey Zaggy

#

TwoRadarMaps and TeleportDecline doesn't work together

#

just leaving the note here so i don't forget

fallow anchor
#

I was wondering if the tp command might've been causing it but it isn't

spice rampart
#

Idk which mods are causing, i just disabled TRM and it worked ๐Ÿ’€

fallow anchor
#

My case was disabling ButteryFixes and it worked, it's just strange that standalone ButteryFixes doesn't have a problem with it

#

Cause I started off with any mods in my pack that does affect the teleporter, which in my case was GeneralImprovements and TwoRadarMaps

#

Neither of which caused it for me as I incrementally re-added back mods

vital steeple
spice rampart
#

not exactly, i misinterpreted, it seems that is more than 2 mods conflicting, as Violet stated with ButteryFixes, TwoRadarMaps and TeleportDecline

vital steeple
#

right, but what exactly happens and how can I reproduce it?

distant leaf
#

Get Teleported with TeleportDecline installed. There will be no popup and hold H doesn't do anything

#

I also noticed this issue in my pack, but I have no idea the cause (I haven't tried to narrow it down yet)

vital steeple
#

as long as it's confirmed that those three mods together are all it takes to repro, I could take a look later

fallow anchor
#

I found it, the issue is involved with 4 mods, not 3 in my case

#

In my case it's when you mix GeneralImprovements, TwoRadarMap, ButteryFixes, and TeleportDecline

Disabling any of the 3 that isn't TeleportDecline makes it work again

spice rampart
#

i didn't have GeneralImprovements, but i have many others in my modpack

#

so it's possible that another mod may cause it too

fallow anchor
#

I'll get logs compiled and stuff like that but here's the most barebones mod list I was able to conjure up to reproduce this issue:
(It's safe to edit configs for stuff like TwoRadarMaps's tp command & disabling one of the two FireExitFixes)

BepInEx-BepInExPack-5.4.2100
ShaosilGaming-GeneralImprovements-1.3.6
ButteryStancakes-ButteryFixes-1.6.0
Zaggy1024-TwoRadarMaps-1.4.1
Rune580-LethalCompany_InputUtils-0.7.7
MasterAli2-TeleportDecline-0.1.0
grim crane
#

whatโ€™s the difference between this mod and helmet cameras?

spice rampart
#

this one is supported and compatible

fallow anchor
spice rampart
spice rampart
#

i removed TeleportDecline for other reasons

fallow anchor
#

Gotcha

spice rampart
#

mainly because it desynced sometimes the radar, made the items drops even through the player didn't teleport and the player was immune to maskeds

fallow anchor
#

Oof, even with those issues I'm ok with shouldering that since well...

#

Let's just say the other person that commonly mans the terminal has had a fair few times of erroneously TPing someone that was perfectly fine in the scenario

spice rampart
#

well

#

i've had some problems with TPing when didn't need, but it was mainly because of lack of communication

#

so i'm fine with disabling that mod

silk quest
#

Any one looking for a modder

fallow anchor
#

Don't think this is the right place to ask such a question lols

fallow anchor
#

@vital steeple Okay so apologies for a ping out of nowhere but I've bumped into some rather complicated issue involving your mod.

There appears to be an incompatibility with the TeleportDecline mod that shows up when multiple mods are mixed together, in my case it's with ButteryFixes, TwoRadarMaps, and GeneralImprovements. The incompatibility causes TeleportDecline to no longer work. The fix seems to be just disabling one of the 3 mods I listed above that are mixed together.

I did these steps:

  1. Boot up the game and select a save
  2. Obtain a teleporter and interact with it (either via the button or if applicable, TwoRadarMaps's "tp" command is fine)
  3. See if a popup occurs that tells you to hit H to decline the teleport

I'll have multiple subsequent posts include logs that showcase this issue and label them accordingly, but here's the list of mods that I had for the profile when I tested:

BepInEx-BepInExPack-5.4.2100
ShaosilGaming-GeneralImprovements-1.3.6
ButteryStancakes-ButteryFixes-1.6.0
Zaggy1024-TwoRadarMaps-1.4.1
Rune580-LethalCompany_InputUtils-0.7.7
MasterAli2-TeleportDecline-0.1.0

Config edits doesn't seem to influence the outcome of this issue

vital steeple
#

just to confirm, you are sure you've tested with the button, not using the tp command, and it exhibited the issue the same?

fallow anchor
#

Both exhibited the same issue as shown in the footage

#

But yeah, as you can see I tested with both the button and the "tp" command

#

I'm gonna spend a bit to forward the info over to Buttery and Shaosil as well

#

Actually, would it just be easier to ping them here as well? . < .

dense dune
vital steeple
steel saddle
vital steeple
#

if ButteryFixes' GitHub is up to date, it doesn't even patch ShipTeleporter, so I have no clue why removing that mod would make things start functioning

#

also, TwoRadarMaps doesn't patch beamUpPlayer, GeneralImprovements is the only one that does

#

I'm wondering if this is a BepInEx bug, but updating it to the latest from GitHub didn't do anything

#

@crude parrot @meager shore not sure if Violet sent this to you yet, but I would welcome your input on #1199570032196333648 message

I'm a bit lost as to what could be causing this at the moment, and given that TeleportDecline's prefix isn't called I'm not sure where to go from here

#

I do kind of wonder if all our patches are taking effect other than that one

crude parrot
#

the only patch i have for the teleporter is this

meager shore
#

You've confirmed disabling one of the other 3 mods also allows the decline popup to show?

#

That's bizarre

vital steeple
#

yeah, disabling any one mod makes it work

vital steeple
crude parrot
#

oh i had to open my project file and i completely forgot woopsy

vital steeple
#

oh I see lol

crude parrot
#

also i just remembered i dont even patch the teleporter

#

i patched the ragdoll code

vital steeple
#

yeah, I thought you must not, since it doesn't show up searching on GitHub

crude parrot
#
[HarmonyPatch(typeof(DeadBodyInfo), nameof(DeadBodyInfo.SetRagdollPositionSafely))]
[HarmonyPostfix]
static void PostSetRagdollPositionSafely(DeadBodyInfo __instance, Vector3 newPosition)
{
    if (__instance.grabBodyObject != null && StartOfRound.Instance.shipInnerRoomBounds.bounds.Contains(newPosition))
    {
        if (!__instance.grabBodyObject.isInElevator && !__instance.grabBodyObject.isInShipRoom)
            StartOfRound.Instance.currentShipItemCount++;
        __instance.grabBodyObject.isInElevator = true;
        __instance.grabBodyObject.isInShipRoom = true;
        RoundManager.Instance.CollectNewScrapForThisRound(__instance.grabBodyObject);
    }
}
#

setragdollpositionsafely is called when you warp a body into the ship

#

so this just collects bodies when you teleport them

vital steeple
#

gotcha

#

I think that is called from within beamUpPlayer, so it shouldn't be relevant

#

then again, nothing in TwoRadarMaps seems like it should be either, so no clue what's gone wrong

#

looks like the GeneralImprovements beamUpPlayer transpiler applies correctly, and the TwoRadarMaps RPC transpilers also

vital steeple
#

@fallow anchor I think it would be good for you to bring this issue up with the TeleportDecline dev to see if they can find a workaround, I'm not sure what sort of interaction is causing it but reworking the patch to ShipTeleporter may help

beamUpPlayer() is an iterator method, so if I had to guess, using an enumerator transpiler like GeneralImprovements does might help, though obviously that's a bit trickier to accomplish

#

hopefully the author knows how enumerator methods work, or can figure it out using ILSpy with its "Decompile enumerators (yield return)" option disabled

#

essentially the idea is they would want to find the instruction that this switch statement jumps to in the IL code when <>1__state is 0:

#

then they can insert their code there, and hopefully BepInEx won't disappear it that way

#

https://github.com/BepInEx/HarmonyX/issues/55
it may be caused by this issue, but then the only mod that should actually be causing it to happen in GeneralImprovements, and I'm not sure why the combination of the three seems to be required

GitHub

Example code to be patched: class C { IEnumerator FirstEnumerator() { yield return SecondEnumerator(); } static IEnumerator SecondEnumerator() { yield break; } } Example plugin: [BepInPlugin("...

fallow anchor
fallow anchor
#

Ok sent the info over to Ali (dev of TeleportDecline), linked the discussion from today regarding the issue to them as well

meager shore
zealous sleet
#

The only explanation is either the patch dosent patch or the if statment at the start of the patch dosent get triggered

#

I havent looked at the sources of the other mods yet

#

So the mods conflict resulting the change of target player or local player instance

#

I did see 2 maps did patch the press button server rpc might be that

#

I dont have access to my pc but the possibilities are the following

#
  1. Target player or localplayer gets changed
  2. The patch dosent apply due to bug with harmony
  3. The patched command dosent get executed
#

Mostlikly the number 3

#

I dont have access to my pc rn so i cant do much but il try.

zealous sleet
#

If you guys have time create a mod that transpiles beamup (without it doing anything) to see if its a problem with harmony

vital steeple
vital steeple
#

I used UnityExplorer to hook into your hook method and it was never called

vital steeple
zealous sleet
#

Biggest concern shuld be why when these 3 mods are together they create a problem

meager shore
zealous sleet
#

is this a valid transpiler?

[HarmonyPatch(typeof(ShipTeleporter), "beamUpPlayer")]
[HarmonyTranspiler]
static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
{
    return instructions;
}
zealous sleet
#
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using System.Collections.Generic;
namespace TestTrans
{
    [BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
    public class TestTrans : BaseUnityPlugin
    {
        public static TestTrans Instance { get; private set; } = null!;
        internal new static ManualLogSource Logger { get; private set; } = null!;
        internal static Harmony? Harmony { get; set; }
        private void Awake()
        {
            Logger = base.Logger;
            Instance = this;
            Patch();
            Logger.LogInfo($"{MyPluginInfo.PLUGIN_GUID} v{MyPluginInfo.PLUGIN_VERSION} has loaded!");
        }

        internal static void Patch()
        {
            Harmony ??= new Harmony(MyPluginInfo.PLUGIN_GUID);
            Logger.LogDebug("Patching...");
            Harmony.CreateAndPatchAll(typeof(TestTrans));
            Logger.LogDebug("Finished patching!");
        }
        [HarmonyTranspiler]
        [HarmonyPatch(typeof(ShipTeleporter), nameof(ShipTeleporter.beamUpPlayer))]
        public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
        {
            return instructions;
        }
    }
}
zealous sleet
#

i could try to mke beamUpplayer use a transpiler rather than a prefix

light aurora
#

๐Ÿค”

vital steeple
#

without that, as I understand it, the transpiler will cause no issues

zealous sleet
vital steeple
#

to reproduce the issue, or to implement your patch in TeleportDecline?

zealous sleet
#

Im proritising the perfix to try and fix the issue

vital steeple
#

I'll be interested to see if that works, you should try lowest and highest both to see if either helps

#

I have a feeling that it won't matter though

#

the enumerator transpiler definitely should work

vital steeple
#

hmmm, looks like using an enumerator transpiler alongside TeleportDecline doesn't actually break it in and of itself

#

very weird

zealous sleet
#
[HarmonyPatch(typeof(ShipTeleporter), "beamUpPlayer")]
[HarmonyPrefix]
[HarmonyPriority(6942069)]
static void beamUpPlayerPrefix(ShipTeleporter __instance)
{
    if (StartOfRound.Instance.mapScreen.targetedPlayer == StartOfRound.Instance.localPlayerController && !StartOfRound.Instance.localPlayerController.isPlayerDead)
    {
        string[] keys = TeleportDeclineInputClass.instance.DeclineKey.GetBindingDisplayString().Split("|");
        HUDManager.Instance.DisplayTip("Teleporting!", "Press " + keys[0] + "to stop teleport");
        TeleportDeclineBase.instance.isTeleporting = true;
    }
}

this dosent work

#

dosent work with 0 priority

#

dosent even work with postfix.

#

I blame harmonyX

light aurora
#
[HarmonyPatch(typeof(ShipTeleporter), "beamUpPlayer", MethodType.Enumerator)]
[HarmonyPrefix]
static void beamUpPlayerPrefix(ShipTeleporter __instance)
{
    if (!TeleportDeclineBase.instance.isTeleporting && StartOfRound.Instance.mapScreen.targetedPlayer == StartOfRound.Instance.localPlayerController && !StartOfRound.Instance.localPlayerController.isPlayerDead)
    {
        string[] keys = TeleportDeclineInputClass.instance.DeclineKey.GetBindingDisplayString().Split("|");
        HUDManager.Instance.DisplayTip("Teleporting!", "Press " + keys[0] + "to stop teleport");
        TeleportDeclineBase.instance.isTeleporting = true;
    }
}

Try this

light aurora
#

๐Ÿ™‚

zealous sleet
light aurora
#

cannot test it

zealous sleet
#

ok

zealous sleet
#

github desktop refuses to open i cant update the mod

vital steeple
#

note that that version will execute at the start of the enumerator method and after every yield return, so you may want to do something to prevent it spamming several tip popups and/or getting stuck with the teleporting flag true

#

that's why I suggested using a transpiler for this

#

the key there is the MethodType parameter

#

if you open ILSpy and disable decompiling enumerator methods, you can see what the method is actually doing

zealous sleet
vital steeple
#

that may be because it doesn't allow multiple tip popups to be queued

#

point isn't that the multiple tip popups would necessarily be a problem, but I don't know that the tracking of whether someone is teleporting is going to be accurate with that

#

up to you, though

zealous sleet
#

i mean by the time that the first popup finished the corountine finished so it can only break with a game update, but it may not be the best thing for performance

vital steeple
#

@meager pagoda re #1200144261333659729 message:

do you have a profile code and steps I can use to try to reproduce the issue? I assume it requires two players at least, but if you know whether it will happen consistently if I do something particular, that should help greatly

#

I wouldn't tend to expect it to be able to teleport two players at once unless another mod is messing with the ship teleporters

#

could it perhaps be related to #1180739684654121091 message?

meager pagoda
# vital steeple could it perhaps be related to https://discord.com/channels/1168655651455639582/...

I'm pretty sure it is related. As I mentioned, I was using darmuh's Terminal Stuff's cams while teleporting. I switched up the commands and it seems that darmuh has a built-in compatibility on his end, although that has uncovered another issue with LC_Vega's teleport command as it desyncs the monitor and sometimes leads to the monitor to become unresponsive, specifically while using all 3 mods at once, haven't tried mixing it up yet

vital steeple
#

hmm, well keep me posted if there's anything I may need to do on my end

#

it does sound like the issues lie with those mods from what I can infer

dense dune
#

Looks like V60 changed something with the Bracken

vital steeple
#

oh interesting

dense dune
#

PathfindingLagFix threw a fit

vital steeple
#

do we have a diff yet?

dense dune
#

Nope

#

I think @glossy island is asleep unfortunately

vital steeple
#

NODDERS well I'll try to take a look at that tomorrow

dense dune
#

Yeah I suppose for now it's best to disable PathfindingLagFix

#

Looks like it just dies

dense dune
#

Looks like PathfindingLagFix is able to be deprecated

vital steeple
#

eeenteresting

#

that would be cool

#

I hope it's the blanket fix that I wish I could make instead of targeted at those specific AI

dense dune
#

Me too

formal sinew
vital steeple
#

not yet, just don't use it for now

formal sinew
#

#modding-general message

#

this is what albino said about it

#

so maybe pathfinding is no longer needed, but centipede is

vital steeple
#

looks like the fix for pathfinding lag is... only kinda complete

#

I was hoping zeekers just turned all of the methods that do multiple pathfinds into enumerators, or at least used the new functionality for all of them, but it looks like that's not the case

tribal crypt
#

I'm not sure this is a BodyCam issue or what, but with BodyCam enabled we are getting the "An error occurred" trying to join eachother. Disabling BodyCams solves the issue and I went thru all our mods 1 by 1 to narrow it down. The only error message in console is a connection rejected message. If you need the exact text I can get it for you.

tribal crypt
#

v61

vital steeple
#

ah, sure

#

well, logs from both host and client would possibly be helpful, but I haven't gotten to testing it yet

formal sinew
vital steeple
#

do not use that mod

formal sinew
#

oh alright. so youll like update urs or something

vital steeple
#

#modding-general message

#

I will, yes

vital steeple
#

for the initial update, I think I'll have it continue using my original patch for the snare flea, but hopefully I can also make it work with the new system without too much work

#

ah damn, nope, I can't make it work with the new system lol

#

zeekers didn't make it work with the offset parameter to make snare fleas go an arbitrary distance from the main entrance

#

unfortunate

#

oh boy, looks like there's gonna be a bit of null reference spam in vanilla if a Bracken's pathfinding operation takes too long never mind, that's old code

latent palm
vital steeple
#

PathfindingLagFix update is going out now

vital steeple
vital steeple
#

has anyone noticed any issues with TwoRadarMaps yet since the update?

vital steeple
tribal crypt
tribal crypt
#

We are unable to recreate the issue with OBC. The working theory is that another mod updated and caused a funky interaction. Now that more mods have updated, and we have no surviving log files from the issue, it is likely that this issue is undiagnosable. I'm sorry for wasting your time.

vital steeple
#

no worries, glad to hear that it's resolved itself

#

things are undoubtedly going to be in flux for a bit with such a significant update

patent scarab
#

Glad to say OBC have been working great for us. Only issues we get are when SCP Plague Doctor kills someone their Cams go green, others are fine though. Once alive you their OBC works again. Not a major concern. Just gives away there's a Plague Doctor running around tbh

vital steeple
#

hmm, what does the plague doctor do to players when it kills them? and could you link the mod?

raven arrow
#

#1243808011223437324

#

idk what it does code wise but i think you could compare it to masked in a sense

patent scarab
#

It turns the player into a zombie enemy. It's different from mimics.

#

Can't teleport them either like with mimics.

vital steeple
#

Looks like the issue is mostly on that mod's side, I'm assuming that the radar doesn't follow these zombies any more than the body cam does?

patent scarab
celest horizon
#

I launched bodycam after a long time, and the camera did not turn on :ั

#

default settings @vital steeple

#

I havenโ€™t gotten to GeneralImprovements yet, Iโ€™m afraid I might ruin everything there ๐Ÿ˜‚

vital steeple
#

probably because you have LethalLib installed, if you upgrade an existing install it would show a tip telling you about it becoming a ship upgrade

#

if you buy the body cam in the store, it'll show

celest horizon
#

oh, even so confused

#

interesting

vital steeple
#

I had been suggested to add some text to the screen that notifies people they can buy body cams, but I forgor about it

#

I'd been in maintenance mode for a while

celest horizon
#

Is there a setting in the config to make it active right away?

#

just replaced the screen on the right with bodycam

vital steeple
#

indeed there is

#

ShipUpgrade.Enabled

vital steeple
#

not sure if anyone has noticed it yet, but during some testing on Grand Armory, I noticed that I get a lag spike with the bracken still, which is due to me removing the PathfindingLagFix patch for pathing away from the main entrance

#

my mistake on that one, I forgot there were two patches for the bracken, so I'll have to bring that back real quick

#

it'd be nice if I could use the new async system for this too, but unfortunately it's not really designed in a way that allows me to just patch it in easily

#

it's extremely statey

#

it would've been so nice if zeekers had just gone the full mile and made every caller of ChooseFarthestNodeFromPosition use it async...... I'm so sad

vital steeple
#

PathfindingLagFix 1.4.0 is up now with the fix for that lag reintroduced

misty tree
#

do i just ignore this? idk what this mean

System.IO.FileNotFoundException: Could not find file "D:\Gale\lethal-company\profiles\SoLethalEssence\BepInEx\plugins\Zaggy1024-OpenBodyCams\openbodycams"
File name: 'D:\Gale\lethal-company\profiles\SoLethalEssence\BepInEx\plugins\Zaggy1024-OpenBodyCams\openbodycams'
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0019e] in <787acc3c9a4c471ba7d971300105af24>:IL_019E 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <787acc3c9a4c471ba7d971300105af24>:IL_0000 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at BepInExFasterLoadAssetBundles.Patcher.LoadAssetBundleFromFileFast (System.String& path) [0x0000b] in ./Patcher.cs:81 
[11:38:36.7990475] [Error  :OpenBodyCams] Failed to load the asset bundle, some features may be missing.```
#

ohh maybe I should go to Diffoz thread

vital steeple
#

might be a Gale issue honestly, idk

#

it's looking at the right path for the bundle, I believe

#

maybe it doesn't like that it's got no extension (iirc)

misty tree
#

ohhh okay, Gale thread then

#

thanks

patent scarab
#

Hey @vital steeple do you know of anyway to produce a better image on the monitor? I normally use RemoveCameraFilter mod, but would rather find a different way to make it look nicer without that mod. I've seen people with it displaying a very clear image.

vital steeple
#

for OpenBodyCams, you can change the emission color to gray or black

vital steeple
#

Looks like me and Shaosil stumbled upon a solution to the volumetric light flickering that would happen on the body cams when they are framerate-limited

#

it caused about a 4% regression in performance with the body cam capped at 70fps on my machine, but I'd say that's worth it given how distracting the flicker is

#

actually, the 4% regression is a lie, looks like it's an across the board improvement

#

fps limiting should now be a viable option to improve game framerates on the ship, it should scale as you would expect in the next update

#

@latent palm

latent palm
#

oh what, that's sick

#

i just wanted a low framerate cap for immersion but better performance is a nice bonus

vital steeple
#

for example, I go from ~193 to ~224 by limiting the body cam to 100fps

latent palm
#

holy, that's awesome

vital steeple
#

ah and I forgot to mention, the fps with a body cam framerate of 100 before setting this flag was was hanging around 198-205

#

so limiting the body cam to half framerate was already improving things a little bit, but this brings it up much higher

vital steeple
#

Version 2.3.0 is uploaded to Thunderstore:

  • Reduced overhead when applying framerate limit to the body cam. There is no longer a downside to setting a framerate limit instead of letting the camera render every frame, and performance will scale as expected.
  • Fixed light flickering that could occur on body cams when their framerate is limited.
  • Added API functionality to track when body cams are created and destroyed.
  • Added an API flag to body cams to determine whether they should be considered wirelessly connected to the ship.
meager shore
#

That's fairly big, nice! For the longest time we assumed it was always better to let the game render instead

vital steeple
#

yeah, I figured the overhead of switching the camera off and on was something out of our control, and I also didn't expect it to be specific to HDRP

#

I'm glad it turned out to be so easy, seems like something that zeekers might want to know about considering that ManualCameraRenderer has unused functionality for limiting framerate

dense dune
#

So @vital steeple What would you recommend to cap the framerate to now? Since I imagine capping it will reduce overhead compared to it always rendering

vital steeple
#

whatever works for you :^)

#

anything under 75% of your fps in the ship is probably going to improve your overall performance, but what you set it to entirely depends on how much performance your particular machine is losing due to the cameras and how much you want to gain back

dense dune
#

Fair

vital steeple
#

what I would do to find out what kind of performance range you have to work with is set the fps limit to 1, then see what fps you get

#

can't get better performance than that, so if it's not a huge difference on your machine then you don't have much reason to change it

#

if it is significant, then you can choose a value somewhere between 1 and your ship fps

dense dune
#

I only ever really notice performance dips in the ship if I use GI's Better Monitors above all else

#

So I'm looking forward to them being optimized lol

vital steeple
#

I'm not sure how much of a difference you'll notice, unless what you're talking about is stutters rather than overall fps reduction

dense dune
#

Stutters yeah

meager shore
#

It's been a long time coming, with lots of encouragement from Zaggy lol. I hope it'll be noticable at least

dense dune
#

I've even tested it

vital steeple
#

I would expect the old version to cause jittery frame times rather than overall low fps

dense dune
#

When I turn the monitors off it's smooth

vital steeple
#

gotcha then I think it'll be pretty significant

#

I'm sure it'll still have slightly variant fps but not nearly as bad as before

dense dune
#

But when on it's not, especially if that door power monitor is updating

#

XD

vital steeple
#

ah yeah

dense dune
#

Tbf I could probably reduce most of the overhead I get from them atm by removing the Time Display and Door Power ones with the current Better Monitors implementation

#

I assume they affect it the most

#

At least for the time being til Shaosil updates it in a few days

dense dune
vital steeple
#

I think the monitors don't update if text doesn't change in the live version

#

maybe I'm misunderstanding you though

meager shore
#

Well, some don't. But in the next update I'm making sure none ever do

vital steeple
#

ah gotcha

#

cool cool

glossy island
# vital steeple cool cool

btw just to let you know, the upcoming update for MoreCompany will break your compatibility for cosmetics (not sure when swipez is gonna release it tho)
The basic summary of changes are:

vital steeple
#

gotcha, I'll look into this today, thanks

dim quest
#

I have OpenBodyCams set to being a purchaseable upgrade for the ship, but for some reason it's not working. Using GI with BetterMonitors.

#

Also tested without BetterMonitors, still had the same result.

vital steeple
#

I'll check if I can reproduce this on my test profile in a bit, but I think it's possible I'll need a profile code

#

GI better monitors did change recently so it's possible someone broke, but besides that I'm pretty sure it was functional last time I ran my test profile with that enabled

dim quest
#

Sure, here's the code I was using: ||0191bb13-4ad5-03d3-6173-97a20da6d1b4||

patent scarab
#

I've been noticing an odd desync happening. When a player dies clients can't see anything on the body cams only host can. Normally not a problem except for when someone is a Mimic cause then the clients will know for sure they are dead. Host still sees body cams of dead players though.

vital steeple
#

dying to a mimic is different than dying, which do you mean?

#

the dying to a mimic thing is a vanilla bug, if you check the radar map at the same time, it doesn't follow the mimic that is spawned either

patent scarab
#

Yeah clients don't see them on the radar either. Only me the host does.

#

It use to work though which is weird.

vital steeple
#

if it worked previously then that was probably some mod fixing the bug

#

iirc it might require some networking to do so, though, so I have never tried myself

#

maybe I'll take another look soon tm though

vital steeple
dim quest
#

Good to know, didn't realize that was a dependency for the ship upgrade.

vital steeple
#

yeah, I thought about implementing it without a dependency, but loading assets just gets very gross so I didn't bother

#

I forget how I wrote the readme, but it should be there somewhere

lilac flare
#

for some reason I'm getting ctd specifically when this mod is turned on

dense dune
#

@vital steeple Dropped item rotations finally got fixed natively

#

You can remove it from OBC

vital steeple
#

oh nice

vital steeple
lilac flare
#

okey

#

tbf its not really ctd its more just nonresponsive have to quit

#

idk why i said ctd

vital steeple
#

could you send a profile code then?

#

it's possible the issue is related to a corrupted save though, I did just find a stack overflow that can happen if the save doesn't load correctly

lyric quail
#

the bodycam is not apearing on the monitor

vital steeple
#

has it worked before recently? do you also have a profile code for me to reproduce this issue on?

vital steeple
#

idc

lyric quail
#

so its a mod conflict

#

it might be GI

vital steeple
#

wait what?

#

you mean you tested an empty profile with just OpenBodyCams?

lyric quail
#

yes

vital steeple
#

do you have the ship upgrade enabled on your big profile?

#

if you have LethalLib and the ship upgrade is enabled, you won't see the bodycam until you buy it

vital steeple
#

then you're gonna have to give me a profile code, my internet will live

lyric quail
#

I'm the owner of it

vital steeple
#

a profile code is more convenient, but that's fine I suppose

#

as long as the configs will all be consistent

lyric quail
#

And you do have to import it as a local mod

vital steeple
#

could you confirm that it happens without Advanced Company for me? I have no idea how to install it and don't really intend to learn

vital steeple
#

because some mods depend on it? can't those also be disabled?

lyric quail
lyric quail
#

I could send logs though

vital steeple
#

that may help

#

how long has OpenBodyCams been part of this pack? it's not clear to me if this is a recent issue

lyric quail
#

but recently I think another mod updated and broke it

#

@vital steeple

vital steeple
#

oh hm, you have DisableCameraOnSmallMonitor enabled? I wonder if the update changed the monitors

#

I hadn't checked that

#

did it start happening after installing v64?

lyric quail
#

I think

#

but it works alone

#

when I go out of the ship this also happens [23:09:19.6686434] [Error :UnityDebuggerAssistant]

--- Exception Handler ---

Exception Caught: System.NullReferenceException
Assembly: OpenBodyCams

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

Message: Object reference not set to an instance of an object
Source: OpenBodyCams

--- Begin Frames ---

--FRAME 1:
In Assembly: OpenBodyCams
Target Method: PatchManualCameraRenderer.MeetsCameraEnabledConditionsPostfix

--FRAME 2:
In Assembly: LethalThings
Source: O:\github\LethalThings\LethalThings\MonoBehaviours\HandheldRadar.cs:38,13
Target Method: HandheldRadar.ManualCameraRenderer_Update

--- End Frames ---

--- End Exception Handler ---

[23:09:19.6701503] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
OpenBodyCams.Patches.PatchManualCameraRenderer.MeetsCameraEnabledConditionsPostfix (ManualCameraRenderer __instance, System.Boolean& __result, GameNetcodeStuff.PlayerControllerB player) (at <a6afc2be41264bdcb132fb8ad4911490>:IL_0057)
(wrapper dynamic-method) ManualCameraRenderer.DMDManualCameraRenderer::MeetsCameraEnabledConditions(ManualCameraRenderer,GameNetcodeStuff.PlayerControllerB)
(wrapper dynamic-method) ManualCameraRenderer.DMDManualCameraRenderer::Update(ManualCameraRenderer)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.TrampolineManualCameraRenderer::Update?-1216414742(ManualCameraRenderer)
LethalThings.MonoBehaviours.HandheldRadar.ManualCameraRenderer_Update (On.ManualCameraRenderer+orig_Update orig, ManualCameraRenderer self) (at O:/github/LethalThings/LethalThings/MonoBehaviours/HandheldRadar.cs:38)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.HookManualCameraRenderer::Update?-343362444(ManualCameraRenderer)

vital steeple
lyric quail
#

I did regenerate the config

#

in the big one

#

and it still did not work

vital steeple
#

hmm, curious

#

the only error I saw in there should have been avoided if DisableCameraOnSmallMonitor was disabled

lyric quail
#

what should I do

vital steeple
#

still trying to figure out what's causing it

#

if you have any idea what mods changed, then it would be helpful if you could try disabling some of htem

vital steeple
#

good lordy, this pack uses 17 gigabytes of RAM?

lyric quail
#

yeah

vital steeple
#

which version of the game are you running with this?

#

I'm seeing a whole lot of spam from CruiserImproved, so I don't think this pack is working too well

#

lots of exception spam that your logs don't seem to have

#

okay...

#

I'm pretty sure you didn't try resetting the config, because turning DisableCameraOnSmallMonitor off does fix this issue

#

your GI config tells it to replace the small monitor, but you're still having OpenBodyCams try to change it

#

I'll make it soft fail though so this doesn't happen again

lyric quail
#

I did delete the bodycam config and regenerate though

vital steeple
#

under the Ship section

#

the default is false, so if you regenerated the config, it definitely should not have stayed true

patent scarab
vital steeple
#

indeed, it's just odd it wasn't in their logs

patent scarab
#

[22:17:36.3293725] [Error : Unity Log] NullReferenceException
Stack trace:
OpenBodyCams.Utilities.ViewPerspective.Restore (GameNetcodeStuff.PlayerControllerB player, OpenBodyCams.Utilities.PlayerModelState state) (at <7a1ca423a97e4df1b689b2449686ffad>:IL_0056)
OpenBodyCams.BodyCamComponent.ResetCameraRendering () (at <7a1ca423a97e4df1b689b2449686ffad>:IL_003F)
OpenBodyCams.BodyCamComponent.BeginAnyCameraRendering (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera camera) (at <7a1ca423a97e4df1b689b2449686ffad>:IL_0000)
UnityEngine.Rendering.RenderPipelineManager.BeginCameraRendering (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera camera) (at <e27997765c1848b09d8073e5d642717a>:IL_000A)
UnityEngine.Rendering.RenderPipeline.BeginCameraRendering (UnityEngine.Rendering.ScriptableRenderContext context, UnityEngine.Camera camera) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.TryCull (UnityEngine.Camera camera, UnityEngine.Rendering.HighDefinition.HDCamera hdCamera, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.HighDefinition.SkyManager skyManager, UnityEngine.Rendering.ScriptableCullingParameters cullingParams, UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset hdrp, UnityEngine.Rendering.HighDefinition.HDRenderPipeline+HDCullingResults& cullingResults) (at <b8abf62aeac646cea5c5cde032ff9314>:IL_005D)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline.PrepareAndCullCamera (UnityEngine.Camera camera, UnityEngine.Experimental.Rendering.XRPass xrPass, System.Boolean cameraRequestedDynamicRes, System.Collections.Generic.List1[T] renderRequests, UnityEngine.Rendering.ScriptableRenderContext renderContext, UnityEngine.Rendering.HighDefinition.HDRenderPipeline+RenderRequest& renderRequest, UnityEngine.CubemapFace cubemapFace) (at <b8abf62aeac646cea5c5cde032ff9314>:IL_0104) UnityEngine.Rendering.HighDefinition.HDRenderPipeline.Render (UnityEngine.Rendering.ScriptableRenderContext renderContext, System.Collections.Generic.List1[T] cameras) (at <b8abf62aeac646cea5c5cde032ff9314>:IL_02B9)
UnityEngine.Rendering.RenderPipeline.InternalRender (UnityEngine.Rendering.ScriptableRenderContext context, System.Collections.Generic.List`1[T] cameras) (at <e27997765c1848b09d8073e5d642717a>:IL_001C)
UnityEngine.Rendering.RenderPipelineManager.DoRenderLoop_Internal (UnityEngine.Rendering.RenderPipelineAsset pipe, System.IntPtr loopPtr, UnityEngine.Object renderRequest) (at <e27997765c1848b09d8073e5d642717a>:IL_0046)

#

This is spamming and just froze my entire game.

vital steeple
#

with 2.3.1 I assume?

#

also, I'm guessing there was probably an error in ViewPerspective.Apply first, a full log would be helpful

#

ah, it's a cosmetics issue it looks like

#

are you able to reproduce the bug, and could you provide a profile code?

patent scarab
#

I can later. Also sorry im streaming right now.

vital steeple
#

Finally got this working after months of thinking about doing it and then like a week of fighting Unity Despairge

steel saddle
#

what is that supposed 2b

vital steeple
#

currently it has a few states it displays, including the one above:

vital steeple
#

I had wanted to do this way back when SourceShard mentioned it, so that people don't get confused after installing OpenBodyCams alongside LethalLib, but it is incredibly difficult to add text to these monitors while supporting GeneralImprovements

steel saddle
#

oh thats neat

vital steeple
#

it would be vastly easier if HDRP supported rendering to transparent render textures with the r11g11b10 color format that LC uses

#

currently, this is limited to one flat color for all of the text unfortunately

steel saddle
#

i sometimes got the side eye recommending this cuz the default is must buy first lol

vital steeple
#

yeah, if I could go back and change the default I probably would

steel saddle
#

more like they think it doesnt work until i explained or when they actually read stuff in the store

vital steeple
#

the poll here had people saying they wanted the ship upgrade but it definitely was confusing to people

#

yeah

#

also works on GI small monitors

#

(I hadn't tested this until just now)

#

legibility not guaranteed

compact niche
#

this may be a me-issue but I was wondering if you've received any reports of static cameras created from OBC having their view angles updated when the player goes to change their suit from the rack? I've noticed this with both mirror cameras in suitsTerminal and terminalstuff (which is why I think it could just be something I'm doing wrong on my end). It's just weird because I cant even tell what exactly is updating when the player equips a suit. The transform position/rotation were not changing from what I could tell trying to debug it from suitsTerminal.

vital steeple
#

hmm, that's curious, it definitely is possible for it to be a me issue

#

I haven't heard anything about that though, I don't know that many people are aware of the compatibility code you use

compact niche
#

Yeah I only noticed messing with a profile tonight that it affects terminalstuff too

vital steeple
#

if you have steps to repro, I can try to find out what's goin on

compact niche
#

yeah one sec i'll give you some steps

vital steeple
#

does it just happen 100% when switching suits?

#

sounds good

compact niche
#

yeah it's basically guaranteed after switching suits

#

let me make sure it happens with as bare a profile as possible

#

ok yeah happens with a profile with the following modlist:

darmuh-darmuhsTerminalStuff
darmuh-OpenLib
BepInEx-BepInExPack
Zaggy1024-OpenBodyCams
x753-More_Suits
ManiaBania-1000_Quota_Stare```
#

was also able to confirm issue is present in a profile without moresuits after buying one of the vanilla ones

#
  1. Launch Game via profile with TerminalStuff & OpenBodyCams
  2. Host a lobby
  3. Move terminal next to suits rack (optional but helps you see it change on suit change)
  4. Type Mirror in terminal (default terminalstuff config should let you keep seeing mirror when you leave terminal)
  5. Equip suit from rack, mirror will now be offset to a new position/rotation
#

before/after

#

again, wouldn't be surprised if it is something wrong with my implementation but would appreciate some help in figuring out why it's happening lol

vital steeple
#

wait, is it looking at another player?

#

does your camera setup follow players or is it locked to the terminal?

compact niche
#

It should be locked to the terminal

#

When I set itโ€™s initial rotation I use the inverse of the playerโ€™s. But after that it is childed to the terminals transform

#

And yeah itโ€™s the same player in both screenshots I just switched from default suit to green suit

vital steeple
#

oh wait, maybe it's the angle of the terminal that's confusing me

#

I assume this isn't the default position

#

@compact niche I think you'd be better off creating a GameObject (can be a child of Terminal) and putting it in the position you want the camera to be, then setting that as the target of the body cam instead of the terminal itself

#

the issue here is that as soon as the target's status changes, it resets the transform to that target transform

#

since the local player changing suits requires the body cam to re-collect cosmetics, I take the lazy approach and trigger the SetTarget code again

#

for me to retain the transform, I'd have to store and then restore the local transform of the camera which is a bit screwy

#

perhaps I should add a callback to get a local position and quaternion for a target though...

#

it is kind of a shame to not allow overriding the position of the camera on radar boosters

compact niche
#

think I should also move my OBC methods to OpenLib so it's standardized between suitsTerminal and Terminalstuff lol

spice rampart
#

That made me remember something, when the player enter a lobby the first thing it appears is "System Online", when the player dies it appears "Life Support: Offline", you could just use Online or Offline to indicate if the player is alive or dead

vital steeple
#

I haven't implemented state to indicate if they're alive in my current prototype, but I can definitely make it an option

#

given that the radar shows dead players as if they're alive, I don't really want to make it easy to tell on the body cam either by default

spice rampart
#

oh ok

vital steeple
spice rampart
vital steeple
#

finally got around to pushing this out:

Version 2.4.0

  • Added an overlay that indicates the reason the body cam is not visible. The supported states are:
    • The ship upgrade is enabled, but the body cam antenna has not been bought yet.
    • The antenna is bought but stored, preventing body cams from being used.
    • The body cam's target is invalid, e.g. when the targeted player has been eaten and has no corpse.
    • The body cam is disabled due to its target being safe on the ship.
  • Fixed the body cam not appearing when the GeneralImprovements option for extra monitors was enabled while the mesh it depends on is disabled.
  • Disabled the body cam view when it is attached to a radar booster in a belt bag to avoid seeing the items stacked in the void.
  • API changes:
    • Added the static BodyCam.MainBodyCam property to get the body cam displayed on the ship monitors.
    • Improved organization of the BodyCamComponent members, moving API to the top and adding comments.
#

The font size should exactly match the moon description, and the font size will appear smaller when placed on the smaller monitors in GeneralImprovements, but with the option to adjust the font size, that should be fixable for those fiddling with configs

#

it also supports rich text in the config if that gives anyone any funky ideas

vital steeple
#

Fairly minor little update, but it does change how the mod initializes upon creating/loading a save, so lemme know if you encounter any issues with that.

Version 2.4.1

  • Hid the overlay when the body cam's screen is powered off.
  • Added an option to set the text displayed when the body cam is rendering normally. This is currently independent of whether a player is living or dead.
  • Switched initialization to use a different hook to (hopefully) avoid broken saves causing the body cam not to function.
plain maple
#

What do you think about having the radar booster camera follow any creatures or players that it sees within a certain distance from it?

#

and maybe a way to control it with the terminal?

dense dune
#

๐Ÿ˜ฆ

dense dune
#

Okay so it wasn't reset, it just seems like the external cam emissive color values are no longer applying

dense dune
#

2.4.0, my external emmissive values are 0.05, 0.08, 0.05

vital steeple
#

is it intended to be blank there?

#

I didn't change anything with the emissive though

dense dune
#

Weird

#

You think it's the initialization change?

#

Cus the emissive definitely is no longer applying

vital steeple
#

oh wait, yeah probably

dense dune
#

Even to the door monitor

vital steeple
#

lemme check into it

#

I was initially thinking of the body cam emissive which definitely shouldn't have been affected, but external cam emissive definitely could have

dense dune
#

Yeah

vital steeple
#

@dense dune hum, looks like it's working in my test profile, could you profile code me?

dense dune
#

Do you think it breaks if ship cam post processing is disabled with GI now?

#

Let me check

vital steeple
#

I wouldn't have expected so

dense dune
#

I wouldn't either but even if I disable LPR it still isn't applying so it's strange lol

vital steeple
#

yeah LethalPipeRemoval shouldn't have done anything by this point afaik

dense dune
#

Okay yeah

#

Not post processing in GI

#

lol

ornate nova
vital steeple
#

there's no stack trace there theinking

#

is that the BepInEx log? do you have something disabled in there?

dense dune
#

Oh hey

#

Maybe this is related?

#

XD

#

That's in my log

#

Weirdly enough

vital steeple
#

interesting... hold on

dense dune
ornate nova
primal tendon
#

Terminal broken for me as well but not the emissive thing

dense dune
primal tendon
#

yeah

dense dune
#

Weird

#

I wonder if it's cus of SuitsTerminal or darmuh's mod somehow

#

lol

primal tendon
#

Terminal? Probably

#

Emissive? No

#

If it is it's a specific config

dense dune
#

I mean

#

Idk what would be messing with the emissive for me

#

lol

#

Maybe VoxxWeathers?

vital steeple
#

it's GI better monitors apparently

#

the camera's mesh is already replaced by the time I'm initializing

#

hopefully a quick fix

dense dune
#

Hopefully you can fix the Terminal too

vital steeple
#

what is it doing to the terminal? you can't enter it?

dense dune
#

Scrolling seems to be broken

vital steeple
#

is that with darmuhs?

dense dune
#

Yeah I have Darmuh's and SuitsTerminal

vital steeple
#

yeah then it's probably because of my postfix

#

same problem

dense dune
#

I also have TerminalFormatter and scrolling was broken on the moons page

#

lol

vital steeple
#

oh yeah it's terminalformatter actually

primal tendon
vital steeple
primal tendon
#

It only seems to be breaking when the extra ones are there

vital steeple
#

theinking that seems very strange

#

I will check that

#

@dense dune is the external camera disabled in this profile?

vital steeple
#

gotcha, I was wondering why there was nothing happening on the screen

#

I believe I have fixed it, but lemme check into what's going on with non-extra monitors

dense dune
#

Haha without LPR it's a slide show cus I capped the fps at 1 for it

#

XD

vital steeple
#

oh god

dense dune
#

More ship fps

vital steeple
#

big

dense dune
#

That monitor also still likes to randomly duplicate if the screen is set to none which is fun

#

XD

vital steeple
#

oh? what do you mean by duplicate?

#

(the screenshot above is just white emissive)

dense dune
#

lol

hallow summit
#

anyone else experience issues with view bodycam not working btw

#

the bodycams themselves work but the actual bodycam never appears on the terminal

#

๐Ÿ˜ญ

vital steeple
#

I shall be fixing them soon

hallow summit
#

oo alr alr

vital steeple
#

I assume you have GeneralImprovements?

hallow summit
#

we have a few custom monitors set up but we don't have the actual setting to add more enabled

vital steeple
#

yeah, it does apear to happen regardless of that setting

hallow summit
#

mmmm alright

#

good to know its not something random in our modpack

dense dune
hallow summit
#

good luck on the fix โ€ผ๏ธ

dense dune
#

He has a habit of doing this

#

๐Ÿคญ

#

At least it's in a much better state than last time though

vital steeple
hallow summit
#

awesome to hear, we'll be using it tomorrow for our next session so it'll be awesome LOL

vital steeple
#

it's going out now as 2.4.2

vital steeple
dense dune
#

Yeah

vital steeple
#

just the issue with OBC 2.3.1 where GI was lying about whether the better monitors were present, but I have an easy enough workaround

dense dune
#

It's not like last time where we had issues like the teleporter causing that bug where the ui would glitch out and stuff

#

lol

vital steeple
#

oh boy, I may have missed the part about the UI