BugBee logo

What is BugBee?

BugBee is a free Discord bot designed to help game developers manage feedback.

Invite BugBee to your server

BugBee does not store any report, it only forward them to a dedicated channel in your discord server. Please review the Privacy Policy for more details.

Gather user reports from your game

or from discord

Getting Started

Add BugBee to your server

  1. Click on the following link to add BugBee to your game or company discord:
    Invite BugBee to your server
  2. Create a private channel, we'll call it the Backend Channel, and give access to people reviewing user reports as well as BugBee
  3. Initialize BugBee by typing /init in the Backend Channel

Add a Frontend Channel for a game

To register a channel where users can report feedback and bugs, create a dedicated Frontend Channel, and register it by typing: /add_game <your game name>

Add an Endpoint integration

To enable in-game reporting, you need to add an endpoint integration. Go to the dedicated Frontend Channel for your game, then type /add_endpoint_integration <shared_code>, where the shared_code is a string of your choosing. The bot will reply with your game's id. Note down your shared_code and your game_id for later.

You can now send report from you game to Bugbee's api. Please refer to the API Reference for more details.

How can I get some support

Join us on discord to get support, leave a feedback, report a bug, or ask for a new feature!

Bot Reference

Owner commands

Commands that can only be run by the discord server admin.

/init

Initialize BugBee and Backend Channel on your server, in the channel where the command was issued.
This channel will be the channel where users reports will be forwarded.

/add_game <game_name>

game_name: The name of the game you want to create a Frontend Channel for.

Create a Frontend Channel for a specific game, in the channel where the command was issued.
This channel will be the channel where users will be able to create reports for the specific game.

/add_endpoint_integration <shared_code>

shared_code: A shared_code required in the API calls
returns: The game_id, required in the API calls

Create an endpoint integration for the specifig Frontend Channel where the command was issued.
It enable users to submit reports via the API. More details in API Reference.

/remove_endpoint_integration

Remove the endpoint integration for the specifig Frontend Channel where the command was issued.
Users will not be able to submit reports via the API anymore.

/unregister_game_channel

Remove the Frontend Channel from the channel where the command was issued.
Users will not be able to submit report from this channel anymore.

/remove_bugbee

Un-initialize BugBee, clearing the database of all your data.

Users commands

/bee <report_type>

report_type: The type of report, can be Bug or Feedback description: The content of the report attachment (Optional): An optional attachment, like a screenshot

Create a report with an optional attachment

/bug

description: The content of the report attachment (Optional): An optional attachment, like a screenshot

Create a Bug report with an optional attachment

/feedback

description: The content of the report attachment (Optional): An optional attachment, like a screenshot

Create a Feedback report with an optional attachment

API Reference

POST https://api.bugbee.app/v1/report

Create a report for game, with an optional attachment.

Content-Type: multipart/form-data; boudary=<boundary word>
Content-Length: <size of the body>

Body

game_id - string - Required

Game ID returned by the /add_endpoint_integration command.

endpoint_secret - string - Required

The shared_code used when register a channel with the /add_endpoint_integration command.

description - string - Required

The content of the report written by the user.

report_type - string - Required

The type of report that is being created, can be Feedback or Bug.

attachment - bytes - Optional

Needed if attachment_filename is set.
The binary array containing the raw data of the file to upload, up to 10MB.

attachment_filename - bytes - Optional

Needed if attachment is set.
The name of the file uploaded in the attachment field.

Example

A simple Godot Example:

func send_feedback_multipart(game_id: String, endpoint_secret: String, text: String, report_type: String, image: Image) -> void:
	var http_request = HTTPRequest.new()
	add_child(http_request)

	var body = PackedByteArray()
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"attachment\"\r\n".to_utf8_buffer())
	body.append_array("Content-Type: image/png\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array(image.save_png_to_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"game_id\"\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array(game_id.to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"endpoint_secret\"\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array(endpoint_secret.to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"description\"\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array(text.to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"report_type\"\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array(report_type.to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary".to_utf8_buffer())
	body.append_array("\r\nContent-Disposition: form-data; name=\"attachment_filename\"\r\n".to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("screenshot-{0}.png".format([Time.get_datetime_string_from_system()]).to_utf8_buffer())
	body.append_array("\r\n".to_utf8_buffer())
	body.append_array("--boundary--".to_utf8_buffer())
	
	var headers = [
		"Content-Length: " + str(body.size()),
		"Content-Type: multipart/form-data; boundary=boundary"
		]
	
	http_request.request_raw("https://api.bugbee.app/v1/report", headers, HTTPClient.METHOD_POST, body)

Privacy Policy

Application permission

BugBee only need a restricted set of permissions to operate:

  • Send Messages
  • Attach Files

Data Collection

To function properly, BugBee stores Discord identifiers for:

  • servers
  • server's owners
  • backend channel
  • frontend channels

If an endpoint integration is enable for a game, BugBee will also store its shared_code.