# Settings

To configure settings for your paywall, click the **Settings** button from the **sidebar**:

![](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-settings-sidebar.png)

Use this menu for paywall-wide presentation and behavior settings. The fields shown can vary by platform and account features, but each setting starts with a default value.

### Presentation Style

Toggle the presentation style of your paywall. Available options are:

1. **Fullscreen:** The paywall will cover the entire device screen.
2. **Push:** The paywall will push onto a hierarchy, such as a `UINavigationController` on iOS.
3. **Modal:** The paywall presents with the platform's default modal API.
4. **No Animation:** The paywall presents modally, but without any animation.
5. **Drawer:** The paywall presents from a bottom drawer with customizable height and corner radius.
6. **Popup:** The paywall presents as a modal popup with customizable width, height, and corner radius from the center of the screen.

#### Presentation Style Examples

These examples use the same paywall so the presentation differences are easier to compare.

**Fullscreen** fills the device screen.

![Fullscreen presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-fullscreen.jpg)

**Push** presents the paywall through the app's navigation stack.

![Push presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-push.jpg)

**Modal** uses the platform's default modal presentation.

![Modal presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-modal.jpg)

**No Animation** presents modally without the transition animation.

![No Animation presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-no-animation.jpg)

**Drawer** presents from the bottom of the screen.

![Drawer presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-drawer.jpg)

**Popup** presents in the center of the screen with configurable sizing.

![Popup presentation style example](https://2b001d9a-superwall-docs-staging.staffbar.workers.dev/docs/images/pe-editor-presentation-style-popup.jpg)

#### Drawer Configuration

When using the **Drawer** presentation style, you can configure:

* **Height:** Set the height of the drawer as a percentage of the screen (default: 70%).
* **Corner Radius:** Set the corner radius for the drawer corners (default: 15px).
* **Scrolling:** Enable or disable scrolling within the drawer.

#### Popup Configuration

When using the **Popup** presentation style, you can configure:

* **Width:** Set the width of the popup as a percentage of the screen (default: 80%).
* **Height:** Set the height of the popup as a percentage of the screen (default: 60%).
* **Corner Radius:** Set the corner radius for the popup corners (default: 15px).

> **Note:** Popup style requires iOS SDK v4.8.0+

### Scrolling

Toggle the scrolling behavior of your paywall. Available options are:

1. **Enabled (Default):** The paywall can scroll its contents when presented on a device.
2. **Disabled:** Disables all scrolling behavior on the paywall.

> **Note:** Requires iOS SDK v3.11.2+ and Android SDK v1.4.0+

### Game Controller Support

Toggle game controller support for paywalls — obviously, ideal for paywalls shown in games where controllers may be in use. Available options are:

1. **Enabled:** The paywall can scroll its contents when presented on a device.
2. **Disabled (Default):** Disables all scrolling behavior on the paywall.

Learn more about game controller support [here](/docs/sdk/guides/advanced/game-controller-support#game-controller-support).

### Feature Gating

Feature gating allows you to control whether or not [placements](/docs/dashboard/dashboard-campaigns/campaigns-placements) should restrict access to features. Using either method, the paywall will still be presented if a user isn't subscribed:

1. **Non Gated:** Placements *will always* fire your feature block. Specifically, once the paywall is dismissed.
2. **Gated:** Placements *will only* fire your feature block if the user is subscribed. Note that if they are subscribed, the paywall will *not* be presented.

For example:

```swift
// With non gated - `logCaffeine()` is still invoked
Superwall.shared.register(placement: "caffeineLogged") {
  logCaffeine()
}

// With gated - `logCaffeine()` is invoked only if the user is subscribed
Superwall.shared.register(placement: "caffeineLogged") {
  logCaffeine()
}
```

This is useful to dynamically change what is paywalled in production without an app update. For example, in a caffeine tracking app — perhaps you might run a weekend campaign where logging caffeine is free. You'd simply change the paywall to be **Non Gated**. Then, the paywall would still be presented, but users would be able to continue and log caffeine.

For information on how this behaves when offline, view this [section](/docs/sdk/quickstart/feature-gating#handling-network-issues).

> **Note:** Feature gating does not apply if you are manually presenting a paywall via `getPaywall`.

### Cache on Device

If enabled, Superwall's SDK will cache the paywall on device. This can be useful if you have a paywall that could take a few seconds to fetch and present (i.e. if there is a video as part of your design). On-device caching can lead to quicker presentation.

> **Note:** Device caching is currently only available on iOS.

### Identifier

The identifier for the paywall. Non-editable.

### Present Paywall

> **Warning:** This is now deprecated in iOS SDK version 4 and above, and version 2 and above for all other SDKs. Instead, use the [entitlements](/docs/dashboard/dashboard-campaigns/campaigns-audience#matching-to-entitlements) feature when creating campaign filters.

You can have a paywall present under two different conditions when a [placement](/docs/dashboard/dashboard-campaigns/campaigns-placements) is matched:

1. **Check User Subscription:** Present the paywall only if the user's subscription is not active.
2. **Always:** Present the paywall regardless of the user's subscription status.

### Reroute back button

If enabled, allows you to run custom logic on back button press and consuming the event.
To use it, once the option has been enabled, use the `PaywallOptions.onBackPressed` and return true to consume the back press event or false to let the SDK handle it.

> **Note:** Back button rerouting is currently only supported on Android SDK 2.5.6 or higher