Create a subsystem
create_subsystemScaffolds an FTC subsystem class with hardware fields, config constants, action methods, and a safety stop. Optionally generates a bench-test TeleOp and documentation.
Instructions
Scaffold a plain FTC subsystem class (constructor takes HardwareMap; hardware fields, config-name constants, action methods, and a safety stop()). Also writes a bench-test TeleOp and a markdown doc in docs/. This is the recommended way to structure robot code — one class per mechanism (intake, spindexer, turret...).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Subsystem class name, e.g. RollingIntake | |
| group | No | Lowercase package group / folder, e.g. 'shooting' -> teamcode.shooting (default: subsystems) | |
| dryRun | No | Validate and preview all generated files without writing them | |
| motors | No | ||
| servos | No | ||
| methods | No | Action method names to stub, e.g. ['spinIn','spitOut'] | |
| sensors | No | ||
| crServos | No | ||
| constants | No | Named constants (PID gains, servo positions, RPM setpoints). Tunable ones are live-editable while the robot runs. | |
| dashboard | No | Live-tuning system for tunable constants (default: panels, matching install_pedro's Panels) | |
| overwrite | No | ||
| testOpMode | No | Also generate a bench-test TeleOp (default true) | |
| description | No | ||
| projectPath | No | Path to the FtcRobotController SDK project. Defaults to $FTC_TOOLCHAIN_PROJECT_DIR, then the workspace clone made by create_project. | |
| dependencies | No | Other subsystems this one needs, injected into the constructor (must already exist) |