Form Embedder
Intro
Can you imagine a world in which this beautiful form can be added, with just a few short clicks, to any Roblox experience?
Well we live in that world! Through the power of Form Embedder, gathering feedback has never been easier. Get it here:
Setup
-
Create your form through Google Forms. Make sure itâs public!
-
Ensure you have access to 3rd party APIs enabled in your experience by visiting Game Settings and toggling Allow HTTP Requests
-
Insert Form Embedder into Workspaceâ°
-
Navigate to FormModules â Config
-
Set the
FormId
var to be your formâs ID
-
Thatâs it! Press Play and your experience will have an embedded form.
A feedback button will show up on the right side of the top bar.
Your form will show when you press this button. See more in Default Behavior. Hereâs a demo of what this all looks like from start to finish.š
Features
Supported Questions
Form Embedder supports the first five question types² available in Google Forms
Any questions can be marked as Required and forms will fail to submit until there are valid entries for each of them
Custom Options
Multiple Choice and Checkbox questions with Choice fields set to Other are fully supported.
Autofilled Metadata
To quickly populate a username, display name, or userid, name a question in your form identically to the key found in the Config.Metadata object (e.g. __username__
)
Cross-Platform Support
For keyboard and gamepad support, each option has its own focused state. The UI generally follows accessibility guidelines (e.g. the labels for checkboxes and radio buttons are also clickable).
Text Filtering
All text inputs are filtered by default. You can disable this through the Config
file if you need information that is safe for users to share and likely to get filtered, e.g. console logs.
Theming
Not tons of theme support⌠YET⌠but the color you pick for your theme will persist in the Lua UI
Use Cases
In-Experience
The main reason I wanted to create model in the first place was to smooth out the experience of providing feedback in Accelerator playtests Having an in-experience way to provide feedback is far more engaging than going back and forth between the client a web browser
Default
The default behavior in Form Embedder adds a feedback button in the top right hand corner (next to the player list button). This toggles form visibility
Custom
There is a ToggleForm
BindableFunction
you can invoke to show and hide the form. It takes in a FormId
. If you would like to show different forms at different times, you can fire this event with different FormId
s.
Applications
Need some ideas on what this can be used for?
- Crowdsourced level difficulty
- Bug reporting
- Ban appeals
- Admin / role applications
Reminder about User Data
As the creator of your experience, you are responsible for making sure that a playerâs data gets deleted if they make a right to be forgotten request, regardless of whether you store personal information on or off platform. Please see About GDPR and CCPA | Documentation - Roblox Creator Hub.
With that said, please keep in mind that publicizing personal information of others on the Roblox platform or off-platform is prohibited by our Community Standards. This includes usernames and userIDs.
Plugin
Thereâs no official or semi-official support for this (yet) (probably just takes a little hackery and a bit more knowledge of file management in plugins), but the possibilities are endless⌠soon .
Feedback
Feature Requests
If you would like to provide feedback or make any feature requests, as always, feel free to comment below - but in the spirit of things, I also made a testing place that has a feedback form in it
Bug reports
Bug reports are always welcome through preferably a DM, and otherwise in the comments section or a separate post. PLEASE INCLUDE A LINK TO YOUR FORM - it is nearly impossible to debug a problem without access to the source data.
Maintainability
The approach taken to achieve this goal is prone to break for various reasons. In the future I would like to convert the more breakable aspects of this into a package so that it can be more reliable.
Anyways thats it! Thanks for reading! Hope you all get alllllll the feedback. Please share any clever usages - theyâre so much fun to see
~ BitwiseAndrea
â° If you want to keep your workspace clean, move the files / folders into the appropriate locations as defined by the Setup script, and then delete the Setup script.
š Not part of the steps: I disabled CacheForm so you can see it updating in near-real-time.
² If you include other question types it will almost certainly not work. I am begging you please do not include them.