<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 12.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/System/dependencies",
  "metadataVersion" : "0.1.0",
  "role" : "Type Property",
  "symbol" : {
    "kind" : "Type Property",
    "modules" : [
      "RealityKit"
    ],
    "preciseIdentifier" : "s:17RealityFoundation6SystemP12dependenciesSayAA0C10DependencyOGvpZ"
  },
  "title" : "dependencies"
}
-->

# dependencies

An array of dependencies for this system.

```
static var dependencies: [SystemDependency] { get }
```

## Discussion

If you need to specify the update order between your system and other
systems in your app, you can do that using this property.
If your system has no dependencies, you don’t need to declare this property.
RealityKit provides a default implementation for systems with no dependencies.

Here’s an example where one other system updates before this system,
and another system updates after it.

```swift
class SystemB : RealityKit.System {
    static var dependencies: [SystemDependency] {
        [.after(SystemA.self),        // Run SystemB after SystemA.
         .before(SystemC.self)]       // Run SystemB before SystemC.
     }
    // ...
}
```

When the app runs, RealityKit calls [`update(context:)`](/documentation/RealityKit/System/update(context:)) on
`SystemA` first, then on `SystemB`, and then on `SystemC`.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)