Use the latest BugQuest Godot plugin for the APIs below. GDScript calls use the BugQuest node; C# calls use BugQuest.BugQuestAPI from the dotnet release.
Video capture supports Windows with an NVIDIA GPU capable of NVENC hardware encoding. Godot requires a RenderingDevice renderer (Forward+ or Mobile); Compatibility and headless mode do not capture video. See the Video FAQ.
Call these methods on the main thread after BugQuest has initialized. Recording and file work run asynchronously. C# methods safely return false or do nothing when BugQuest is absent or disabled.
var bq = get_node_or_null("/root/BugQuest")StartReplay
Replay APIStarts a replay with the supplied label. Returns true if the start request was accepted; false if recording is unavailable or a replay is already active. The server configuration also limits the duration.
- label / replayLabel: label shown in the dev console.
- discard_on_timeout / discardReplayOnMaxDurationTimeout: discard on timeout instead of saving. Call StopReplay to keep it before the timeout.
- maximum_minutes / maxReplayDurationMinutes: requested maximum duration in minutes, capped by the server configuration.
GDScript
start_replay(label: String, discard_on_timeout: bool = false, maximum_minutes: int = 2147483647) -> bool
if bq and not bq.is_replay_recording():
bq.start_replay("BossFight")C#
bool StartReplay(string replayLabel, bool discardReplayOnMaxDurationTimeout = false, int maxReplayDurationMinutes = int.MaxValue)
if (!BugQuest.BugQuestAPI.IsReplayRecording())
{
BugQuest.BugQuestAPI.StartReplay("BossFight");
}StopReplay
Replay APIRequests completion of the active replay. Returns true if the request was accepted. Saving finishes asynchronously; replay status may remain true while finalization is pending.
- discard / discardReplay: discard the replay instead of saving it.
- label / replaceLabel: replace the original label; null preserves it.
- keep_minutes / onlyKeepLastMinutes: keep only the last N minutes. The default keeps the whole replay.
GDScript
stop_replay(discard: bool = false, label = null, keep_minutes: int = 2147483647) -> bool
if bq:
bq.stop_replay(false, null, 5)C#
bool StopReplay(bool discardReplay = false, string replaceLabel = null, int onlyKeepLastMinutes = int.MaxValue)
BugQuest.BugQuestAPI.StopReplay(onlyKeepLastMinutes: 5);
IsReplayRecording
Replay APIReturns true while a replay is active, including pending finalization. Returns false when video is unavailable or disabled.
GDScript
is_replay_recording() -> bool
if bq and bq.is_replay_recording():
bq.stop_replay()C#
bool IsReplayRecording()
bool recording = BugQuest.BugQuestAPI.IsReplayRecording();
EnableErrorClips
Error Clips APIAllows automatic error clips again after DisableErrorClips. Clips still require server configuration to enable them and supported hardware. This does not undo DisableAllVideoFeatures.
GDScript
enable_error_clips() -> void
if bq:
bq.enable_error_clips()C#
void EnableErrorClips()
BugQuest.BugQuestAPI.EnableErrorClips();
DisableErrorClips
Error Clips APISuppresses new error clips without stopping replays or error reporting. The setting survives configuration refreshes for the current app session and can be reversed with EnableErrorClips. Clips already requested may finish.
GDScript
disable_error_clips() -> void
if bq:
bq.disable_error_clips()C#
void DisableErrorClips()
BugQuest.BugQuestAPI.DisableErrorClips();
DisableAllVideoFeatures
Runtime Control APIStops capture and disables Error Clips and Replays for the rest of this app session. Error collection and upload continue. The existing GDScript method disable_video() remains an alias.
GDScript
disable_all_video_features() -> void
if bq:
bq.disable_all_video_features()C#
void DisableAllVideoFeatures()
BugQuest.BugQuestAPI.DisableAllVideoFeatures();
Disable
Runtime Control APIDisables BugQuest collection, upload, and video for the rest of the current app session. BugQuest starts again on the next application launch unless disabled again.
GDScript
disable() -> void
if bq and not bq.is_disabled():
bq.disable()C#
void Disable()
BugQuest.BugQuestAPI.Disable();
SendUserReport
User Reports APIQueues player feedback as a report, with optional attachment file paths. Your game provides the feedback UI. Returns whether the request was accepted locally, not confirmation of server delivery.
- message / text: feedback text stored in the report message.
- attachment_paths / attachmentPaths: optional paths to existing files, such as a screenshot.
GDScript
send_user_report(message: String, attachment_paths: PackedStringArray = []) -> bool
if bq:
bq.send_user_report("The quest marker disappeared")C#
bool SendUserReport(string text, string[] attachmentPaths = null)
BugQuest.BugQuestAPI.SendUserReport("The quest marker disappeared");