Objects

Objects are the visual and interactive elements in your project. This page covers the object hierarchy and types.

Hierarchy

Project
  └── Cell
        └── Layer (see Editor Guide)
              └── Object (Prime or Component)
                    └── Component children (recursive)

Project

The Project is the root container - your entire game or experience.

Cell

A Cell is a screen, room, or scene - a self-contained view the player can be in.

Players move between cells via doors or goto commands.

Component

A Component groups objects that form a single visual unit.

Use components when objects should move and scale together (e.g., a button with icon and label).

Prime Types

A Prime is an atomic visual element. Each has a type:

Shape

Visual element. Includes polygons (Rectangle, Square, Triangle, Pentagon, Hexagon, etc.) and curves (Circle, Ellipse, Heart, Arrow). Supports fill layers, stroke, corners, and shadow.

Tip: Shapes can display text via script: set MyShape.content "Hello". This creates a clickable button with text — no separate Text object needed.

Text

Display text content. Can be single or multi-line, styled, and made clickable.

Line

Connector between two points. Supports markers (arrows, circles, etc.), different stroke styles.

Grid

Spatial grid for tile-based layouts. Objects can snap to grid cells and move cell-by-cell.

Properties

Properties define an object's appearance:

Property Controls
Position X, Y coordinates
Size Width, Height
Fill Background layers (color, gradient, image, pattern, noise)
Stroke Border (width, color, style)
Corners Border radius
Shadow Drop shadow (offset, blur, color)
Opacity Transparency (0-1)
Rotation Angle in degrees
Perspective Parallax depth (-1 to 1)

Text objects also have: content, font, size, color, alignment.

Objects can also have capabilities (movable, jumpable, draggable, pageable), dynamics properties (blocking, mass, friction), and states (named property presets). See Dynamics and Scripting for details.

Tags

Tags group objects for batch operations, regardless of hierarchy.

Example: Tag all enemies with enemy, all UI elements with ui. Then hide #enemy affects all tagged objects.

See Scripting for tag usage in scripts.