> For the complete documentation index, see [llms.txt](https://azuriohs-organization.gitbook.io/r-type/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://azuriohs-organization.gitbook.io/r-type/subsystems/create-your-subsystems.md).

# Create your subsystem

This section provides a step-by-step guide on how to create your own subsystems within the ECS architecture. By following these steps, you will be able to develop modular and self-contained subsystems that can be integrated into the larger ECS framework.

## 🧑‍💻 Steps to Create Your Subsystem

### 1. **Create Your Interfaces**:

Define the interfaces that your subsystem will implement. This includes the core functionality and any necessary methods for interaction with other subsystems or components. Refer to [Step 1 - Create your interfaces](https://github.com/Azurioh/R-Type/blob/docs/subsystems/create-your-subsystems/subsystems/create-your-subsystems/step-1-create-your-interfaces.md) for detailed instructions.

### 2. **Setup Your Subsystems in the Lib Directory**:

Organize your subsystem's code and resources within the designated library directory. This ensures that your subsystem is properly structured and can be easily managed. See [Step 2 - Setup your subsystems in the lib directory](https://github.com/Azurioh/R-Type/blob/docs/subsystems/create-your-subsystems/subsystems/create-your-subsystems/step-2-setup-your-subsystems-in-the-lib-directory.md) for guidance.

### 3. **Add an Entry Point**:

Create an entry point for your subsystem to facilitate its initialization and integration with the ECS framework. This entry point will serve as the main access point for other parts of the system to interact with your subsystem. Follow the instructions in [Step 3 - Add an entry point](https://github.com/Azurioh/R-Type/blob/docs/subsystems/create-your-subsystems/subsystems/create-your-subsystems/step-3-add-an-entry-point.md).

### 4. **Load Your Subsystems in the Client**:

Finally, integrate your subsystem into the client application by loading it appropriately. This step ensures that your subsystem is active and can perform its designated functions within the ECS architecture. Detailed steps can be found in [Step 4 - Load your subsystems in the client](https://github.com/Azurioh/R-Type/blob/docs/subsystems/create-your-subsystems/subsystems/create-your-subsystems/step-4-load-your-subsystems-in-the-client.md).

> By following these steps, you will be able to create and integrate your own subsystems effectively within the ECS framework, enhancing the modularity and functionality of your application.
