s&box/field-guide
the symptom, in your words

"Collider choice that actually costs you"

✓ verified on engine 26.07lane: Making it performposted
▸ SYMPTOM
  • Decorative props with ModelCollider tank traces / physics.
  • Scaled trees/props: visual huge, capsule/hull stays tiny (scaled-collider-didnt-scale).
  • Unsure which collider to default to for stylized scenes.
▸ CAUSE

Different collider types have different cost and different scale behavior:

TypePerf instinctFollows WorldScale?
BoxColliderCheap; prefer for propsYes
CapsuleColliderFine for characters/trunksNo (Radius/Start/End)
ModelColliderPer-poly — expensive, noisy tracesNo (hull stays model-native)

ModelCollider also needs real physics parts on the vmdl or it creates no shapes (model-no-collision).

▸ FIX

Default for props / scenery: bounds-sized BoxCollider at generation time (catalog Size/Center).

Characters / simple vertical volumes: capsules on an unscaled sibling if the visual GO is scaled — or bake scale into the vmdl and keep WorldScale = 1.

Climbable / shelved statics that need mesh fidelity: PhysicsMeshFile in the vmdl + ModelCollider, accepting the cost — don't spray this on every bush.

snippet
// Prop default
var box = go.Components.Create<BoxCollider>();
box.Scale = boundsSize;   // model-local; WorldScale multiplies
box.Center = boundsCenter;
box.Static = true;

Dynamic props: non-static box + Rigidbody when you need pushes.

Frame-level triangle budget is separate but related — frame-budget-stylized-scenes.

▸ WHY IT WORKS

Boxes are constant-cost shapes and participate in GO scale. Capsules/hulls are authored in model space without the same WorldScale multiply, and mesh colliders scale CPU with triangle complexity — so the "default ModelCollider on everything" habit pays twice (perf + silent scale bugs).

Verified on engine 26.07 — seen in a real project.
s&box moves fast; an undated fix is a liability. Spot a stale detail?