# Subsystem Manager

## Subsystem Manager and Registration

All subsystem classes must be registered with the **Subsystem Manager**. This manager is responsible for delegating periodic updates and commands to each registered subsystem, ensuring coordinated control across the robot.

Here’s an example of registering subsystems with the manager(RobotContainer.java):

```java
mSubsystemManager.setSubsystems(
    Drive.getInstance(),
    Superstructure.getInstance(),
    VisionDeviceManager.getInstance(),
    Elevator.getInstance(),
    EndEffectorRollers.getInstance(),
    EndEffectorWrist.getInstance(),
    Intake.getInstance()
);
```

* Each subsystem implements lifecycle methods called every control cycle, like periodic updates and telemetry output.
* Registering them here allows the manager to call those methods automatically.
* This simplifies the robot code’s main loop and keeps subsystem coordination clean.
* This is also an easy way to quickly disable some aspects of a single subsystem
