<!--
{
  "availability" : [
    "iOS: 3.0.0 - 7.0.0",
    "iPadOS: 3.0.0 - 7.0.0",
    "macOS: 10.8.0 - 10.10.0",
    "visionOS: 1.0.0 - 1.0.0",
    "watchOS: 2.0.0 - 2.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "GameKit",
  "identifier" : "/documentation/GameKit/GKSession/isAvailable",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "GameKit"
    ],
    "preciseIdentifier" : "c:objc(cs)GKSession(py)available"
  },
  "title" : "isAvailable"
}
-->

# isAvailable

A Boolean value that determines whether or not the session wants to connect to new peers.

```
var isAvailable: Bool { get set }
```

## Discussion

When [`isAvailable`](/documentation/GameKit/GKSession/isAvailable) is <doc://com.apple.documentation/documentation/Swift/true>, the session is visible to other peers based on its [`sessionMode`](/documentation/GameKit/GKSession/sessionMode) property. When [`isAvailable`](/documentation/GameKit/GKSession/isAvailable) is set to <doc://com.apple.documentation/documentation/Swift/false>, it remains connected to peers, but is no longer visible to nonconnected peers. The default is <doc://com.apple.documentation/documentation/Swift/false>.

Typically, your application configures the session object with a delegate and data receiver, and then sets [`isAvailable`](/documentation/GameKit/GKSession/isAvailable) to <doc://com.apple.documentation/documentation/Swift/true>. When the delegate finishes connecting to peers, it should set the session’s [`isAvailable`](/documentation/GameKit/GKSession/isAvailable) property to <doc://com.apple.documentation/documentation/Swift/false>.

---

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)