# 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:
- Audio: AudioPlayer, AudioPlayer3D, AudioMixer, AudioEffect, AudioDelay, AudioReverb, SoundEnvironment. See the Audio guide to get started.
- Combat: Character, Weapon, Projectile, HitSpot, SurfaceFXManager. See the Combat guide to get started.
- Core: Animator, Animator2D, StatsPanel, DirectionalLight, OrbitCamera, Switch, SelfDestroy, Decal.
- UI: the full UI system, from containers and buttons to sliders, dialogs and the 3D hosts CSS2D and HTMLMeshComponent. See the UI guide to get started.
For the low level pieces that power the combat system, check out HitMesh and BVH.