# Built-in Components

The engine ships a set of built-in components that cover the needs of most projects. They're regular components, so you add them to objects the same way you add your own: select the object and pick one from the Add Component list.

Some of them you'll almost certainly use from the editor only, like the UI elements or the audio players. Others are meant to be extended from code. Since they're all exported from rogue-engine, you can import them and extend them like any class. The weapon pipeline is built around this, for example:

import * as RE from 'rogue-engine';

export class MyWeapon extends RE.Weapon {
  onHit = (projectile: RE.Projectile, hits: THREE.Intersection[]) => {
    // Your damage logic here.
  }
}

They're grouped into families in the sidebar:

For the low level pieces that power the combat system, check out HitMesh and BVH.