# Users | Sentry for Godot Engine

Users consist of a few critical pieces of information that construct a unique identity in Sentry. Each of these is optional, but one **must** be present for the Sentry SDK to capture the user:

### [`id`](https://docs.sentry.io/platforms/godot/enriching-events/identify-user.md#id)

Your internal identifier for the user.

### [`username`](https://docs.sentry.io/platforms/godot/enriching-events/identify-user.md#username)

The username. Typically used as a better label than the internal id.

### [`email`](https://docs.sentry.io/platforms/godot/enriching-events/identify-user.md#email)

An alternative, or addition, to the username. Sentry is aware of email addresses and can display things such as Gravatars and unlock messaging capabilities.

### [`ip_address`](https://docs.sentry.io/platforms/godot/enriching-events/identify-user.md#ip_address)

The user's IP address. If the user is unauthenticated, Sentry uses the IP address as a unique identifier for the user. Serverside SDKs that instrument incoming requests will attempt to pull the IP address from the HTTP request data (`request.env.REMOTE_ADDR` field in JSON), if available. That might require `send_default_pii` set to `true` in the SDK options.

If the user's `ip_address` is set to `"{{auto}}"`, Sentry will infer the IP address from the connection between your app and Sentry's server.

If the field is omitted, the default value is `null`. However, due to backwards compatibility concerns, certain platforms (in particular JavaScript) have a different default value for `"{{auto}}"`. SDKs and other clients should not rely on this behavior and should set IP addresses or `"{{auto}}"` explicitly.

To opt out of storing users' IP addresses in your event data, you can go to your project settings, click on "Security & Privacy", and enable "Prevent Storing of IP Addresses" or use Sentry's [server-side data](https://docs.sentry.io/security-legal-pii/scrubbing.md) scrubbing to remove `$user.ip_address`. Adding such a rule ultimately overrules any other logic.

Additionally, you can provide arbitrary key/value pairs beyond the reserved names, and the Sentry SDK will store those with the user.

To identify the user:

```GDScript
var user := SentryUser.new()
user.generate_new_id()
user.infer_ip_address()
user.email = "jane.doe@example.com"
SentrySDK.set_user(user)
```

To see user statistics in [Release Health](https://docs.sentry.io/platforms/godot/configuration/releases.md#release-health), set at least one of the following: `id`, `username`, or `email`.

You can also clear the currently set user:

```GDScript
SentrySDK.remove_user()
```
