zkyp.nl / UT / Streambot

Discord-controlled Unreal Tournament spectator + OBS streaming automation
Last updated: 22-01-2026
Status: active Platform: Ubuntu OBS: Flatpak Focus: stable start/stop

What it does

Streambot lets you start and stop a UT spectator Twitch stream from Discord. You give it a server target, it launches Unreal Tournament and OBS, starts streaming, then monitors the game log so it can shut everything down cleanly when the match ends or when you stop it.

How to use it

Commands !stream ip:port?password=... — start streaming !stream status — show current status !stream stop — stop (restricted) !stream help — show help Accepted target formats ip:port?password=... unreal://ip:port?password=... Rules • Target must be whitelisted • Password is required (?password=...) • Password is never shown • One stream at a time (no queue) • Auto-stops on map change / password failure

Architecture flow

Simple, single chain.
Discord -> bot (python) -> systemd (bash) -> UT + OBS (sex) -> log watcher (commandline kung fu) -> stop (tears)

Warez

  • OS: Ubuntu 22.04 jammy jam jam
  • CPU: i3-9100F
  • RAM: 16GB
  • GPU: Nvidia 1660 Super
  • OBS: OBS Studio 32.0.4
  • Network: Limited to 200mbit/s
  • UT: 469e / 4K textures / 2560*1440 at 240 fps / OGL (duh)
  • Twitch: Enhanced broadcasting (2), NVENC H.264, CBR, 8000 bitrate, 1920*1080 at 60fps

Changelog

Newest on top.
2026-01-25
Added
  • Added 20 minute timer after game to wait for new games so it keeps the stream alive
  • Added new "waiting" scene in OBS
  • Now has cool movies while waiting
  • Added hacky timer
2026-01-22
Added Fixed
  • Initial public page for Streambot.
  • Documented basic start/stop flow.
2026-01-10
Cried
  • Don't use chatGPT for bash kids

To-do list

    YES
  • Discord voicecomms
  • Omniview continues development
  • Longer streams so you don't have to !stream every game
  • Nice to have
  • Omniview coloured messages
  • Youtube stream with better codec
  • gtfo
  • Spectate items before they spawn