Dawn Stream reference

Compact lookup. Prefer topic chapters for procedures.

Console commands (cheat sheet)

ps_startStreaming, ps_stopStreaming, ps_dumpStats, ps_setBitrate, ps_forceKeyframe, ps_disconnectViewer, ps_statOverlay, ps_setInputOwner, ps_registerAppData, ps_sendAppData, ps_recordInput, ps_stopRecord, ps_replayInput, ps_stopReplay, ps_recordMedia, ps_stopMedia.

Details: Diagnostics.

Essential CLI (cheat sheet)

--dawnstream-enabled
--dawnstream-mode <Disabled|OnDemand|AlwaysStreaming>
--dawnstream-signaling-url <ws://…>
--dawnstream-streamer-id <id>
--dawnstream-embedded-signaling
--dawnstream-max-viewers <n>
--dawnstream-width / --dawnstream-height / --dawnstream-fps
--dawnstream-target-bitrate / --dawnstream-min-bitrate / --dawnstream-max-bitrate
--dawnstream-codec <h264|…>
--dawnstream-gpu-color-convert / --dawnstream-zero-copy-capture
--dawnstream-stun / --dawnstream-turn / --dawnstream-turn-username / --dawnstream-turn-password
--dawnstream-ice-port-min / --dawnstream-ice-port-max
--dawnstream-log-stats / --dawnstream-stats-csv <path>
--dawnstream-audio

Full tables: Configuration. Auth: env DAWNSTREAM_AUTH_TOKEN, PS_STREAMER_TOKEN, PS_VIEWER_TOKEN—not streamer secret CLI.

Essential setreg keys

Root: /Dawn Engine/DawnStream

  • Top: Enabled, Mode
  • Signaling.*: Url, StreamerId, Embedded, MaxViewers, AuthTokenEnv, …
  • Video.*: size, fps, bitrate window, GopSeconds, capture hierarchy, ZeroCopyCapture, …
  • Network.*: STUN/TURN, ICE ports
  • Input.*: local input, filters, arbitration
  • Diagnostics.*: log / CSV / overlay
  • Editor.*: StartOnLaunch, StreamSource, UseRemoteSignaling
  • Experimental.*: uplink, recording, file transfer, remote console

Defaults file: Gems/DawnStream/Registry/dawnstream.setreg.

Public API (user-facing summary)

Headers under Gems/DawnStream/Code/Include/DawnStream/:

SurfaceRole
IDawnStreamSystemC++ AZ::Interface facade
DawnStreamRequestBusScript / EBus mirror (Behavior category DawnStream)
DawnStreamNotificationBusMain-thread notifications

Requests (common): StartStreaming / StopStreaming, GetStatus / GetViewerCount, SetTargetBitrateKbps, RequestKeyframe, DisconnectViewer, FreezeFrame / UnfreezeFrame, RegisterAppMessage / SendAppMessage / SendAppResponse, RegisterAppData / SendAppData, SetCursor / SetCursorImage, ShowOnScreenKeyboard, SendGamepadHaptic, GrantInputControl / RevokeInputControl, input/media recording helpers.

C++-only extensions (not fully script-reflected): custom audio source, external frame source, external input sink, upstream watch APIs—see IDawnStreamSystem.h.

Notifications (common): streaming started/stopped, status changed, viewer connected/disconnected, input owner changed, app message/data, file received, freeze-frame changed, data channel open/close, signaling connected/disconnected, text input, gamepad/XR events, recording lifecycle.

Everyday streaming needs no entity components. Optional: DawnStreamVideoComponent for upstream display.

CMake media gates

GatePurpose
LY_DAWNSTREAM_LIBWEBRTC_ENABLED + package pathRoute A wrapper
LY_DAWNSTREAM_WEBRTC_NATIVE_ENABLED + package pathRoute B native
LY_DAWNSTREAM_NVENC_ENABLEDHardware H.264 / zero-copy prerequisite

Pick order at runtime: native > wrapper > stub.

Limits — rely on / do not assume

You can rely on:

  • Optional gem; single-streamer / single-viewer video + mouse/keyboard when media gates are on;
  • setreg + CLI + ps_* diagnostics; standalone or embedded signaling; STUN/TURN entry points;
  • Route A software encode demos; Route B hardware encode when built correctly;
  • Bitrate feedback, on-demand keyframes, input ownership and ReleaseAll on disconnect.

Do not assume:

  • Real video without CMake media gates;
  • Streaming enabled by default;
  • Zero-copy safe for unbounded reconnect loops;
  • Dawn Stream replaces Multiplayer state sync;
  • Multi-viewer arbitration, SFU, full cloud orchestration, HDR/XR as default deliverables.
DocContents
Getting startedLocal loop
Building for real mediaRoutes A/B
SignalingHub and tokens
Browser and inputPlayer and Input Owner
ConfigurationFull key tables
DiagnosticsStats and troubleshooting
DeploymentProduction checklist
Gems/DawnStream/README.mdGem quick start
Gems/DawnStream/Tools/*/README.mdE2E / weak-network / soak

Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.