Skip to content

Conversation

@limbonaut
Copy link
Collaborator

@limbonaut limbonaut commented Oct 17, 2025

This PR adds customizable User Feedback UI form. This is a reference implementation in GDScript, that developers can use in their projects for feedback submission. It supports some customization and theming, and can be used as an example to kickstart custom implementations.

User feedback form is located in addons/sentry/user_feedback folder.

The feedback form is customizable in appearance and behavior:

  • Appearance can be customized by copying the whole folder into the project, and adjusting UI controls directly in the scene files, and/or by adjusting the associated UI theme file. The reference theme file is included.
  • It automatically handles message validation, character limits, and feedback submission.

There are 3 sets of files:

  • user_feedback_form.{tscn,gd}: Feedback form -- a flexible control for integration into existing UI.
    • Doesn't require the other files to function.
  • user_feedback_gui.{tscn,gd}: Ready to use integration -- drag & drop into project's UI scene and call show() when needed.
    • Serves as an example of how to integrate feedback form into a project.
  • sentry_theme.tres Reference UI theme file (using light Sentry color scheme).

Additionally, the form can be customized via exported properties:

  • logo_visible -- if true, shows Sentry logo in the top-right corner (see screenshot).
  • name_visible -- shows/hides name input field.
  • email_visible -- shows/hides email input field.
  • minimum_words -- the number of words required before "Submit" button is enabled.

The default integration (user_feedback_gui) also handles auto-scaling for different resolutions.

Screenshot:

Screenshot 2025-10-18 at 14 17 58

Auto-scaling demonstration:

I disabled window stretch to simulate different resolutions (1 unit in scene corresponds to 1 px in the window).

UI.feedback.scaling.mp4

@github-actions
Copy link
Contributor

github-actions bot commented Oct 17, 2025

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against bd624bf

@limbonaut limbonaut marked this pull request as ready for review October 18, 2025 12:21
Copy link
Collaborator

@jpnurmi jpnurmi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I might steal the layout order with a mandatory message at the top, and an optional name and email below. Makes more sense that way! 🙂

By the way, are the .tscn and .tres files WYSIWYG-editable with a form designer or some such?

@limbonaut
Copy link
Collaborator Author

By the way, are the .tscn and .tres files WYSIWYG-editable with a form designer or some such?

Oh yeah, those are not manually typed! tscn stands for "text scene" and tres for "text resource" (Git-friendly serialization format), as opposed to scn and res, which are binary. tscn stores a scene that is edited directly in the Godot editor. tres is the same format as tscn, just used for some other Resource-derived types. Most of the builtin resources that serialize to tres have some kind of dedicated editor space in Godot, but not always. Here are some screenshots to illustrate it:
2025-10-22_14-26-02
2025-10-22_14-28-48

cursor[bot]

This comment was marked as outdated.

@limbonaut limbonaut merged commit c4d4741 into main Oct 25, 2025
46 checks passed
@limbonaut limbonaut deleted the feat/user-feedback-widget branch October 25, 2025 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

User Feedback Widget

4 participants