S&box Wiki

Hitboxes

Using Hitbox Tags

We removed hitgroups in favour of Hitbox Tags, similar to how we use them for collisions. Here's how they work.

ModelDoc

When editing a hitbox from ModelDoc, you'll see Hitbox Tags. Populate them with some useful keywords like so:

image.png
You don't need to update the Citizen's hitbox tags, we've done that for you

Trace.Ray and Entities

To be able to hit a Hitbox with a Trace.Ray, you must call UseHitboxes() on it before Run():

TraceResult tr = Trace.Ray(Camera.Position, Camera.Position + Camera.Rotation.Forward * 100) .Ignore(this) .UseHitboxes() .Run();

API

When running traces, you'll see TraceResult.Hitbox. That'll hold all the info you'll need when interacting with hitboxes. We also pass it with DamageInfo.

Before, you'd be given a hitbox index, and that's it. It wasn't elegant at all.

With hitbox tags, it's way more explicit:

... var isHeadshot = damageInfo.Hitbox.HasTag( "head" ); if ( isHeadshot ) { // Multiply headshot damage by 2 damageInfo.Damage *= 2f; }

You can also grab the hitbox's name with Hitbox.GetName() - useful for debugging.