Community
Your community, from Discord
Link a game’s Discord server and its players’ feedback, suggestions and bugs land in the Community — from a form, a forum, a channel or any message — where they become issues of the team you choose. And run playtests, from the call to the reminder.
Before you connect
- One server per game. A game listens to one Discord server, and a server answers for one game. A server already linked to another game is refused, with the game's name.
- An owner or admin connects it. Members see which server the game listens to and who linked it.
- The bot asks only for what it uses. It sees channels, posts its forms, calls and reminders with their images, reads the channels you connect, gives the playtester role and creates the playtest events — no Administrator, and nothing that deletes your community's messages:
- View Channel
- Send Messages
- Embed Links
- Attach Files
- Read Message History
- Manage Roles
- Create Events
Connect a server
Open the game's Settings → Discord and select Connect Discord. Discord asks which server to add the LevelGrid bot to; pick yours, allow, and you are back in the settings with the server's name on the screen.
Remove takes the bot out of the server, after asking once. Everything it brought in stays — items, playtests and their applications are your studio's record. If someone removes the bot from Discord directly, the settings say so, and connecting again picks up where it left off.
Everything else lives in Settings → Community: one tab for each category — Feedback, Suggestions and Bugs — and in each, who sees it, how it comes in, and Send to LevelGrid.
Collect feedback, suggestions and bugs
A category comes in one way at a time: a Form, a Forum or Messages in a channel. Turning one on turns the others off, and the settings say what they turned off.
With the form, pick the channel and select Post in Discord. The bot posts a message with a button; a player presses it, answers the form inside Discord and sends it. Only they see the confirmation, and their report lands in Workspace → Community at once.
- The message is written on the card itself, like a playtest's call: the colour down the side, the title, the words, a picture and the footer — every word yours, in your players' language.
{title}is the form's title and{game}the game's name. The pencil beside the button sets its label, its colour — Discord has four: blurple, grey, green and red — and an emoji. Clicking the button itself opens the questions. - Update in Discord edits the message where it is — its place and its reactions stay. In another channel it is posted there, and the old one goes.
- Open off keeps the button in Discord, and it answers that the form is closed.
- If the bot is missing a permission in the channel you picked, the settings name it before you post.
The form
A form has up to five questions — Discord's limit — and each one is one of these:
| Question | What it takes |
|---|---|
| Short answer | One line, up to 4000 characters |
| Paragraph | Several lines, up to 4000 characters |
| Single choice | 2 to 10 options, one answer — can be the sub-topic |
| Multiple choice | 1 to 10 options, any number of answers |
| Checkbox | Yes or no — Discord cannot make it required; on a playtest, it can ask for DM consent |
| File upload | 1 to 10 files, copied into LevelGrid on arrival |
- A single-choice question can be the sub-topic — "Gameplay", "Menus", "Audio" — and the Community filters by it.
- Changing a form never changes the answers already received. Every report keeps the questions as they were asked.
- Files are copied into LevelGrid the moment they arrive, so a screenshot is still there next month. A file of a kind LevelGrid does not take, or above its size limit, does not come through — the report still does, and says which file was left out.
The other ways in
- Forum. Pick a forum: a new post becomes a report — its title, its words and its files. Only posts tagged takes a tag: then only posts with it come in, and one forum can serve Feedback, Suggestions and Bugs, each by its own tag. Sharing a forum takes a tag on every category, never the same one twice. A post's other tags become its sub-topic. Edits made after it arrived are not copied over.
- Messages. Pick a channel and its rules: at least so many words, a file required, and — if you want a person in the loop — only when a moderator reacts with the emoji you chose. A message that does not pass becomes nothing, and LevelGrid keeps none of it.
- "Send to LevelGrid". Beside the way in, not instead of it: on any message, under Apps, the team sends it as feedback, a suggestion or a bug. With no roles picked, members with the Manage Messages permission see it. Picking roles narrows it — and a role without Manage Messages also has to be allowed in Discord, under Server Settings → Integrations → LevelGrid; a bot cannot do that for your server. The same message sent twice in one category is one report.
Who sees a category, and who decides
Each category has two pickers under Permissions. With nothing picked, everyone who sees the game sees its reports, and everyone who writes issues decides on them. Pick teams under Who can see and only their members see the category; pick teams under Who can approve, link and dismiss and only theirs decide. A team that decides also sees, and owners and admins always can. Someone kept from a category has no tab for it in the Community, and LevelGrid refuses it to them however they ask.
A message or post deleted in Discord after it arrived keeps its report, which says the original is gone.
The forum and the channel need the bot to read messages: Discord calls this Message Content, and LevelGrid's bot asks for it. The command does not need it — the message comes with the command.
Triage in the Community
Workspace → Community has a tab per category, with every report from every game you can see. Filter by game, sub-topic, period, priority and state — the filters live in the link, so a view of the box is a link you can share. Set the priority straight from the row: urgent first, no priority last, newest first within each.
Open a report to see the player's answers and files, their Discord name and ID, how old their account is (a new account is flagged, never refused), and where it came from. Then decide:
- Approve as an issue: choose the team — it is a call, not a default — and the issue is created with the player's answers and a link back. The issue never carries the player's name or Discord ID; those stay on the report. The issue says it came from the Community, and the report links to the issue.
- Link to an existing issue: the duplicate of a bug the team is already fixing. Type the issue's ID (like ART-12), check its title, and link: the issue counts the reports pointing at it, its files come along, and its timeline says a Community report was linked.
- Dismiss: say why — duplicate, out of scope, spam or other — with a note if you want. A dismissal can be undone.
Anyone who decides on the category can triage it (see Who sees a category, and who decides above). Approving a report as an issue, or linking it to one, also writes that issue — so it needs a place on the issue’s team, like any other change to it (the owner and admins are on every team).
Playtests
Workspace → Community → Playtests lists every playtest as a table — its approval, where it happens, when it starts, how many players are waiting and how many are approved, and whether its call and its event are in Discord. The rows are grouped by stage, and Status and Approval narrow the list; the filters stay in the link.
A playtest's stage follows what happened to it:
- Draft — nothing is in Discord yet.
- Scheduled — its call or its event is out, and it takes applications.
- Paused — applications are closed, and it has not started.
- Live — somebody pressed Start playtest, or started its event in Discord.
- Ended — somebody pressed End playtest, its event ended in Discord, or its end time passed.
The start time alone never makes a playtest live — like Discord's own events, somebody starts it. A start time that passed without that is shown in red.
New playtest
New playtest prepares the event in one go: a name and an icon, what players will try, where it happens — a voice channel or a stage, listed as your server lists them, or a link — when it starts and, if you like, when it ends, a cover (at least 800 × 320) and how people get in:
- Immediately — everyone who applies is in, and is told so on the spot.
- After review — applications wait in the playtest until someone approves or rejects them.
- After a set time — applications wait for the minutes, hours or days you set; whoever nobody decided on by then is in. Deciding sooner always wins. Switching a playtest to this starts the wait for whoever is already waiting — nobody is let in on the spot — and changing the time moves every wait with it.
A link needs an end time: Discord asks events held somewhere else for one.
The playtest's page
At the top, the playtest's stage and what moves it: Pause applications (its button in Discord answers that the call is over), Start playtest and End playtest — which ends its event too, and cannot be undone. Below, three tabs:
- Configuration — the name, the words, where, when, the cover, how people get in and the playtester role.
- Discord — what the playtest says in your server, each part as it will look there.
- Applications — every application with the player's Discord name and ID, how old their account is, when they applied and every answer. Approve or reject them one by one, or select several and decide them together.
In Discord
- The call. Write it on the card itself: the colour down the side, the title, the words, the picture — the cover, another one, or none — and the footer. Every word is yours, How to get in included — it is a line of the words — so the whole message can be written in your players' language; rename the button with the pencil beside it. Marks like
{title},{when}or{where}are filled when the call is sent, so a date changed in Configuration is the date in the next post; Preview shows them filled. Its button opens the playtest's form — click it to edit the questions. Marks are filled in English ({approval}reads "Apply — …"): to write in another language, write those lines yourself. As an owner or admin, pick the channel and post it; posting again in the same channel updates the message instead of sending a new one. - The event. Shown as Discord will show it, built from Configuration — the parts it still lacks marked as such. Publish event, Update event after a change, Cancel event, and see who marked it Interested.
- The form. The questions beside the window Discord will show, saved together.
- Reminders. As many as the session needs, each so long before the start — in minutes, hours or days — to the call's channel and/or by DM to approved players who agreed, each written as its own card. In the channel a reminder can ping the playtester role above the message; a DM never does. Picking the role right in the ping line sets the playtest's role — the one approved players get. Moving the start moves every reminder. Each reminder can also be sent now, from the icon on its card — it still goes out at its time — and everything sent is listed with how it went.
The result of an application goes by DM only to a player who ticked the form's consent box. Without it, nothing is sent. A DM that Discord refuses — usually because the player's DMs are closed — is written on the application and never retried.
Who does what. Anyone who runs playtests creates and configures them, writes the call and the form, starts and ends them, and decides applications. Speaking in your server — posting the call, publishing the event, the reminders and the role — is an owner's or admin's.
The playtester role goes to every approved player. The bot needs Manage Roles and a role of its own above that one; a role it cannot give says so before you approve anyone.
A player's data
When a player asks to be forgotten, open Settings → Discord → A player's data, enter their Discord user ID and select Find. You see what the game holds from them — reports, applications and files — and Delete all of it removes them for good, files included. Issues made from their reports stay: they never had the player's name.
Tell your community what the bot collects and why: your server's rules or a pinned message are good places for it. Our Privacy Policy says what LevelGrid does with your players' data, and you can point them to it.
What is next
Charts of what came in, by category and by week; telling a player when their bug is fixed; forms in steps; one server for several games; reactions as votes; and handing playtest keys to the approved.