---
title: "Filtering"
description: "Learn more about how to configure your SDK to filter events reported to Sentry."
url: https://docs.sentry.io/platforms/unreal/configuration/filtering/
---

# Filtering | Sentry for Unreal Engine

When you add Sentry to your app, you get a lot of valuable information about errors and performance. And lots of information is good -- as long as it's the right information, at a reasonable volume.

The Sentry SDKs have several configuration options to help you filter out events.

We also offer [Inbound Filters](https://docs.sentry.io/concepts/data-management/filtering.md) to filter events in sentry.io. We recommend filtering at the client level though, because it removes the overhead of sending events you don't actually want. Learn more about the [fields available in an event](https://develop.sentry.dev/sdk/foundations/transport/event-payloads/).

## [Filtering Error Events](https://docs.sentry.io/platforms/unreal/configuration/filtering.md#filtering-error-events)

Configure your SDK to filter error events by using the `BeforeSend` callback method and configuring, enabling, or disabling integrations.

### [Using `BeforeSend`](https://docs.sentry.io/platforms/unreal/configuration/filtering.md#using-before-send)

All Sentry SDKs support the `BeforeSend` callback method. Because it's called immediately before the event is sent to the server, this is your last chance to decide not to send data or to edit it. `BeforeSend` receives the event object as a parameter, which you can use to either modify the event’s data or drop it completely by returning `null`, based on custom logic and the data available on the event.

```cpp
UCLASS()
class USomeBeforeSendHandler : public USentryBeforeSendHandler
{
	GENERATED_BODY()

public:
	virtual USentryEvent* HandleBeforeSend_Implementation(USentryEvent* Event, USentryHint* Hint) override
    {
        UE_LOG(LogTemp, Log, TEXT("Hello from CPP beforeSend handler"));
	    return Super::HandleBeforeSend_Implementation(Event, Hint);
    }
};

...

FConfigureSettingsDelegate SettingsDelegate;
SettingsDelegate.BindDynamic(this, &USomeClass::HandleSettingsDelegate);

void USomeClass::HandleSettingsDelegate(USentrySettings* Settings)
{
    Settings->BeforeSendHandler = USomeBeforeSendHandler::StaticClass();
}

...

USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem<USentrySubsystem>();

SentrySubsystem->InitializeWithSettings(SettingsDelegate);
```

Note also that breadcrumbs can be filtered, as discussed in [our Breadcrumbs documentation](https://docs.sentry.io/product/error-monitoring/breadcrumbs.md).
