Upcoming Changes to Inner Box (non-default) Avatar Collisions

If you are using the (optional, non-default) Inner Box avatar collision game option, we’re making some changes to the way we size and position these boxes that may affect your game.

This change won’t affect you if you’re using the default Avatar collisions, Outer Box, and we encourage you to continue using it!

How to Check Your Collision Settings

If you might have changed this setting within the past year you may want to double check which one you are using. For the past year the labels were accidentally flipped by a localization change, and this was only recently fixed. You might not be using the one you thought you were!

image

Note: We recommend using Outer Box unless you have a specific problem in your game that Inner Box actually fixes.

What is Inner Box?

The slightly misleadingly named Inner Box collision mode attempts to size the collision boxes of an avatar identically to a classic R15.

This is done by applying artificial CollisionFidelity.Hull collisions to the MeshParts, using potentially differently sized and offset boxes relative to the actual part. This box may be larger or smaller than the original part.

This does come at a small cost:

  • There is a small performance cost when these parts collide with other parts. Hull collisions use a slightly more expensive collision test than our standard box collisions.
  • It takes the server an extra ~0.5 ms to apply inner box collisions when a character spawns.
  • Sending the extra collision data for each avatar part may increase join times marginally.
  • This introduces more of a physical-visual disconnect for avatar collisions.

What’s Changing?

We’re changing the the sizing and positioning algorithm for Inner Box slightly.

The current algorithm just simply copies the R15 box sizes, using an offset based on the average position of all Attachments, including the accessory mount attachments. This offset method doesn’t consistently respect the positions of the joints. When this is applied to the same classic R15 it is attempting to normalize to, it produces different offsets and introduces gaps!

The new algorithm 9-slices (actually 14-slices, since it’s 3d) the collision boxes around the avatar’s joint RigAttachments, and applies the part size margins around the RigAttachments from a classic R15 to the extents of the RigAttachments on the new part.

This generates better fit Classic R15 “style” collision boxes that better respect the positioning of the joints, more appropriately sized for wider, narrower, longer, or shorter parts, while providing the same collision size “normalization” benefits.

Note the better positioning of the hands and feet in the comparison below. “Rig Extents Margin Inner Box” is the new algorithm.

Also when applied to a classic R15 this produces identical results to the reference parts, and does not introduce unintentional gaps like the current Inner Box algorithm.

When is it Changing?

We’ll be enabling this change for all games next week on Thursday, June 3rd.

If you want to test this yourself it’s available now as a Studio Beta Feature:

image

143 Likes

This topic was automatically opened after 8 minutes.

Does anyone have any use cases for Inner Box collisions? The above examples seem to show that they provide worse collision approximation and also at a higher hit to performance. What reasons would there be to use them over Outer Box?

18 Likes

My guess is easy backwards compatibility for old games.

4 Likes

Fighting games are definitely a use case for inner box. With outer box, certain packages may put players at an advantage or disadvantage depending on its size.

14 Likes

The largest use case (as somewhat referred to in the post) is emulating older R6 physics as R15. This is most prevalent in “skill based games” such as shooters or fighting games. (as stated by @Kabutey !)

4 Likes

In certain obbies, the small parts you have to navigate don’t collide well unless you use inner box

4 Likes

This update does look really cool :eyes:

1 Like

That sounds good! I assume this fixed that certain parts don’t get touched instantly, this was a bug for a long time for like kill parts. You previously had to disable collissions on killparts in order to disable a glitch where the player could keep jumping with R15 enabled on parts and it would not get detected.

6 Likes

There’s a bit of a typo there!

I think you meant “Margin”

2 Likes

You’re right. Thanks. Fixed.
.

1 Like

If I understand you right this won’t fix that. This is likely related to the jumping and falling animations both shifting the torso and the rest of the body up vertically quite a bit extra relative to the root part compared to the rest of the animations. Where you notice the character taking a split second to “settle” after it lands it’s because of this.

Both Torso parts and HumanoidRootPart selected:
contextjump

I’m not sure why these animations do that.

Might be worth experimenting with replacing these animations with custom copies that have that root offset removed so the character’s feet hit the ground at the end of the jump more consistently.

3 Likes

Ngl This is an epic update :+1:

2 Likes

With this, I could make a cool size-based powerups in the future, kinda like what some games would do for specific cases such as Banjo Kazooie (with the toy egg which spawns a little toy version of the bird to fit in tiny spaces), Donkey Kong 64 (where you can shrink down to size as Tiny Kong), and various other games. I know, I’m not planning on making copies of these games on Roblox, because I know this would lead to copyright moderation. However, I would plan on making my own size-based puzzles of my own. At the moment, I already have a system in place that lets you change size. For instance, I am thinking about making a mini-sized house for min-sized players.

In other games, there is a well known bug where players would slide into the ground. This happens when I play Brookhaven. Just wanted to get this out here because it’s a bug that needs to be fixed as well. I’m not talking about the sliding bug where friction decreases when players are smaller. This bug occurs in all sizes, and has absolutely nothing to do with friction.

1 Like

For some reason, I always thought inner box was a better option but looking from the examples in the thread the outer box collisions just provides you with a much more accurate hitbox compared to the inner box.

Anyways, I am looking forward to the inner box collision improvements, seems to be better but would stick to outer box from now on.

1 Like

This change was enabled globally at 11:15 AM PDT today.

The new Rig Extents Margin Inner Box now replaces the previous Inner Box for all games using Inner Box.

3 Likes

The default preset currently opts for Inner Box.

i3mIYl4Swr

1 Like