Razorbill
Components

Components Overview

Components are typed data containers attached to entities. They hold no behavior — all logic comes from systems and scripts. Razorbill ships with 28 built-in components across 8 categories.

Categories

Core

Fundamental components present on most entities. Full reference →

ComponentDescription
TransformPosition, rotation, and scale in world space
CameraComponentCamera projection settings (perspective or orthographic)

Rendering

Visual representation and materials. Full reference →

ComponentDescription
MeshComponentReferences a mesh asset and material for rendering
SkinnedMeshComponentMesh with skeletal animation support
PBRMaterialComponentPhysically-based material (metallic/roughness workflow)
UnlitMaterialFlat-color material without lighting calculations

Physics

Physics simulation and collision. Full reference →

ComponentDescription
RigidbodyDynamic physics body with mass and velocity
ColliderCollision shape (box, sphere, capsule, cylinder, convex hull)
CharacterControllerFull-featured character movement with jumping, crouching, sprinting

Lighting

Light sources for the scene. Full reference →

ComponentDescription
DirectionalLightComponentInfinite-distance parallel light (sun/moon)
PointLightComponentOmnidirectional point light with falloff radius

Scripting

Script attachment. Full reference →

ComponentDescription
ScriptComponentHolds script GUIDs and per-instance properties

Animation

Animation playback and state machines. Full reference →

ComponentDescription
AnimatorComponentAnimation controller with clip playback and locomotion blending
JointComponentPhysics joint connecting two entities (fixed, hinge, distance)

Particles

GPU-accelerated particle effects. Full reference →

ComponentDescription
ParticleEmitterComponentGPU particle emitter for fire, smoke, sparks, and magic effects

UI

Runtime UI system with layout, input, and rendering. Full reference →

ComponentDescription
UICanvasComponentRoot of a UI hierarchy (screen-space, world-space, or render-to-texture)
UIRectTransformComponent2D positioning with anchors and pivots
UITextComponentText rendering with font, size, color, alignment
UIImageComponentImage display with slicing, tiling, and fill modes
UIButtonComponentClickable button with state colors
UIPanelComponentBackground panel with border and corner radius
UISliderComponentDraggable slider for numeric input
UIToggleComponentCheckbox or switch toggle
UIProgressBarComponentFill-based progress indicator
UIInputFieldComponentText input with cursor, selection, and content validation
UIDropdownComponentDropdown selector with options list
UILayoutGroupComponentFlexbox-style layout for child elements
UILayoutElementComponentPer-element layout overrides (padding, flex, min/max size)

World

World and terrain generation. Full reference →

ComponentDescription
TerrainComponentProcedural terrain with heightmap, biomes, and scatter rules

Adding Components

Components are added through the AddComponent operation:

{
  "op": "AddComponent",
  "params": {
    "entity_name": "Player",
    "component_type": "Rigidbody",
    "data": { "mass": 70.0 }
  }
}

Or through the SetProperty operation to modify existing component values:

{
  "op": "SetProperty",
  "params": {
    "entity_name": "Player",
    "component_type": "Transform",
    "property_path": "/position",
    "value": { "x": 0, "y": 5, "z": 0 }
  }
}

On this page