Download

Not sure where to place this - BSP not registering as static

Hi.

I noticed BSP brushes do not register as the static collision channel so i am curious what does it register as?
Right now its a bit annoying prototyping levels because collision checks being done against world static objects ignores bsp brushes. As a result you need to create the BSP brush, and then create the same size collision volume over it with world static collision channel enabled on that.

And BSP brushes do not give you the option to change its collision channel.
What is a smart way of working around this without too much effort?

Bump. Have same question.

Hey everyone,

BSPs are meant to be used for whiteboxing levels and do not register traces for collision channels as a normal asset would. To register hits from traces, you will either need to create a blocking volume in/around the bsp or I’d recommend converting the BSPs to static meshes through the details pane. This is recommended eventually anyways due to the lowered cost of static meshes as opposed to BSPs, which are significantly heavier in terms of resource allocation.

Nice to have clarification. Thanks!

Without wanting to reopen another BSP vs Static Meshes discussion, this seems pretty bizarre to me. Surely prototyping a level includes testing out how it actually plays, and being able to rely on traces is going to be a pretty fundamental requirement in most games.

That said though, @Crocopede are you sure it flat out isn’t working? I have comments in my code noting that BSPs do not behave as I expected with traces - specifically that they seemed to register hits at their surfaces whether the trace is going in or out, but did not detect initial overlap at the trace start point. Seemed rather weird to me, since if anything is set up to be able to do easy in/out checks, it should be a BSP tree. Anyway, aside from those caveats, the traces were working. I’m pretty sure I was using the WorldStatic object channel, but might be worth testing with the Visibility trace channel if WorldStatic isn’t working.

If you absolutely must keep BSP’s in the level, I would create a blocking volume and place it within the bsp. The trace will hit the blocking volume (make sure to set the collision channels to register the collision you need) and register correctly.