jecs

Create and query ECS worlds for Roblox Luau with TypeScript bindings.

6|Updated Jan 29, 2026
One-click install
npx skills add https://github.com/christopher-buss/skills --skill jecs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jecs
Source: https://github.com/christopher-buss/skills/tree/main/skills/jecs
Command: npx skills add https://github.com/christopher-buss/skills --skill jecs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a high-performance ECS framework for Roblox Luau via TypeScript bindings, enabling scalable world simulation and data-oriented design.

Core Features & Use Cases

  • Archetype-based storage for large entity counts to maximize cache locality and performance.
  • Rich Query system with support for components, tags, and relationships (e.g., pair(ChildOf, parent)) including wildcard targets.
  • Hooks and Signals to manage component lifecycles and external observers.
  • Type-safe APIs and optional direct archetype access for hot-path code.

Quick Start

Install the library in your Roblox TypeScript project, create a world, declare components with world.component<T>(), and start using world.query to drive game logic. Start by defining components, then use world.set or world.add to attach data and world.query to process systems each frame.

Frequently Asked Questions about jecs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a scalable Roblox game using an ECS framework in Luau?

A high-performance ECS framework for Roblox Luau enables scalable game architecture by using archetype-based storage for cache locality, supporting large entity counts and deterministic batched updates for world simulation.

How do I query entities with specific components in a Roblox TypeScript project?

Querying entities in a Roblox TypeScript project uses a rich query system that supports components, tags, and relationships, including wildcard targets, to efficiently retrieve and process matching entities each frame.

Can I manage component lifecycles and external observers in a Luau ECS?

Managing component lifecycles in a Luau ECS is handled through hooks and signals, allowing you to monitor external observers and trigger deterministic batched updates when component data changes.

Does this Roblox ECS support relationships like parent-child hierarchies?

This Roblox ECS supports relationships like parent-child hierarchies through a rich query system that handles pair constructs, such as pair(ChildOf, parent), including matching wildcard targets for flexible entity grouping.

Do I need a Roblox-TS setup to develop games with this Luau ECS?

A Roblox-TS setup is required to develop with this Luau ECS, as it relies on the rbxts package ecosystem and provides type-safe APIs for TypeScript bindings to ensure scalable world simulation.

What is the best way to optimize hot-path code in a Roblox ECS?

Optimizing hot-path code in a Roblox ECS is achieved through optional direct archetype access, bypassing standard APIs to maximize performance for systems processing large entity counts.