RELAYCAST 0.2.1 BETA — MULTISTREAM FOR OBS Windows x64 | Built for OBS Studio 32.2.2 | November 5, 2026 Send one OBS program to YouTube, Twitch, Kick, Patreon, and additional custom RTMP/RTMPS destinations. There is no subscription, activation, destination paywall, relay service, or telemetry in this plugin. Each destination uses your own upload. OPTIONAL SUPPORT The coffee button opens https://buymeacoffee.com/xanderdevelops in your browser. No stream keys or other settings are included in the link. Support is optional; all streaming features remain free. GET STARTED 1. Run RelayCast-Setup-0.2.1.exe, click Install RelayCast, and approve the Windows installation prompt. The installer places the plugin in OBS's standard folder. This beta is unsigned. Review its source/checksum before installing. The ZIP also includes Install.ps1 and the files for manual installation below. 2. Restart OBS. Open Tools > RelayCast — Multistream. Existing saved keys are kept. 3. Select a destination. Paste its stream key and, when needed, its server URL. Check the box beside each destination you want to send to. 4. Choose 720p or 1080p and 30 or 60 fps. Save settings. Set up your OBS scene. For true 1080p, set OBS Settings > Video > Output (Scaled) Resolution to 1920x1080. Set the OBS frame rate to 60 if you want 60 fps. The panel displays the actual output resolution/frame rate; it never upscales a smaller source. 5. Click Start all in RelayCast. Check each platform's preview and publish the broadcast if its dashboard requires a separate Go Live / Start Live action. 6. Click Stop all in RelayCast to end all its outputs. The normal OBS Start/Stop Streaming button operates independently of RelayCast. Closing the RelayCast panel keeps its streams running. Exiting OBS or changing OBS profiles / scene collections stops RelayCast. No stream starts automatically. Do not enter account passwords for YouTube/Twitch/Kick/Patreon. Their stream keys provide the required ingest credentials. The optional username/password fields are only for a custom RTMP server that explicitly requires server authentication. MANUAL INSTALLATION Create these folders if needed, then copy the files: plugin\bin\64bit\relay-cast.dll -> C:\ProgramData\obs-studio\plugins\relay-cast\bin\64bit\relay-cast.dll README.txt -> C:\ProgramData\obs-studio\plugins\relay-cast\data\README.txt Restart OBS after installation. For portable OBS, copy the DLL into its obs-plugins\64bit folder and create data\obs-plugins\relay-cast with README.txt. Install only one copy of the plugin. The installer keeps an existing binary as a backup and can swap the file without closing OBS when Windows permits it. The running OBS process keeps its current version until you restart it. If Windows locks the file against replacement, close OBS and run the installer again. To uninstall, close OBS and remove only the relay-cast plugin folder you installed. Your encrypted configuration is separate and can be retained for a reinstall. PLATFORM SETUP YouTube: the RTMPS server is prefilled. Get the stream key from Live Control Room. Set the title, privacy, and broadcast details there. If automatic start is off, publish from YouTube after its preview appears. https://support.google.com/youtube/answer/10364924 Twitch: a standard ingest address is prefilled. Get your Primary Stream Key from the creator dashboard. The server field is editable for regional ingest choices. https://dev.twitch.tv/docs/video-broadcast/ Kick: paste BOTH the Stream URL and Stream Key from your creator dashboard. Bare Kick AWS ingest URLs such as rtmps://HOST.global-contribute.live-video.net/ are automatically completed to rtmps://HOST.global-contribute.live-video.net:443/app. An existing explicit port is preserved. The stream key remains a separate field. Set your title and category in Kick's dashboard before starting. https://help.kick.com/en/articles/7066931-how-to-stream-on-kick-com Patreon: create a Live and choose Other streaming service. Paste the URL and key for that session. After RelayCast connects, return to Patreon and click Start Live. Each new Live has a new URL/key. Native Patreon Live is subject to account eligibility; the plugin cannot unlock unavailable platform features. https://support.patreon.com/hc/en-us/articles/35597591801997-Going-Live-on-Patreon-through-OBS STREAM SETTINGS AND BANDWIDTH This beta uses one shared x264 software H.264 encoder and one AAC audio encoder. Video: CBR 4500 kbps by default, two-second keyframes, veryfast preset. With Kick enabled, H.264 Main profile and zerolatency tuning are applied to the shared encoder. OBS audio must be stereo at 48 kHz or lower for Kick. Audio: 160 kbps, OBS audio track 1. Enable track 1 for sources you want included. Video preserves the OBS output aspect ratio and fits within 1280x720 or 1920x1080, without upscaling. 1080p / 30 fps is the new default, including migrated v0.1 settings. The frame-rate selector sets a cap of 30 or 60 using an integer divisor. For example, at the 30 fps cap, 60 becomes 30, 50 becomes 25, and 29.97 stays 29.97. At a 60 fps cap, a 30 fps OBS source stays at 30. Higher resolution/fps requires more CPU. Use an SDR Rec. 709 OBS video profile. HDR is rejected before streaming starts. Bitrate can be set between 1000 and 8000 kbps; each platform has its own limits. This beta has no hardware encoder selection, per-destination encoding, chat aggregation, OAuth account linking, vertical second scene, or cloud relay. Four destinations at the default settings send about 18.6 Mbps before overhead. Allow roughly 23.3 Mbps of reliable upload capacity (25% headroom), plus other internet traffic. There is no extra encoding pass per destination, but software encoding still consumes CPU. Monitor OBS rendering/encoding load during a trial. CONNECTION STATUS Connecting: attempting a connection; it does not yet mean the platform is live. Sending: the RTMP connection is established. Confirm publication in the dashboard. Reconnecting: an established connection dropped; OBS retries automatically. Failed: that destination stopped. Other destinations continue independently. Stop all, correct the destination, and Start all to begin a new session. Validation runs on all enabled destinations before any of them starts. Empty keys, unsupported URLs, duplicate endpoints, and invalid bitrate values block startup. Connection errors can still happen after that. Automatic reconnect uses OBS's retry mechanism with 20 attempts and an initial two-second retry interval. LOCAL CREDENTIAL STORAGE The entire settings document is encrypted with Windows DPAPI for the current Windows user. It is written atomically to the OBS plugin configuration directory: %APPDATA%\obs-studio\plugin_config\relay-cast\settings.dpapi Portable OBS uses its own config directory. The exact path is provided by OBS. Configuration is shared by OBS profiles in the same installation. Credentials are sent directly to your selected streaming providers when you start. RTMPS encrypts transport; plain RTMP does not. Prefer provider-supported RTMPS URLs. Do not put stream keys in the Server URL field. OBS's native logging may include server addresses. This plugin never logs key/password values itself. Encrypted files are not portable between Windows users/machines. Re-enter keys on another PC. A corrupt or undecryptable file is left untouched and saving is disabled; recover or rename it while OBS is closed before setting up again. RESELLING AND DISTRIBUTION The source in this package is GPL-2.0-or-later, compatible with the OBS interfaces it links to. See LICENSE.txt. You may sell copies, branded builds, installation, or support. When distributing binaries, provide complete corresponding source, build instructions, notices, and the GPL rights with them. Recipients retain the right to modify and redistribute, including free redistribution. This is not an exclusive proprietary plugin license. Keep the source folder with the binary. https://www.gnu.org/licenses/gpl-faq.en.html#DoesTheGPLAllowMoney RelayCast is a working name, not a cleared trademark. No platform affiliation is claimed. This is an unsigned beta, not a certified commercial release. Before selling it, complete UI/accessibility testing, real-platform trials, long-running streams and network-loss tests, version compatibility testing, and signing. Platform requirements still apply. Twitch's simulcasting rules include keeping its experience at least as good and restrictions on combined activity overlays. https://www.twitch.tv/p/terms-of-service#11-simulcasting Kick Partners should review their multistream toggle and payout rules. https://help.kick.com/en/articles/11091744-multistreaming-on-the-kick-partner-program BUILD AND TEST Install Python 3.10+, Git, Visual Studio 2022's Desktop development with C++ workload, and OBS Studio 32.2.2 x64. From source: python build.py --tests --preview The script downloads the official OBS 32.2.2 source headers and verifies its pinned commit. It creates import libraries from the installed OBS DLL exports. It does not bundle or replace OBS/Qt. Build output is source\.build. You may provide --sdk-dir, --obs-dir, and --build-dir. The generated obsconfig.h contains plugin-facing build macros only; the installed OBS runtime supplies the implementation. To run unit tests, add OBS's bin\64bit directory to PATH, then: .build\relay-tests.exe .build\unit-results To test four local RTMP outputs (requires actual FFmpeg and FFprobe executables): python test-streams.py --test-exe .build\relay-tests.exe --work .build\stream-test Repeat using --mode failure, --mode reconnect, --mode cancel, --mode 1080, --mode 1080-60, --mode downscale, and --mode audio as needed. Use --ffmpeg and --ffprobe to supply absolute executable paths. Avoid launcher shims: a shim can leave its child receiver running when terminated by a test. Tests send synthetic black video to 127.0.0.1 only. The audio test feeds distinct 440 Hz left / 880 Hz right tones through OBS track 1 and checks decoded AAC for audible level and correct stereo channels on all four receivers. Other modes use silent audio. No account credentials or real broadcasts are involved. The stock OBS RTMP module may independently refresh its public service catalog. See TEST-REPORT.txt for what was and was not verified on the build machine. To build the self-contained installer after building the DLL: python build-setup.py --build-dir .build/setup --output ../RelayCast-Setup-0.2.1.exe The installer embeds the plugin, README, GPL license, and corresponding source ZIP. For an isolated installer check, run it with --test-dir followed by an absolute temporary folder. This uses that folder instead of the system OBS plugin folder. The optional relay-preview.exe is a hidden UI layout fixture. Pass an absolute PNG path as its first argument. It renders its own controls using fake credentials, does not capture the desktop or load your saved keys, and cannot start a stream.