Apparently there's a somewhat undocumented way to add custom docks: https://github.com/obsproject/obs-studio/blob/92a7c12909556d8b64e1ea68a80a255b46d672cf/UI/obs-frontend-api/obs-frontend-api.h#L127 And here's some even more advanced usage with custom GUI in tools and stuff: https://github.com/ratwithacompiler/OBS-captions-plugin/blob/72f344757b2a04ba731a4b44ab32c4aa27477c83/src/google_s2t_caption_plugin.cpp#L108