#Cull Factory: Stops rendering faraway rooms

1 messages Β· Page 7 of 1

austere stirrup
#

it seems like something may be teleporting the items for the first frame they're held theinking

jovial hearth
#

i first thought its related to the custom models because they are holding items in a realy janky way but on my other test profile i tried this and it wasnt it

#

also its weird how its only indoors

#

and not outside

austere stirrup
#

yeah, I suppose that could have been related, but it does seem a bit more unlikely

#

oh, didn't you show a video of it happening when you went outside before?

jovial hearth
#

no

#

the other way around

#

xd

#

the thing realy is that cullfactory alone doesnt cause this

#

and as mentioned yesterday i tried for over an hour combining cullfactory with some of my mods and never got to figuring out what exactly it is

#

no wait it does happen now on my test profile

#

my mods are trolling me again

#

i think its LethalFixes

#

LethalFixes + Cullfactory

#

but only these 2 mods doesnt cause it again

#

but it caused it when i added LethalFixes into my other mods

#

i just found the most insane cash regi ive ever seen on experimentation

austere stirrup
narrow bone
jovial hearth
#

im just double checking to make sure im not going crazy

#

now it doesnt do it anymore

austere stirrup
#

if you use a set seed it might be more consistent

#

CullFactory lets you set it

#

I get it 100% with that first seed you got in your video

jovial hearth
#

0192578b-5422-52a5-3f94-223e4be67730

#

it feels so random now tho, on my main profile it happens every day literally but here it seems more random

#

62347331

#

i tried using just 1 as seed but it didnt wanna do it there

#

also it does work with 2 pro flashlights

#

well its only getting more confusing

#

it only seems to work with scrap that actualy spawns on that day

#

ok so

#

it only happens to things that spawn during that day, if i use a flashlight from the day befor it doesnt do it, if i order new flashlights again it does it again

#

if i bring in scrap from the day befor it doesnt do it

#

if i get scrap from that day it does it again

#

ill give up for today

#

it was fun playing a little solo without godmode tho lol, usualy i just fly around with hamunii's devtools and godmode when im testing stuff

austere stirrup
#

I have a little bit of a lead on the issue now, it seems as though there's some frame rendering going on before I expect it to

#

actually, might've been a red herring

austere stirrup
narrow bone
#

Would it?

#

Your video shows the item disappearing while you're holding it

#

U turn around and it goes invisible while holding it

austere stirrup
#

oh? wait, which timestamp?

#

the issue I observed was with switching items while wearing a model replacement

#

I've confirmed that that one is caused by the model replacement just now

narrow bone
#

I think

#

They were carrying some items in big lootroom

#

I would try yo find it exactly but I'm in class rn with data

austere stirrup
#

hm, I think I found where you were talking about and it seems to be also the item swapping, from what I could tell anyway

#

but yeah no worries

narrow bone
#

Ah okay I must've missed it then

austere stirrup
#

I figured out a fix (that I had hoped I wouldn't have to bring back lol), so I should be able to get an update out in a moment

narrow bone
#

Looool

willow ember
#

Had a thing where I just fell through the map

#

but the rest of the runs were fine before and past that

austere stirrup
#

if you saw errors from CullFactory, that's the only way it could be caused by this mod

#

and if that's the case, please provide logs

willow ember
#

The whole log? Im not sure where to look out for

#

I was playing with friends, since cullfactory is client sided, and I went through the fire exit on Offense and after I entered I just started falling

#

My friends weren't experincing it seems

#

they were walking around an entirely different factory interior

#

And host was Vanilla

austere stirrup
austere stirrup
ornate star
willow ember
north kraken
#

It bugs me when I see people still jump to the conclusion of "It must be loadstone!!!"

willow ember
#

Ive had a positive experience with loadstone

#

it doenst break my discord everytime moon loads

#

and i can get tot titan without crashing

north kraken
#

Yeah some people just still seem to assume that loadstone causes this issue, when usually it's moon or interior related I remember when Tolian's moons used to cause this

willow ember
#

well the host is vanilla im using some client sided stuff

north kraken
#

That could be why

willow ember
#

since me and my friends might play soon i will send the log

north kraken
#

One of your mods may not be properly client sided

#

Also the host should also be using Loadstone

#

bound to be issues if you have it and noone else does

ornate star
#

there used to be a bug where if the host wasn't using loadstone

#

your seed would eventually desync from theirs

north kraken
#

Lol

ornate star
#

sorry, i didn't see it before

north kraken
#

The mod page even says everyone should be using it

#

It warns about it

#

So in this case it's purely user error

ornate star
#

it's only tagged as "client-side" on thunderstore tho

north kraken
willow ember
jovial hearth
#

when are you gonna update cullfactory for the invisible items btw

austere stirrup
#

huh.. I actually tried to upload it and thought it would be up by now

#

I'll upload again later today

frozen cairn
#

After playing on 1.4.1 for a few hours with my group I don't seem to be getting invisible items at all, other than piggy's revolver, so that's an improvement

jovial hearth
#

i dont think 1.4.1 even was the fix

austere stirrup
#

it wasn't the fix for the model replacements, no

austere stirrup
#

@jovial hearth the update should be available soon if it worked properly this time, let me know if you don't see it after a couple hours

#

it's appearing on the versions page on the store at least

jovial hearth
#

yes i saw it in the releases channel

#

should pop up in gale soon

sharp surge
#

@austere stirrup Now there seems to be a new issue lol. Its easilly fixable in game. When going outside all items you are holding will be visable in your hands. By scrolling through all items it seems to fix it. Lot better than the invisible issue at least lol.

jovial hearth
#

i havent payed any attention to that today but i havent noticed this atleast

#

ill check in a moment if i have it too

sharp surge
#

I think it happened more on Seichi after the Cullfactory update.

jovial hearth
#

mh i dont even have that moon

jovial hearth
#

on vanilla moons i dont have the issue atleast

austere stirrup
#

CullFactory controls item visibility independently of how they are hidden when they are in the player inventory

sharp surge
#

its on custom moons I believe.

#

It started happening after cull factory updated.

#

the invisible item bug stops but now that happens. I'll try to look for errors.

austere stirrup
#

and it was only CullFactory that updated?

#

if it happens consistently when you leave the interior on any particular moons, I can try a repro on your code

sharp surge
#

01926464-e071-8336-aa02-d09cf45f8015

#

Yeah I believe it was just cull factory update.

frozen cairn
north kraken
#

Is CullFactory even really necessary anymore? After all the bugs and issues as of late I'm tempted to remove it 😦 mods constantly being broken gives me some burn out

austere stirrup
#

it's only necessary if you have issues with performance, I'm not going to tell you that you have to keep it

austere stirrup
north kraken
#

It happens with ShipInventory sometimes, I notice items that pop out of it are invisible

#

I've also seen the Maneater be invisible if it escapes with EnemyEscape

#

I thought that might have been an EnemyEscape issue but doesn't it register as scrap while a baby?

#

So could be CullFactory

north kraken
austere stirrup
#

yeah, that's understandable

#

if this isn't a simple fix I'll start that experimental version on Thunderstore, otherwise I'll do it next thing

#

I've been quite distracted from my mods lately working on Black Mesa

sharp surge
#

Zaggy were you able to reproduce that issue?

jovial hearth
#

Is it related to just seichi? I wasn't able to on Wesley's moons

austere stirrup
austere stirrup
#

got repro with your pack, it doesn't happen with my testing profile

north kraken
austere stirrup
#

oh, I haven't looked at ShipInventory, hopefully they're not doing something weird with items...

#

I'm gonna stick with the profile with repro for now, but I was able to repro just going to Ass and grabbing 4 scrap

#

I don't think it's dependent on moon or anything

#

my guess would be someone is calling EnableItemMeshes() when the player leaves the interior

north kraken
#

Probably cus I've not had issues on Assurance with my pack

austere stirrup
#

(as I mentioned before, CullFactory does not use this method, so it doesn't affect whether the meshes are enabled through that)

sharp surge
#

So it's a different mod interference with cull factory?

#

@austere stirrup

#

Or is it just something else entirely?

austere stirrup
#

I believe it's unrelated

#

I'll investigate further in a bit, but I don't see anything in the log that indicates that this hsould be happening

#
  at MonoMod.Utils.DynamicMethodDefinition.NativeDetour_Wrapper<UnityEngine.Renderer::set_enabled>?9 (UnityEngine.Renderer , System.Boolean ) [0x00000] in <6733e342b5b549bba815373898724469>:IL_0000
  at MysteryDice.Patches.EntranceTeleportPatch.FixRenderer () [0x00000] in <67407ba05a354e039a426673291587ef>:IL_0000

perhaps it is this

north kraken
#

@sharp surge which version of Emergency Dice are you using?

#

og or Updated?

sharp surge
#

Son of a.....I thought he fixed that. I use the updated version and have thought he got that fixed.

sharp surge
#

I'll test with it disabled.
@quaint raven
Your dice be breaking again.

quaint raven
sharp surge
austere stirrup
#

oh god

#

that was a workaround for CullFactory?? it wouldn't have even done anything lol

#

and.... it looks like the offending function was in your mod before anything broke in CullFactory?

quaint raven
#

I added it a week or so ago to fix some weird rendering issue with the dice, I am not 100% sure what caused it tbh

austere stirrup
#

interesting theinking

#

github doesn't seem to be up to date so I had to go into decomp to find the function, but it looks like it goes back all the way to the 2nd at the latest

#

CullFactory updated on the 3rd

quaint raven
jovial hearth
#

It feels so bad to poke zaggy like every 2 days for some cull factory issue lol

#

Especially because it works so well in vanilla and it's just other mods that cause issues

crude fog
#

Zaggy is really good about doing things the right way so I'm not surprised it's never his fault lol

austere stirrup
#

oh it definitely is sometimes lol

#

but this time the description of the issue made it fairly clear to me that it wouldn't be

jovial hearth
#

I feel like cull factory is just a very fragile mod that gets broken easily and very noticable

austere stirrup
#

when it comes to the item stuff, yeah

#

mostly because items aren't designed to be tracked like CullFactory does

#

there's way too many variables with all the mods out there

#

it's reliable when mods work as expected though, which I wasn't entirely sure could be the case, so I'm not too bothered

#

once I set up the experimental, hopefully pre-testing releases will prevent me from breaking things so often

cold inlet
#

just today, i started noticing sunlight pouring in through the ceilings of dungeon interiors, but sometimes only partway through a day and not consistently. could cullfactory be doing that, or do you think its something else?

jovial hearth
#

Have you tried playing with cull factory disabled?

crude fog
austere stirrup
cold inlet
cold inlet
remote crystal
#

CullFactory has now become an approved mod for competitive high quota runs. YIPPEE

hearty escarp
#

Found an issue with @eager stag's Shopping Cart.
If you have items with the Shopping cart (and I assume the other scrap storage mods) and you leave the facility, all the items that are inside the shopping cart will disappear until the items inside are dropped

austere stirrup
austere stirrup
#

(note that calling the vanilla method itself does nothing to CullFactory's item culling, but it activates a hook in CullFactory to update its information)

remote crystal
austere stirrup
#

that's really cool! I'll have to check out some information about these, it's pretty intriguing

eager stag
#

What do I need to do to include through the entrance that isn't Update()?

austere stirrup
#

not sure what you mean, but what I'm suggesting is just that you loop over every item in the shopping cart when it teleports in/out of the interior and call EnableItemMeshes on them

#

without that, CullFactory (probably) doesn't really have any way to know that you've teleported them

eager stag
#

So patching EntranceTeleport.TeleportPlayerClientRpc, check if container and do that.

#

While also fixing the problem with items depositted not being considered inside/outside correclty.

austere stirrup
#

yeah, that would probably do it

eager stag
#

Cool.

austere stirrup
eager stag
#

It's done then.

austere stirrup
#

if enemies can carry the item, then you may want to also hook SetEnemyOutside and check if the enemy is holding your item via parentObject.GetComponentInParent<EnemyAI>()

hearty escarp
#

great to know both mods are getting a compat :]

eager stag
#

I really stopped caring about enemies when baboons don't really care whether its grababble or not.

austere stirrup
#

huh, I didn't realize that was the case, that sucks

eager stag
#

Hmm, still makes them invisible.

#

Oh no, hold on.

#

There was a typo.

#

It has been a while since I transpiled arrays in.

#

Yeah, it works now.

austere stirrup
#

nice, glad to hear it!

narrow bone
eager stag
#

No

#

Only hoarding bug does.

narrow bone
# eager stag There was a typo.

Back when I was testing cull factory compat for the exact same problem, I accidently tested the profile without cullfactory 3 times in a row

austere stirrup
#

oh even better, I missed that flag so I thought you were only referring to grabbable

narrow bone
austere stirrup
#

that's ridiculous lmao

eager stag
narrow bone
#

Lool

eager stag
#

Plus there's two teleport methods.

austere stirrup
#

while I have two developers here, I'd be interested to hear if the Developer Information section I added to the readme here is comprehensible enough

I added some info about the item culling there

#

although come to think of it, I didn't really make it clear what the paragraphs are trying to address lol

#

at least not when you're glancing at the first sentence

eager stag
#

When you mean teleporting.

#

You mean both teleporter and entrance or just teleporter?

#

It seems only teleporter.

austere stirrup
#

I mean the entrance teleporter mainly, but my hooks catch the ship's teleporter as well

#

I'll add that to the bullet point

eager stag
#

Well

#

I guess it doesn't specify it includes having items carry other items.

#

But I assume it works with the belt.

austere stirrup
#

it does, because the belt disables/enables item physics when moving items in and out

#

(covered by the "Dropped" bullet point)

eager stag
#

Yeah, I can't do that if I want people be able to remove stuff from it.

austere stirrup
#

I didn't think disabling item physics prevented the items from being picked up, does it?

eager stag
#

Last I checked, it did.
I could be wrong.

#

I do remember some mesh shenanigans

#

Not sure if it toggled off colliders.

austere stirrup
#

it does toggle colliders, but it's not supposed to do so for the interact trigger

eager stag
#

Well

#

If the collider for the interact is off...

austere stirrup
#

what I meant is that it only disables them if they're not tagged as interact triggers

#

but it doesn't solve the teleporting problem anyway, so no big deal

#

physics regions or whatever else you may be using is also totally fine I'm sure

eager stag
#

Parenting works, yeah

austere stirrup
#

Very minor update going out to prevent culling issues on UT99 CIDOM Metro

#

(CullFactory will now default to using tile-sized portals on that interior to prevent tile visibility issues)

trail kayak
austere stirrup
#

@north kraken @sharp surge I was being nosy searching to see if anyone was posting recently about CullFactory issues and noticed you two discussed some item culling issues, would either of you be able to provide clips of those if they continue to happen?

#

I wasn't aware that there were still issues, especially if they occur when moving in/out of the interior through normal means

sharp surge
austere stirrup
#

ahh, I see, then that should be resolved soon hopefully

#

thankfully someone notified me of that yesterday

#

or I guess it may have been as a result of observing the issue in your pack, come to think of it, they were in your conversation lol

#

but I hope that I haven't put anyone off of reporting such issues, I want to make sure that using CullFactory is indistinguishable from vanilla wherever possible

narrow bone
#

@austere stirrup you said when you use your light check you check for if they're inside tiles or under a certain y value?

#

because i have a hazard that, while very rarely is outside the interior's bounds (cuz i reposition it to be somewhat central in a room), has a small chance of doing that and it contains lights and a lot of visual effect stuff

austere stirrup
# narrow bone <@193574164639121409> you said when you use your light check you check for if th...

it doesn't care about y value

if the light doesn't cast shadows, it should be made visible any frame that it influences a visible tile

if it does cast shadows and it doesn't pass through occluders, it will be considered to be within the tile that it is within the exact bounds of, otherwise it will fall back to checking against the bounds that encompass all the renderers within each tile with an arbitrary range limit (to allow the mineshaft entrance to work). when it determines the tile to start from, the light will be visible if that light has line of sight from that tile to a visible tile.

#

hopefully that answers whether you're good with your effects, but lemme know if you foresee issues

north kraken
austere stirrup
#

nah, mines aren't affected by CullFactory at all

#

if you use UnityExplorer freecam with culling enabled, you'll see mines blinking in empty space

north kraken
#

What would cause them to desync like that then?

austere stirrup
#

not sure, that seems very odd

#

I assume you mean that the host (you?) set it off, and a client could still see the mine in the world?

#

did they try stepping on it? lol

north kraken
#

I never set it off, pretty sure the locker that spawned did

#

lol

austere stirrup
#

oh, you mean fair hazards mod or whatever it is?

north kraken
#

Don't have that

austere stirrup
#

thonk how it blow up to locker then

north kraken
#

I think the Locker can just set them off when it triggers an explosion near them

#

It did explode a doorway

austere stirrup
#

ohh

#

sure

#

that does change things

#

yeah

#

explosions triggering mines is completely client-sided, so it's likely that Locker isn't triggering that explosion on all clients

#

or else it's triggering it at the position of the entity which may be in a different position on different clients

#

I would tend to say it's a good idea to transmit the coordinates of the spawned explosion to avoid this

narrow bone
#

it doesnt cast shadows, im not 100% sure if its considered a light since its vfx and im not sure how this is gonna be with cullfactory

austere stirrup
#

if it doesn't cast shadows, it definitely seems like it should be fine, but I'll take a look

austere stirrup
#

@north kraken this issue with LobbyImprovements, is it causing any errors during startup that you can see?

#

hum

#

not sure how it could break it, any idea if I can repro this fairly easily in a smaller profile?

#

if you use UnityExplorer freecam you can see whether the culling is working pretty easily

#

I'll look in a bit but if you're able to confirm that would be helpful

#

currently going through like 40 commits in OpenBodyCams for the changelog lol

north kraken
#

I would test trying Slaughterhouse with it's dependencies and CullFactory, adding Flicker and putting it gauranteed on there, then adding LobbyImprovements, I got really bad lag before

#

that went away when I disabled LobbyImprovements

austere stirrup
#

flicker?

#

is that a map?

north kraken
#

It's a moon by DemonMae yeah

austere stirrup
#

gotcha

north kraken
#

Was really good for testing the interior on

austere stirrup
#

well, it'll be a bit until I can test that, so if you're able to confirm those steps work that would be awesome

#

but I'll check it when I can

north kraken
#

Cus Nikki thought the issue may have been light source related

austere stirrup
#

oh? does the moon have a lot of lights or something?

north kraken
#

It has some lights outside yeah

#

But yeah I can no longer repro the issues with performance

#

run order issue sounds likely though

#

cus I remember testing disabling CullFactory and the lag was just as bad

austere stirrup
#

uh oh

#

did you have a seed set? it may be seed-dependent then

#

gotta remove variables to make sure you're not just getting unlucky when you switch your mods

#

but if you suspect that CullFactory isn't culling, I would suggest testing with UnityExplorer installed so you can use its freecam

north kraken
#

Nah I reprod the lag with LI present every time

#

I can't repro it anymore after removing it

austere stirrup
#

oh, I see

north kraken
#

I had disabled CullFactory while LobbyImprovements was still present and reprod the same lag, which led me to suspect something was causing problems

austere stirrup
#

right, then the easiest way to confirm if it's just CullFactory not working is to use the freecam with LobbyImprovements installed

#

if it's working, you should only see rooms visible to your player

north kraken
#

Can do that with Imperium no?

#

I think Imperium works for it

#

Hmmmm, this was with LI

#

Without

#

I need the same seed lol

austere stirrup
austere stirrup
#

it's really hard to tell with the fog though lol

#

I see some floating doors in the top right, though, I think

#

discord really compressed it to hell

north kraken
#

Yeah it's working, I dunno why it's so laggy if LobbyImprovements is present

austere stirrup
#

so is this reproducible with just the mods you mentioned? I can try to profile it

north kraken
#

It should be yes, you'd likely need to make sure MoreCompany is present as well though most likely

#

I went through disabling so many mods and reenabling them in my pack before I finally isolated LobbyImprovements lol

austere stirrup
#

I'm not asking if it should be, it isn't that hard to test with a fresh profile

#

I don't want to create a profile, install all those mods, do like 5 runs looking for this lag only to find out that it doesn't occur with that set of mods

#

it's a waste of my time, when I already have lots of things I have planned already

#

if you have mods you suspect, and it reproduces 100% of the time, it's pretty easy to determine if a theoretical minimal test case works

#

for example, I've had a prototype of the HL2 barnacle sitting around in a project just waiting for me to do something with it since I've been working on RuntimeIcons and OpenBodyCams πŸ˜…

#

I'd really like to get that finished up instead of spending more time going on bug chases

north kraken
#

Well I can't really repro this on a small profile so there's definitely something it isn't playing nicely with, I still wonder if it could be one of DiFFoZ's mods potentially

#

Actually I am stupid

#

I forgot to put the interior on Flicker

#

lol

#

time to test this again

#

Yeah it won't repro, so some there is some interesting incompat somewhere

#

fun

#

Either that, or the issue only compounds in a larger pack

austere stirrup
#

might be good to see if you can profile with dotTrace if pinning down the cause proves difficult still

#

#1284254300570390570 message

here's where Xu explained it, you will have to download dotTrace and activate a free trial though

north kraken
austere stirrup
#

hmm, that definitely could be

#

still, if it's only occurring when you include that one mod in particular, the profile would tell us where to look for the issue

#

and not only that, but you can more easily provide information about other performance issues

#

although obviously for a limited time when it comes to dotTrace, unfortunately

north kraken
#

@austere stirrup it is definitely a compounding issue

#

As downgrading the mod fixes the problem

austere stirrup
#

down to 1.0.4?

north kraken
#

Yeah

#

1.0.4 is fine

#

So it's something with the changes in 1.0.5 and 1.0.6

austere stirrup
#

oh, 1.0.6 isn't in the changelog

north kraken
#

I think he posted the change for that in the mod thread

#

It fixes an index out of bounds error

austere stirrup
#

gotcha, then it's likely 1.0.5

#

can't see any version numbers in the git log though so idk where to start

#

probably gotta take it to him (if you haven't already)

north kraken
#

Yeah I told him

hexed turtle
#

Cuz all I really did in that change was adding support for session tickets (which wouldn't even be used in Lunxara's case noting they tested in singleplayer). Nothing in LI even does anything mid-game (except from stuff on the pause menu but that's not new)

#

And the rest of the changes were either for the lobby hosting menu or the lobby list so it makes no sense at all πŸ€·β€β™‚οΈ

austere stirrup
hexed turtle
#

Haven't tried yet, fell asleep and only just woke up lol

austere stirrup
#

mood lol

#

hopefully you're able to repro, without that it will be incredibly difficult to solve I imagine

hexed turtle
#

Yeah it's a really weird one tbh

austere stirrup
#

are your commits granular and able to build? if you can repro and bisect hopefully that'll make it easier to find the culprit

hexed turtle
#

Kinda, kinda not

#

Anyway I'm gonna get up and have a look into this πŸ˜‚

austere stirrup
#

good luck, perhaps if it comes to it I can help lend an eye later

hexed turtle
#

I get a bunch of lag whilst loading into the moon but performance seems normal after it's loaded, just checking with an FPS counter rn

austere stirrup
#

uh oh

hexed turtle
#

but im actually just confused still

hexed turtle
austere stirrup
#

is anything you instantiate there living past the main menu somehow?

#

that's a lot of code, hard to say what could be causing it πŸ˜…

narrow bone
#

I wonder if profiling points out exactly which part of something newly instantiated is a problem Think

#

I know it could go into specifics with functions but I havent seen whether it can look into stuff instantiated in said methods

hexed turtle
#

so logically it shouldn't be living past the main menu

austere stirrup
#

so hopefully that would do it

hexed turtle
#

the fps didn't seem different with/without LI in the lobby and with other interiors so I don't know why it's an issue with that one interior

north kraken
#

All I can guess

north kraken
hexed turtle
#

all that's in the Awake is the UI creation for the main menu

north kraken
#

So maybe there's a bug where the main menu stuff is somehow always being rendered?

hexed turtle
#

i already checked if the object existed in-game and it didnt

#

plus if it did then it'd be an issue for the entire time in the lobby

north kraken
#

@austere stirrup So a client had an issue with items they dropped on the Elevator inside of Grand Armory turning invisible for them

#

Unreproduceable by the host, but I'd assume a CullFactory bug

austere stirrup
#

interesting

#

that's easy enough to check, but seems likely there's some other factor

north kraken
austere stirrup
#

if it doesn't cause errors specifically on the methods called when dropping items, I wouldn't have expected that to be a problem, but who knows

austere stirrup
#

can't reproduce the issue in a minimal profile, so perhaps there's other mods factoring in

#

lemme know if you find anything else out

#

I assume that the person that dropped it there wasn't using any unusual method of carrying the item?

north kraken
#

Nope they shouldn't have been, unless you consider LGU's upgrade for carrying extra 2 handed items to cause it possibly?

austere stirrup
#

I wouldn't think that would be relevant, unless LGU has some real spaghetti code going on

#

can't say I've ever looked, but I would imagine it just expands the inventory slots

north kraken
#

I know it uses a ton of transpilers but nah no spaghetti I don't believe

#

XD

austere stirrup
#

yeah if it uses transpilers it seems likely that it would use a normal method of expanding it

eager stag
#

LGU doesn't mess with inventory slots.

austere stirrup
#

ohhh I might've misinterpreted what Lunxara said then

#

reading it again, I'm guessing that was supposed to mean being able to pocket two-handed items?

#

I highly doubt that patching the game to allow that would cause any issues in CullFactory

eager stag
#

Yeah, it just adds a counter of two-handed to handle wether or not to toggle the two-handed thing on.

tulip wave
#

While i was trying to fix the Lily-Utilities (one of my mod) incompatibility issues i noticed that regardless if you hold the item and you TP out of the dungeon bounds the item rendering is disabled. could you fix this by adding a check to tell it that, if the item is in a player's inventory, it should still be rendered?

austere stirrup
#

if you call TeleportPlayer (or something that calls it), CullFactory will know that the player has teleported, otherwise it has no clue and can do nothing to keep track of the items you're teleporting by proxy

#

making items visible in the hand isn't really a very good solution, as then I have to expand my code to keep track of the player's inventory as well

tulip wave
#

I understand if you only teleport the item, but when you have it in your inventory it seems strange to me that I have to GrabbableObject.EnableItemMeshes(True) in my mod to make it reappear

austere stirrup
#

?? you don't have to call that if you are teleporting the player properly, that's what I was trying to say!

#

if you show me the code, I can point you in the right direction, but without that, I can only say... that is not something I am interested in implementing

tulip wave
austere stirrup
#

okay, now I'm even more confused

#

what function?

tulip wave
#

sorry i replied to the wrong message

austere stirrup
#

it definitely should detect the items' new locations if you use that method, so if you have a build that uses that so that I can test it, I can find out why that would not be working

#

(without calling EnableItemMeshes() or anything similar)

tulip wave
#

just go in the facility and use the item

austere stirrup
#

every teleport to or from the cloned dungeon refreshes the item and it remains visible

#

I do have local changes to CullFactory, so I'll have to check the live version, but I don't think they should affect this

tulip wave
#

ok, regardless if the problem was Culling or mine it doesn't matter too much since I managed to get the same result

austere stirrup
#

yeah fair enough

#

anywho it's working in the live version too

#

so either it was a conflict or your code changed from the one you tested that in

#

just wanted to make sure it wasn't a bug on my side

#

I should note though, the cloned interior won't be culled, and I'm not sure if there's a way for me to cull it even if I work out multi-dungeon stuff since cloning it doesn't really run any event that I can rely on afaik

In general, the performance impact of cloning the interior shouldn't be too bad unless some mod makes the render distance long enough to actually render it, but for some interiors that have lots of animators (i.e. on lights), it might cause a little bit of extra overhead that would probably be best avoided

tulip wave
#

but as I said before it doesn't make a difference to me because I have already solved all the problems I was having

#

however I think that the cloned dungeon, being that it is at -5000 -5000 -5000, is not even rendered by default

austere stirrup
#

indeed, it shouldn't be, as I mentioned wrt the render distance/far plane

#

however, a lot of moon mods like to increase the far plane over what it is in vanilla, in which case it may render

#

having issues with the CullFactory components makes sense, one way to avoid that would be to clone the interior sooner, since CullFactory waits until all spawning finishes, including items and SpawnSyncedObjects, which I didn't see getting cloned in your mod

tulip wave
austere stirrup
#

indeed, that's probably after CullFactory has initialized

tulip wave
sharp surge
#

So noticed that when items spawned with emergency dice Cull Factory makes them invisible until picked up. Ran into it while testing Black Mesa. Would this be Dice problem or Cull problem?

austere stirrup
#

most likely a dice problem, but I would have to check what's going on there

#

do you have a code and seed convenient? I could see if I can repro

drowsy comet
#

items spawned with emergency dice

#

as in an effect from the dice

#

I assume

austere stirrup
#

indeed, I know

#

as I understand it, it only has a chance of spawning an item, so hopefully with a seed it will spawn that item and let me reproduce the problem

drowsy comet
#

makes sense

sharp surge
#

There is a debug menu that let's you chooses which event to trigger.

#

It's easy to reproduce

hardy stratus
#

@glass juniper Ive got an compatibility issue for invisible items and CullFactory
Basically i have an item and i want it to be temporary invisible to players when spawning inside the facility with EnableItemMeshes(false). But when i want it to be visible again, doing EnableItemMeshes(true) while CullFactory is installed will not work
Do you have an idea on that? And if something can be fixed?

#

or maybe i should ping @austere stirrup ? im not sure

austere stirrup
hardy stratus
#

Ok

austere stirrup
#

(finally) pushing out a fix for the above issue with ChillaxScraps in CullFactory 1.6.0

as usual, item culling fixes may be volatile, so lemme know if you have any issues

I gave it a pretty good test so hopefully all is well 🀞

#

I've also changed the names of some properties in CameraCullingOptions, in case anyone is using those (not sure if even Imperium does yet, though it seems like it would be good for it to)

north kraken
#

@sharp surge

sharp surge
#

Oh nice!

hardy stratus
#

Thanks for the fix!

hardy stratus
#

@austere stirrup im sorry i think i found another issue πŸ˜‚

#

small issue

#

when playing the ocarina and if the ocarina effect is valid it's supposed to play small particles around the instrument to show the player that the effect is going to work (because all effects have different use conditions). These particles have small light sources attached to them but when playing the ocarina inside the dungeon with CullFactory installed the lights are not showing (its particle but without lights)

austere stirrup
hardy stratus
#

let me check

#

i assigned a normal light to the system
this light is a child of the ocarina and its disabled by default because it's supposed to only be used by the particles

austere stirrup
#

hmm, how do I get the particles to appear? I'm playing the ocarina but it only plays a sound and I don't seem to see any particles

#

ah never mind, I just switched the song

#

any idea if this is a regression or if it's been like this before my latest change?

hardy stratus
austere stirrup
#

last update as in the one before 1.6.0 I assume

hardy stratus
hardy stratus
austere stirrup
#

hmm, this seems like it's gonna be trickier to solve than I initially thought

#

there is a possible workaround though

#

I think it should work if you leave the light enabled but set the range to 0, then turn on "scale affects range"

hardy stratus
#

hmhmm

austere stirrup
#

an option on the particle system's light component

#

it means that larger particles have a larger range

hardy stratus
#

ah size affects range

#

already have it on

austere stirrup
#

gotcha

#

looks like I can't set range to 0 though actually, hold on

#

I swear I have a light that's set up kinda like that

hardy stratus
#

a

austere stirrup
#

okay never mind, I misremembered

#

this is tricky, I'll have to do some investigating to see if I can find these particle lights

hardy stratus
#

oh ok

austere stirrup
#

worst case maybe I just ignore lights that are emitted from particle systems, but that's not ideal

hardy stratus
#

why is cull factory touching particle system is the first place btw?

austere stirrup
#

if anyone creates dynamic particle lights with shadows it would be beneficial to cull those, but unfortunately the lights that particle systems create live in some kind of weird limbo

#

it's not touching the particle system, it's touching the light that your particle system is instantiating

austere stirrup
#

it's not considered visible when it is inactive/disabled

hardy stratus
#

so thats why

#

cause my light is disabled

austere stirrup
#

it's much easier to just cull all lights including disabled ones, rather than hooking into Light.OnEnable() to detect when they become enabled

#

I suppose I could add it to the visible set if it's disabled though..

#

but then if the light-emitting particles pass through a wall or portal it will probably not display the lights

hardy stratus
#

hmm idk what to tell you lol

austere stirrup
#

just thinking out loud

#

I'm checking if there's API to access the current lights in the world

ripe crane
#

@austere stirrup whats the issue here out of curiousity?

austere stirrup
#

particle systems have a module that attaches lights to particles, but they don't really actually exist in the scene as far as I can tell (although this doesn't matter so much)

CullFactory gets all the dynamic lights it can in the scene, including ones that are children of items, so that it can cull ones that are emitting light that cannot be seen. This includes ones that are disabled (currently), which particle emitter lights are intended to be so that they only become visible when they are instantiated by the particle system. Therefore, CullFactory makes the "prefab" light (which does exist as a child of the item) invisible via cullingMask, and when it is instantiated the particle system doesn't revert that, so it remains invisible.

#

it doesn't appear there's an API to get the lights instantiated by the particle system, so I may have to make a new component that I attach to the light prefabs of particle systems' light modules, so that I can be aware when one is instantiated (this should work, since HDAdditionalLightData also has to exist on the instantiated lights)

#

the alternative is that I consider all disabled lights to be visible in my culler, which would work but would mean that when particles' visibility according to CullFactory changes, the lights won't be made visible as they aren't considered by the culler at all

hardy stratus
#

HDAdditionalData does exist yeah

ripe crane
austere stirrup
#

for items, GetComponentsInChildren<Light>()

ripe crane
#

i think this is similar to how terrain does it's trees (i'm overlapping in some of your general usecases here in doscompany aha)

i think they might be hideanddon'tsave flagged or something?

austere stirrup
#

I would believe that

#

I've inspected them before but I forget what flags they had

ripe crane
#

I know for the trees on terrain i cannot find them via searching in scene, and i can't find them by resources.loadalloftype before the scene exists but i can find them via resources.loadalloftype after the scene exists

austere stirrup
#

gotcha

#

I'm not sure if that helps me, since filtering a FindObjectsOfTypeAll<Light>() would take a long time

ripe crane
#

also making a generic system that handles meshrenderers, particle renderers and terrains is fucking annoying

austere stirrup
#

but it is interesting at least

#

I believe it

#

the easiest solution by far is for me to just consider disabled lights to be visible, so I might just do that for now

#

it matches how the tile lights are handled anyway

#

since culling is done per-frame, there shouldn't be any perf penalty

ripe crane
#

i forget can u patch properties

austere stirrup
#

hmm?

#

are you asking if you can?

ripe crane
#

the native call on lightsmodule is middlemanned by a property

austere stirrup
#

oh I see

#

I suppose I probably would need to consider if it changes, fun

#

yeah I'm not getting into that rn if I can avoid it lmao

ripe crane
#

oh actually theres a couple more

austere stirrup
#

couple more relevant properties?

ripe crane
#

another here too

#

... why the fuck does ES3 support particle modules

austere stirrup
#

kek idk ES3 supports a lot of stuff that seems unnecessary

#

I found out not too long ago about how the save files are encrypted as well as compressed

#

the only reason I can think that would be relevant to a game like this is to protect cloud saves, but I would imagine Steam has its own protections for that

ripe crane
#

thread says it shouldn't work but maybe does

austere stirrup
#

oh that's funny

#

I wonder if that's useful Hmm possibly for your use case I suppose, but I'm unsure about mine

ripe crane
#

def interesting for me.

for you means you can possibly iterate through objects abit faster?

austere stirrup
#

ah right, true

#

I think I still kinda need to associate the particle lights back to their item for them to be properly culled though, so probably a component is the best answer I have

#

kinda frustrating that ParticleSystem doesn't have any way to get the lights

#

not too surprising though

#

@hardy stratus pushing out the quick fix for this in 1.6.1

hardy stratus
#

Nice thxπŸ‘

hardy stratus
#

just tested 1.6.1 and yep it works fine

austere stirrup
#

glad to hear

hardy stratus
#

finally no more invisibility things πŸ™Œ

austere stirrup
#

pushed out an update that should hopefully disable culling on Hadal, since that interior breaks every assumption that CullFactory makes

#

it can always be forced on again, but I wouldn't recommend it as you'll probably see some tiles popping in and out

#

I may at some point try to add support for a visibility radius for certain interiors, but it would be a bit of a pain

primal musk
#

Had this happen lmao

austere stirrup
#

that one is a bit odd

#

unless there were tiles colliding

#

were you in an end cap there?

primal musk
austere stirrup
#

at the top?

#

(I think Tolian put in a very tall elevator iirc, but I haven't been able to check out the released version yet)

primal musk
austere stirrup
#

ah, then that is probably Tolian's goof tbh

#

but either way, you won't see that anymore πŸ˜…

primal musk
#

Voices of the Void ahh glitch

austere stirrup
#

I just discovered that a large cost of having a bunch of manticoils (and/or probably tulip snakes) running around is that their animators are not frustum-culled

now I am in a debate with myself about whether to change their culling mode in CullFactory or in PathfindingLagFix

#

thus far, CullFactory hasn't touched enemies at all, but obviously it's in the name so maybe that makes the most sense

#

plus in CullFactory, I can perhaps be smarter about which animators can be culled (i.e. making all surface enemies not animate when in the interior)

it could also probably get away with culling their renderers, though that would probably not be useful for performance in vanilla

#

but on the other hand, I'm lazy, and making CullFactory do all that is a lot of work

#

I guess I'm inclined to say that it should be CullFactory due to the extra knowledge it has

ripe crane
#

why isn't the setting on the animator not working right?

austere stirrup
#

it's not set to

#

they always animate

ripe crane
#

is there a notable con in just setting it in both

austere stirrup
#

well.. not really I suppose, unless there is a bug caused by it that means people have to find the setting in both

#

I would tend to say it's nicer to only do in one place but it wouldn't really cause issues in theory

#

especially for manticoils since they are purely cosmetic

#

tricky part is if enemies use their animators to move their colliders, then I don't want to cull them if they are within a certain distance of the local player

#

that's why I tend to think it would be nice to implement a proper custom culling system into CullFactory instead of just enabling CullCompletely

#

although I can probably do that for tulip snakes and manticoils to start

ripe crane
#

is that a thing thats happening

austere stirrup
#

maybe later

ripe crane
#

well for now you can just check if they apply root motion

austere stirrup
#

oh I think they might

#

nvm they don't Saved

#

the manticoils do fly up in their animations but I'm not sure if it affects the line of sight checks

#

ah damn, it probably does

#

wait..... manticoil has two animators.....

#

no wonder they show up in the profile for animation processing

austere stirrup
#

Added Zeranos to the internal culling blacklist, as CullFactory has no easy way to support it at the moment.

hearty escarp
#

@fleet cosmos there is a moon blacklist, it was added on Zeranos

#

idk if it's the Zeranos interior

hearty escarp
fleet cosmos
austere stirrup
#

ah right

#

yeah there isn't a moon blacklist yet, I need to work on that

#

for both zeranos and that moon

#

unfortunately there isn't really a way to fix that currently except toggling it when you land on that moon

orchid jetty
#

oh weird

#

is the interior like

#

tilted

austere stirrup
#

yeah the generation root is rotated

orchid jetty
#

that's pretty funny

austere stirrup
#

risky business imo but I guess DunGen seems fine with it

orchid jetty
#

i suppose that goofs up the AABB stuff

austere stirrup
#

yeah

#

I don't currently rotate them, I would have to convert the portals to cubes and then back

austere stirrup
#

having a look at the culling issues on Prominence and I forgot the biggest issue with this thing, it makes it a bit more difficult and therefore slower to figure out which tile you're within

#

portals work largely fine, but without using oriented bounding boxes to find where the camera is, it's never gonna be correct

#

and making oriented bounding boxes means I have to rewrite how I generate the tile bounds, and also do more complex calculations every frame

#

I will be adding it to a blacklist shortly though

orchid jetty
#

i wonder if instead of tilting the interior if there'd be an easy way to apply a tilt to the camera

#

on prominence's side, i mean

austere stirrup
#

if the entire interior was within a player physics region maybe

#

except you still get world gravity so it would only tilt the player's perspective and not their gravity

#

(I think)

#

certainly would be preferable to do it that way though imo

#

possibly more invasive, not sure what else it might break

#

I guess it's a choice between breaking assumptions in DunGen and breaking assumptions in other mods

austere stirrup
#

just pushed 1.7.0, adding a moon blacklist that blocks culling on Zeranos and Prominence using the built-in list

#

hopefully it will fully prevent culling from activating on Zeranos even if a custom interior spawns, so that there are no culling bugs due to the interior being connected to the exterior

orchid jetty
#

i can already sort of guess what the answer might be

#

but is there a way cullfactory can fix cave tile LODs in the vanilla mineshafts without drastically impacting performance

#

it's not that uncommon to get cave generation where you can see out of the map because a tile gets culled super far away (but still in your sightline)

#

seed 29636975 demonstrates this pretty clearly on dine (you might need to force mineshaft, but I believe I have no other mods affecting generation)

#

there is a massive straight cavern that basically spans the entire length of the interior

#

super immersion breaking :p

austere stirrup
#

hum, that's what the disable lod culling option is supposed to do

#

I assume you haven't disabled that, maybe I need to revisit it if that's not working for you

#

lod culling is pretty pointless when CullFactory is there to properly determine visibility

orchid jetty
#

could be wrong but i wanna say i've recently seen the stairs culling issue it mentions in the description as well

#

but that's just anecdotal and probably shouldn't be trusted unless you find evidence to support that'd be the case

#

it's definitely not working for cave tiles, though - as of right now

austere stirrup
#

very curious, good to know

austere stirrup
#

looks like it's working properly in my profile

#

I'm assuming what you were seeing was a sizeable hole, the LODs do show small gaps sometimes but that doesn't sound like what you were describing

#

perhaps there's some sort of conflict going on

orchid jetty
#

give me just a moment

orchid jetty
#

hmm yeah. it doesn't replicate for me on a "bare minimum profile" (i added bettersaves and imperium and dependencies, nothing else except cullfactory)

#

weird

#

no idea what it could be then but i suppose it's not in your wheelhouse to fix, at least

austere stirrup
#

yea, I'd be curious what is screwing with that though and how

#

oh wait

#

I wonder if I need to do something with loadstone thonk

#

I wouldn't think so, since it is at least aware of the rooms, but I haven't ever looked closely at any possible issues there

orchid jetty
#

possibly?

#

i've been using loadstone for a looong time

#

i disabled it for about a week and don't remember if that helped with the issue in caverns

#

and at this point im back to using it again

fleet cosmos
#

anyone know what settings in cullfactory to use to reduce pop in
primarily for stuff like foliage

austere stirrup
#

CullFactory doesn't affect outdoor geometry

#

except items

#

nothing in the config should affect foliage LOD pop

fleet cosmos
weak moth
#

like it unrenders the entire outside when indoors

#

id imagine a big performance boost but what do i know

austere stirrup
#

I would have to test if that's worthwhile first, I have a feeling it won't be particularly useful unless Unity's frustum culling is especially inefficient

weak moth
#

well you neva know

#

i mean all the volumetric fog at surface right? that can be culled?

oak plover
#

Currently it just culls the scrap items in the ship if they are out of line of sight? That's already a big benefit?

austere stirrup
austere stirrup
weak moth
formal osprey
#

Sometimes it’s like when they’re 5 feet away

fleet cosmos
#

and on some modded moons bushes and grass

formal osprey
#

Yeah exactly. I’ve never been able to find anything to fix this/edit it

fleet cosmos
formal osprey
#

Damn

#

Actually it looks like they released a patch for it in a separate mod today. I’m gonna check it out

random ridge
#

@austere stirrup hello! πŸ‘‹ just a smallllllll request, so as of my interiors new update, it gets obliterated by cull factory! i think i know why, but the way i set up my interior theres not a lot i can do off the top of my head to fix it, so if possible it would be awesome to have it tagged as disabled by default with CullFactory

#

the interior name is Tartarus, the problem is uh.. well, upon entering a moon with cullfactory and my interior being generated, it culls the entire maps light sources

#

which is uh, an interesting incompatibility

#

weve also noticed just blacklisting the interior in the config doesnt do it though, which is uh even more interesting

#

it only works with the mod entirely removed

gaunt herald
#

disabling culling for the moon it spawns on doesn't help either

austere stirrup
#

what is the cause of the issue? are you generating the interior outside?

random ridge
#

so uh one of the tiles spawns half of it alongside the rest of the interior, then the other half like 3000m above the map

#

the reason for this is the other half i want far away is teleported to, has a massive component i dont want to overlap with anything, and is meant to be isolated audio-wise so you cant hear anything from the map/interior

random ridge
#

im like atleast 99% sure this is the cause

gaunt herald
#

Is there a reason why it goes up instead of down

random ridge
#

initially i had it be below instead but the player immediately dies because theres a big ole death trigger below the interior spawn area

gaunt herald
#

Is the death trigger just everything at that level and below, or is it flat

austere stirrup
random ridge
#

lemme check rn actually since the project is open

austere stirrup
#

3000m vertical sounds like you're asking for the interior to extend up through the exterior though..

austere stirrup
#

any chance you can make it horizontal instead?

random ridge
austere stirrup
#

ohhh wait, the issue is that the exterior lights are culled, isn't it?

random ridge
#

correct

gaunt herald
#

Ye

austere stirrup
#

I see

gaunt herald
#

Ship lights, sun, floodlights

random ridge
#

which i bet is because part of the interior extends above the exterior

austere stirrup
#

is there a reason it has to be above instead of below? sounds like asking for trouble imo, since some mods like to increase view distance to ridiculous numbers

austere stirrup
#

hmm I see

random ridge
#

i can take a look at how far below it is though

austere stirrup
#

what about horizontal?

random ridge
#

maybe i just need to uh.... not make it that far down?

gaunt herald
#

If the death trigger is just a flat plane then it shouldn't be an issue

random ridge
austere stirrup
#

because uhh if a coordinate is above about -100 units, lethal company considers it to be outside

#

and you are going to have some issues with AI if you don't follow that requirement

#

assuming AI can existin that top portion anyway

random ridge
#

it cant

#

the intention is that 2nd half is blocked off from the rest of the game in every way

gaunt herald
#

I could probably see the trigger in imperium freecam now that I think about it

austere stirrup
#

maybe you should make your own separate generator then

random ridge
#

πŸ€”

austere stirrup
#

there's a few ways to go about this, but moving that part above the interior seems a little iffy

random ridge
#

or maybe have it be 2 tiles connected by a doorway, the door on the 2nd half is just very offset

#

idk if thatd work tho

#

or maybe the tile just has code that moves the 2nd half post generation

#

it doesnt need navmesh of any kind, or antyhign like that

#

it just needs to be a room far from the interior/exterior that is accessable from a door in the interior

gaunt herald
#

i guess the room could be below it?

random ridge
#

the room was definitely below it when i initially tried

#

i think it considered the teleport as passing through it somehow?

#

the game sets your server position as a lerp iirc

gaunt herald
#

maybe, but it also doesn't reach all the way on all sides

#

so maybe a horizontal offset?

random ridge
#

hm thats true i could try horizontal and vertical

#

im just worried about the tile bounds but ill mess around sometime and see if it actually treats the space between as used space

gaunt herald
#

If I understand dungen correctly then it should just recognize the gap as 1 huge room right?

random ridge
#

thats what im thinking yea

#

so anything that tries to generate that direction will just be cut off

#

which isnt really the end of the world but would be awkward

#

better than being broken with cullfactory tho

gaunt herald
#

Realistically how far away does the room need to be to be completely isolated from the rest of the interior? Like is 3000m necessary?

random ridge
#

it doesnt need to be that far at all, but just making it slightly above the exterior wont work as the issue will still persist, my main worry is there isnt that much space for some reason between the generation root and the death trigger below the interior spawn

#

and theres not a ton of space above either, atleast on experimentation. there may be even less on modded moons depending on how theyre structured

#

if i put the 2nd half right on the root, it expands out into the exterior

#

infact

#

even if i put it onto the deatht rigger below, it STILL expands out into the exterior

gaunt herald
#

So why does the effect have to be so big

#

I mightve not been looking hard enough but I didn't see much of anything past the roof of that room

random ridge
#

its a scrolling mesh you can see behind the gate, though i guess maybe i can modify it and if i align it just right i can cut some of it out

gaunt herald
#

The whole thing moves?

random ridge
#

thats correct

gaunt herald
#

Hmmm

#

There has to be a more space-efficient way to do that

random ridge
#

||the velvet room in P3 is an elevator shaft, so everything through the gate (the wall behind, and the light are moving as if the room itself is constnatly moving)||

#

i could definitely cut it down with some visual tricks but itd still take up a lot of space

gaunt herald
#

I could swear I've seen something in unity before that generates small moving tiles in a specific pattern

random ridge
#

ill try messing around a bit sometime soon

#

for now i shall sleep

austere stirrup
#

if it did kill, it would probably be due to some physics engine shenanigans, not the network

orchid jetty
#

the out of bounds trigger killing the player is client side yes

#

only your own local position matters, which shouldn't be lerped

random ridge
#

Oh hm, maybe I just did something else silly then, I'll try making it just go down again when I get home from work

austere stirrup
#

hopefully that will work out, that's definitely the simplest solution

#

going down is ideal in every way except that you miss the kill trigger if someone manages to clip out

random ridge
#

Can just add my own below just incase

austere stirrup
#

yeah

#

that should be fine in theory

random ridge
#

i noticed when i walk between tiles i see a flicker in the distance, turns out thats because when i stand on the seam between tiles it culls the tile forward

#

is this normal behaviour?

gaunt herald
#

i think i noticed this in the older version too

random ridge
#

im pretty sure i did as well

gaunt herald
#

i thought it was something to do with the "doors" at first but it does it on tiles that don't have any

random ridge
#

actuallly its not just on the seams

#

it seems to just be confused in general when to cull

#

ill get some footage

austere stirrup
#

are you doorway sockets the right size?

random ridge
#

these?

#

oh wait

#

are they supposed to cover the entire area that may or may not be covered depending on the generation

#

actually no i dont think vanilla does that but maybe im forgetting

#

but the blocker is that whole cube

#

and the door is that small green thing

random ridge
#

πŸ’€

#

ive just been setting doors up wrong this whole time

#

luckily its a very quick and easy change

#

already done

#

gonna test now

#

OHHH wait i think i get it now

#

it gets so confused because it probably tries to detect when im "looking through the door"

#

but the door is a tiny piece inbetween tiles, so looking down the hallway isnt actually what its supposed to be

#

so cullfactory is like "well, clearly he isnt looking down the hallway" even if i am, because i set up the door that cullfactory is looking at wrong

#

YUP

#

perfect now

random ridge
austere stirrup
random ridge
#

yeah i was just completely wrong there

austere stirrup
#

consistently enough for me to rely on it anyway

random ridge
#

i checked and they all "match" the empty space between tiles

#

some are uh

#

maybe off slightly

#

but generally hes got the idea

#

lmao

#

mine were nowhere near lined up so it broke shit

austere stirrup
#

I do wanna make a better visualization mode so you can see the frustums it generates

#

it's just tricky since it takes a bit of math to figure out where to place vertices at intersections of the planes

steady bane
#

I think dark mist and cull factory dont get along too well plink

austere stirrup
#

what's dat

gaunt herald
austere stirrup
#

hmm, what's the issue with it?

steady bane
#

Im not sure if they are the cause of it but when i have both of the mods and i start to wander deep in the interior it starts to lag

#

But if you go back to main it start working good again

#

But yeah dark mist hasn't been updated in a loong long time and it is so simple that i just uninstalled it

#

The only thing dark mist does is close doors behind you to confuse you

austere stirrup
#

seems doubtful that that could be related to CullFactory, the only thing that could possibly cause lag when venturing deeper with CullFactory is the search for the tile a camera resides in, which in my testing took a few microseconds

steady bane
#

gonna try with only the two of them to see if they really are the problem

austere stirrup
#

you should test your pack without CullFactory, I'm pretty sure the problem will not go away

steady bane
#

i tried it without darkmist and it never happened again

#

ok so i want to make a public apology

#

cullfactory is in fact NOT the cause of the lag

#

i will try to check with other performance mods coz it started to happen just when i put like 4 performance mods

#

im so sorry perceive

austere stirrup
#

no worries, at least you got only a few mods to check

#

assuming it's those and not some update

steady bane
#

welp so i havent been able to replicate it idk what is causing this extreme lag, i just know that removing darkmist seems to fix the issue

#

i supposed it was something with cull factory cause it makes things far away not render and maybe bc the doors aren't rendering the darkmist thing wasn't working properly but im no expert not anything close to that so idk

austere stirrup
#

nah it doesn't affect gameplay at all

steady bane
#

i really should start learning code

#

and just read the console

austere stirrup
#

also doors aren't touched by the culling currently, though that's not really relevant here either

#

if this is intermittent though, you're gonna need to test more to ensure that removing the mist actually stops the issue

steady bane
#

yeah will gonna do that now

austere stirrup
#

but it wouldn't surprise me if it does, it seems very likely that it could just be an issue with that mod alone

#

or an interaction with some custom moon/interior

steady bane
#

my guts told me that maybe darkmist was doing something and when i disabled it it start working again

#

so weird

austere stirrup
#

the same happened as in it worsened performance with the performance mods added to the test profile?

steady bane
#

tried it in 2 different pc too

steady bane
#

well smth like that

#

i put the performance mods in my testing pack and everything was working ok, then i added darkmist and all exploded

#

i use custom interiors too

#

maybe that has something to do too

#

is there a known interior incompatible with cullfactory?

austere stirrup
#

not any that I know of if you haven't whitelisted anything

#

is this performance issue like a big stutter on a half second interval? or does your fps run low constantly and consistently?

steady bane
#

but now that you mention it there is also like a tiny stutter everytime im inside the interior

#

i was able to recreate it in my testing pack now and it happened

#

i will try disabling cullfactory to see if it is correlated

austere stirrup
#

if I had to guess, it's probably because they are using FindObjectsOfType to get the players in the game instead of using the allPlayerScripts array

#

there is a limit on the distance from main at which the code activates, so if you adjust the min distance in the mod's config then it will change the distance from main at which you start to experience this performance loss

#

I find it somewhat surprising if this is affected by performance mods, the only one that I would expect to be relevant is LethalPerformance, since it patches such calls to use cached results instead

#

I don't know why that would cause performance loss instead of improvement, but it may well affect it one way or another, so it's worth testing with only that and the mist, then testing without LethalPerformance to see if it affects it

steady bane
#

ok so i tried with cullfactory disable and it still happens so i can confirm it isnt cull factory im sorryyperceive

austere stirrup
#

also, the distance you travel from main isn't relevant here, it's the length of the shortest path

austere stirrup
#

if you find a seed on which this repros, you should use CullFactory config to lock it to that seed so you can test different combinations

steady bane
#

ok veredict

#

i just tried without any performance mods and it is still happening so the only other thing that could be is an update that broke darkmist

#

yeah definetily something broke darkmist

#

welp im sorry for all this nonsense, guess im not using darkmist anymore

#

thanks so much for the informative description of how the game works

austere stirrup
#

npnp!

fleet cosmos
#

what interiors are reccomended to blacklist

austere stirrup
#

the ones that are built into the blacklist already

#

if you have any issues with new interiors then let me know so I can investigate

orchid jetty
#

with the v70 update, if you aren't doing it already, you should be able to just toggle off the renderers for the interior even when the radar is being watched

#

which should be a big performance boost

#

all of the radar stuff is managed through spriterenderers on exclusively the mapradar layer

austere stirrup
#

at some point I could look into whether that's a performance benefit, but I think that frustum culling plus the culling mask of the radar map should result in those not rendering when looking at the map in the ship most of the time anyway

#

should maybe be possible to check with a fairly simple UnityExplorer script though

orchid jetty
#
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_transform(UnityEngine.Component)
  at CullFactory.Data.DynamicObjects.PlayerIsInInterior (GameNetcodeStuff.PlayerControllerB player) [0x00000] in E:\Development\Lethal Company\Projects\LC_CullFactory\CullFactory\Data\DynamicObjects.cs:54 
  at CullFactory.Data.DynamicObjects.OnPlayerTeleported (GameNetcodeStuff.PlayerControllerB player) [0x00023] in E:\Development\Lethal Company\Projects\LC_CullFactory\CullFactory\Data\DynamicObjects.cs:163 
  at CullFactory.Data.DynamicObjects.CollectAllTrackedObjects () [0x00058] in E:\Development\Lethal Company\Projects\LC_CullFactory\CullFactory\Data\DynamicObjects.cs:261 
  at CullFactory.Extenders.LevelGenerationExtender.OnRoundEnded () [0x00005] in E:\Development\Lethal Company\Projects\LC_CullFactory\CullFactory\Extenders\LevelGenerationExtender.cs:27 
  at (wrapper dynamic-method) StartOfRound.DMD<StartOfRound::PassTimeToNextDay>(StartOfRound,int)
  at (wrapper dynamic-method) StartOfRound+<EndOfGame>d__285.DMD<StartOfRound+<EndOfGame>d__285::MoveNext>(StartOfRound/<EndOfGame>d__285)
  at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00026] in <e27997765c1848b09d8073e5d642717a>:0 

(Filename: E:/Development/Lethal Company/Projects/LC_CullFactory/CullFactory/Data/DynamicObjects.cs Line: 54)
#

this happened when going back into orbit at the end of a round and softlocked all of us

#

(hud never faded back in, game didn't autosave, so we went back a day on rehost)

#

im not 100% sure what the cause was here but only 2 things happened that i would guess could be relevant:

  1. one of our players disconnected mid-round
  2. two of our players died in the caves ("no signal" screen) and their bodies were teleported back out to the ship
#

i believe we have done #2 without it throwing errors before, but im not 100% sure

gaunt herald
#

i do have this mod installed but i don't know if the crash is related to this

austere stirrup
#

surely that's not a thing??

#

it never has been before

orchid jetty
#

lol yeah i took a peek and it looked like that would be the only cause

#

and that sounded completely insane

austere stirrup
#

the only thing I can think is that maybe MoreCompany destroys player objects until they're needed or something

orchid jetty
#

im like... pretty sure morecompany doesnt do that? I think it just adds a bunch of player objects at scene start and they are "reserved" like the 4 vanilla players when people leave

austere stirrup
#

but that also has never been a thing before

orchid jetty
#

but it's the only possibility that crossed my mind

orchid jetty
#

i do play with a limit of 6 (default is 12 i think?) so maybe that has something to do with it

#

maybe it doesnt work entirely right if you decrease the max limit

#

i can take a peek into it a bit later and see if anything sticks out to me

austere stirrup
#

it should trigger that code at the start of every round too though I think

#

so unless it happens mid round it doesn't make a whole lot of sense

orchid jetty
#

appears that it is the first exception in the log (except some lethalperformance navmesh exception that happened upon initial host)

orchid jetty
# orchid jetty ``` NullReferenceException at (wrapper managed-to-native) UnityEngine.Componen...
NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_gameObject(UnityEngine.Component)
  at (wrapper dynamic-method) ManualCameraRenderer+<updateMapTarget>d__71.DMD<ManualCameraRenderer+<updateMapTarget>d__71::MoveNext>(ManualCameraRenderer/<updateMapTarget>d__71)
  at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00026] in <e27997765c1848b09d8073e5d642717a>:0 

NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_gameObject(UnityEngine.Component)
  at (wrapper dynamic-method) ManualCameraRenderer+<updateMapTarget>d__71.DMD<ManualCameraRenderer+<updateMapTarget>d__71::MoveNext>(ManualCameraRenderer/<updateMapTarget>d__71)
  at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00026] in <e27997765c1848b09d8073e5d642717a>:0 

NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_transform(UnityEngine.Component)
  at PlayerPhysicsRegion.OnDestroy () [0x00033] in <31f0351006d541aeb5ae92a12fc7161b>:0 
#

but some vanilla scripts bug out too

#

though im pretty sure it's just because of the same deal

orchid jetty
# orchid jetty appears that it is the first exception in the log (except some lethalperformance...

oh there's also this before it, but i've seen this a million times before and i just ignored it

NullReferenceException
  at (wrapper managed-to-native) UnityEngine.Component.get_transform(UnityEngine.Component)
  at PlayerPhysicsRegion.OnDestroy () [0x00033] in <31f0351006d541aeb5ae92a12fc7161b>:0 

Some metrics in the collection went over the configured values limit. Some values were ignored.
Unable to add the requested character to font asset [b]'s atlas texture. Please make the texture [b Atlas] readable.
Unable to add the requested character to font asset [b]'s atlas texture. Please make the texture [b Atlas] readable.
Unable to connect player to voice B #0; False; True
Unable to connect player to voice B #1; False; True
Unable to connect player to voice B #2; False; True
Unable to connect player to voice B #3; False; True
Unable to connect player to voice B #4; False; True
[Netcode-Server Sender=4] Destroy a spawned NetworkObject on a non-host client is not valid. Call Destroy or Despawn on the server/host instead.
[Netcode-Server Sender=4] Destroy a spawned NetworkObject on a non-host client is not valid. Call Destroy or Despawn on the server/host instead.

// cullfactory nre happens
austere stirrup
#

yeah the only case in which I've seen things like that print is when exiting to the menu

orchid jetty
#

maybe PlayerPhysicsRegion contained a player, it crashed before freeing them, and then it was destroyed which also destroyed the player?

#

come to think of it, i think the person that DC'd did so while inside the cruiser

austere stirrup
#

ohhh hmm maybe..

orchid jetty
#

that might make this really replicable

austere stirrup
#

that would make a lot of sense

north kraken
#

I hope it's an easy fix at least, what an interesting edge case discovery

orchid jetty
#

the only thing that doesnt make sense in my head is why the cruiser's physics region would've been destroyed

#

im nearly certain we had it attached to our ship when we took off

#

i'll probably need to toss around with this and see if i can get a repro under some conditions

orchid jetty
#

and also meant i couldnt land the ship to check if car was still there (if i had even thought to do so, at the time)

north kraken
#

Maybe one of these 2 settings somehow? I remember having some weird issues at one point til I turned these off

#

in Cruiser Improved

#

Dunno how those would affect the Physics Region though

north kraken
#

@austere stirrup The new update for Wesley's Interiors doesn't play too well with CullFactory, at least Citadel doesn't lol

#

Looking at some walls just causes the void if CullFactory is present

austere stirrup
#

hmm, any idea if Wesley's seen this yet? he's been pretty quick to fix things like this in the past, so I don't necessarily want to change the internal lists if I don't need to

north kraken
#

I did send it to him lol

#

No idea if he is working on it or not he doesn't seem to know why it breaks

austere stirrup
#

citadel is an interior I assume?

#

I can have a look

#

oh wait citadel is one I've played on before, is this issue new??

#

if this doesn't happen everywhere then I'm gonna need a seed and clip probably

north kraken
#

Yeah it's with the new update

austere stirrup
#

not seeing anything yet, so yeah, I'm gonna need a specific spot to look

jovial hearth
#

ive seen this befor many months ago already

#

has been a rare bug for a long time

austere stirrup
#

that's curious

austere stirrup
jovial hearth
#

might have to dig up the seed too

#

this is not a consistend issue

austere stirrup
#

lunxara's vod has the seed at least

jovial hearth
#

unless wesley made it worse with the update lol

austere stirrup
#

but if you get one first you get a pretty star emoji

north kraken
austere stirrup
#

tyty

austere stirrup
#

huh

#

looks like the issue is that the wall you're facing there isn't part of the tile you're in

@lucid trout Pinged I'm assuming this pair of tiles are always connected like this? moving the walls from the start tile into the big chamber should fix it

#

it is a little odd that my checks for renderers extending into other tiles aren't catching this instance, though

#

I guess it probably doesn't extend into the other tile as much as it needs to, they have to intrude into the tile by 0.01

north kraken
#

no idea why

#

But it soft locked the game

austere stirrup
#

is this new after an update or somethin?

#

well that's certainly uhhh interesting...

#

someone destroyed a player object

#

a player object that is in StartOfRound.Instance.allPlayerScripts

#

I have a feeling you would be seeing a whole lot more errors than that

#

I wish you luck in figuring that one out

north kraken
#

and it broke after round end

austere stirrup
#

dc shouldn't do that

#

player objects are permanent

north kraken
#

Yeah but I know Zeranos handles a lot of things in interesting ways

austere stirrup
#

CullFactory 2.0.0 Beta 0

Added

  • Handling for multiple dungeons being spawned simultaneously

Fixed

  • Lights flickering visibly when they exist outside their parent tile (e.g. the window room in mansion)
  • Disabled culling on Outfall to prevent culling issues when landing

Changed

  • Optimized culling algorithms slightly
#

This update implements support for multiple dungeons in order to enable culling in the extra dungeons on @azure ledge's Conflux moon

It has fairly significant refactors for the culling setup and more, so let me know if you see anything that is distinguishable from having culling disabled

#

Especially now that it's accounting for lights outside tile bounds, since that is one case I had missed previously

orchid jetty
#

i've been noticing a bunch of light bleeding in the manor ever since v70 and i wasnt sure if it's just a problem with the new manor tiles or if it was this

austere stirrup
#

hmm, I mean, the only case in which I can see that causing extra light bleed is if multiplier > 1, since that'll cause the light to fade at a further distance than the shadow fade distance

#

and that would also cause CullFactory's shadow-based light culling to be disabled, if it caused my heuristic for disabling shadow fading to reject them

#

otherwise, that patch wouldn't cause any conflicts as far as I'm aware

#

it looks like that patch runs before CullFactory bakes its culling data, thankfully

#

if the light bleeding you're referring to is affecting more lights than just the window light, and especially if CullFactory is causing the lights to appear differently to vanilla, then seeds+coordinates+profile codes would be helpful