diff --git a/docs/platforms/godot/configuration/filtering.mdx b/docs/platforms/godot/configuration/filtering.mdx
index 4fc0ee527cf2e..92087f4110d61 100644
--- a/docs/platforms/godot/configuration/filtering.mdx
+++ b/docs/platforms/godot/configuration/filtering.mdx
@@ -21,3 +21,50 @@ All Sentry SDKs support the callback m
Note also that breadcrumbs can be filtered, as discussed in [our Breadcrumbs documentation](/product/issues/issue-details/breadcrumbs/).
+
+## Filtering User Feedback
+
+
+
+User feedback doesn't pass through , so that callback can't filter or modify feedback submissions. Use instead.
+
+### Using
+
+The callback receives a prepared `SentryEvent` after scope data and event enrichment have been applied. Return the same event object, with or without modifications, to send the feedback, or return `null` to drop it.
+
+You can only set this callback [programmatically](/platforms/godot/configuration/options/#programmatic-configuration). Disable **Auto Init**, then assign the callback when initializing the SDK:
+
+```gdscript {tabTitle:GDScript} {mdExpandTabs}
+SentrySDK.init(func(options: SentryOptions) -> void:
+ options.before_send_feedback = _before_send_feedback
+)
+
+func _before_send_feedback(event: SentryEvent) -> SentryEvent:
+ if event.environment == "editor_dev_run":
+ return null
+ event.set_tag("feedback_source", "in_game_form")
+ return event
+```
+
+```csharp {tabTitle:C#}
+SentrySdk.Init(options =>
+{
+ options.SetBeforeSendFeedback(feedbackEvent =>
+ {
+ if (feedbackEvent.Environment == "editor_dev_run")
+ {
+ return null;
+ }
+ feedbackEvent.SetTag("feedback_source", "in_game_form");
+ return feedbackEvent;
+ });
+});
+```
+
+In C#, `SetBeforeSendFeedback` applies to feedback captured through the managed `SentrySdk.CaptureFeedback` API. Feedback captured through GDScript or the native Godot API uses `before_send_feedback` instead.
+
+
+
+In GDScript, the `before_send_feedback` callback isn't supported on iOS or macOS yet. Feedback is still sent on these platforms, but the callback doesn't run. This limitation doesn't apply to the C# callback.
+
+
diff --git a/docs/platforms/godot/configuration/options.mdx b/docs/platforms/godot/configuration/options.mdx
index c944d3bd69220..937fd5ebf0c11 100644
--- a/docs/platforms/godot/configuration/options.mdx
+++ b/docs/platforms/godot/configuration/options.mdx
@@ -462,6 +462,14 @@ In C#, `options.SetBeforeSend` covers managed events only. To filter native even
+
+
+Feedback events don't pass through [`before_send`](#before_send). Use this callback to inspect, modify, or drop user feedback before the SDK sends it to Sentry. You can only set it [programmatically](#programmatic-configuration).
+
+The submitted message, name, contact email, and associated event ID are included in the event's `feedback` context. See Filtering User Feedback for callback behavior, setup, and platform support.
+
+
+
If assigned, this callback runs before a screenshot is captured. You can only set it [programmatically](#programmatic-configuration). It takes `SentryEvent` as a parameter and returns `false` to skip capturing the screenshot, or `true` to capture the screenshot.
diff --git a/docs/platforms/godot/user-feedback/index.mdx b/docs/platforms/godot/user-feedback/index.mdx
index d8885e51ccae4..0d54d667ad711 100644
--- a/docs/platforms/godot/user-feedback/index.mdx
+++ b/docs/platforms/godot/user-feedback/index.mdx
@@ -25,7 +25,7 @@ The Sentry Godot SDK includes a reference User Feedback UI, which you can find i
- `user_feedback_form.tscn` + script: A minimal user feedback form, designed for integration into existing UI.
- `sentry_theme.tres`: The reference theme file used to customize the looks of user feedback UI.
-For quick implementation, drag and drop `user_feedback_gui.tscn` from the addon folder to your scene tree under a `CanvasLayer` node and call `show()` to display the feedback form. The form automatically scales to different viewport resolutions and handles its own visibility, hiding when users click "Submit" (sending feedback to Sentry) or "Cancel".
+For quick implementation, drag and drop `user_feedback_gui.tscn` from the addon folder to your scene tree under a `CanvasLayer` node and call `show()` to display the feedback form. The form automatically scales to different viewport resolutions and handles its own visibility. It hides when users click "Submit" or "Cancel". On submission, it captures feedback on the next drawn frame so an attached screenshot shows the game instead of the form and any text entered into it.

@@ -41,7 +41,14 @@ Add `user_feedback_form.tscn` as a preview while editing the theme file to see y
### Integrating the Form Into Existing UI
-For custom UI integration, use `user_feedback_form.tscn` instead. This component scene provides a flexible panel that can be embedded into other UI controls. Unlike the standalone GUI, you'll need to manage its visibility manually. The form exposes two signals for handling user interactions: `feedback_submitted` (triggered when feedback is sent) and `feedback_cancelled` (triggered when the user cancels the operation). After you instantiate the form inside your UI scene, you can use the provided signals to hide the form when it's no longer needed (or perform some other action):
+For custom UI integration, use `user_feedback_form.tscn` instead. This component scene provides a flexible panel that can be embedded into other UI controls. Unlike the standalone GUI, you'll need to manage its visibility manually.
+
+The form exposes two signals for handling user interactions:
+
+- `feedback_submitted` is emitted after feedback is queued but before it's captured. Hide or free the form in response. The feedback is captured on the next drawn frame so an attached screenshot shows the game without the form or any text entered into it.
+- `feedback_cancelled` is emitted when the user cancels the operation.
+
+After you instantiate the form inside your UI scene, connect these signals to hide the form when it's no longer needed. The form is implemented in GDScript, so C# code connects to its signals by name. The submitted `SentryFeedback` reaches the C# handler as a `GodotObject`.
```gdscript {tabTitle:GDScript} {mdExpandTabs}
# Assuming you have already added the form to your scene with "UserFeedbackForm" unique name.
@@ -106,6 +113,18 @@ SentrySdk.CaptureFeedback(
name: "Bob");
```
+### Exclude the Form From Feedback Screenshots
+
+Calling `SentrySDK.capture_feedback()` while an in-game feedback form is visible can include the form and its contents in an attached screenshot. Schedule capture after the next frame is drawn, then immediately hide or free the form:
+
+```GDScript
+RenderingServer.frame_post_draw.connect(
+ SentrySDK.capture_feedback.bind(feedback), CONNECT_ONE_SHOT)
+user_feedback_form.hide()
+```
+
+Feedback events don't pass through `before_send`. To inspect, modify, or drop feedback before it's sent, see [Filtering User Feedback](/platforms/godot/configuration/filtering/#filtering-user-feedback).
+
Sentry can optionally pair this feedback with an event, giving you additional insight into issues. Sentry needs the `event_id` to be able to associate the user feedback to the corresponding event. For example, to get the `event_id`, you can use before_send, or the return value of the method capturing an event.
```gdscript {tabTitle:GDScript} {mdExpandTabs}