Skip to content

About

Hook for Quantum Break that enables offline playback of live episodes and subtitle override

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Repository files navigation

Quantum Streamer

Hook for Quantum Break that enables offline playback of live episodes and subtitle override.

Table of Contents

Game Info

Quantum Break Cover

Type Value
Developer(s) Remedy Entertainment
Publisher(s) Microsoft Studios
Director(s) Sam Lake, Mikael Kasurinen
Producer(s) Miloš Jeřábek
Engine Northlight Engine
Platform(s) Windows, Xbox One
Genre(s) Action-adventure, third-person shooter
Mode(s) Single-player

Legal notes

  • The project doesn't contain any original assets from the game!
  • To use this project you need to have an original copy of the game (bought from Steam), the project doesn't make piracy easier and doesn't break any of the DRM included in-game.

Features

  • Offline playback (see QuantumFetcher)
  • Subtitles override support (you can translate/edit subtitles in episodes, please use QuantumFetcher to get the original subtitles)
  • Optionally remove closed-caption annotations and music notes from overridden captions

Build Requirements

  • Visual Studio 2026

Libraries (installed by vcpkg):

  • Poco
  • GoogleTest (unit tests)

Compiling

See one of build workflows for more detailed steps

  1. Integrate vcpkg with Visual Studio
  2. Build the solution QuantumStreamer.slnx in Visual Studio (x64 Release for the hook)
  3. Run x64\Release\QuantumStreamer.Tests.exe to run the unit tests

Installing

  • In the game's dx11 folder, rename the original loc_x64_f.dll to loc_x64_f_o.dll
  • Copy loc_x64_f.dll there, either from the latest build in GitHub Releases or from x64\Release if you compiled it yourself

Configuration

You can change the default behavior of the hook by creating a config file named after the game executable, QuantumBreak, next to it (in the dx11 folder) or in the game folder.

The following formats are supported:

  • QuantumBreak.properties - properties file
  • QuantumBreak.ini - initialization file
  • QuantumBreak.json - JSON file
  • QuantumBreak.xml - XML file

In the config, you can set following values (dot separates section and key). Relative paths start from the game folder.

Key Description Allowed Values Default Value
Logger.ShowConsole Show hook log in console Boolean false
Logger.SaveToLogFile Save hook log to file Boolean false
Logger.LogFile Path to where save log file String QuantumStreamer.log
Logger.LogLevel_Core Changes how detailed Core logging is Poco::Message::Priority 6 (PRIO_INFORMATION)
Logger.LogLevel_Network Changes how detailed Network logging is (HTTP Requests/Responses) Poco::Message::Priority 6 (PRIO_INFORMATION)
Logger.LogLevel_VideoList Changes how detailed Video List subsystem logging is Poco::Message::Priority 6 (PRIO_INFORMATION)
Logger.LogLevel_OfflineStreaming Changes how detailed Offline Streaming subsystem logging is Poco::Message::Priority 6 (PRIO_INFORMATION)
Logger.LogLevel_SubtitleOverride Changes how detailed Subtitle Override subsystem logging is Poco::Message::Priority 6 (PRIO_INFORMATION)
Server.EpisodesPath Path to where episodes data are located String ./videos/episodes
Server.MaxQueued Max queued HTTP requests Integer 100
Server.MaxThreads Max threads (HTTP server) Integer Logical CPU count or 2 if failed
Server.OfflineMode Disable online streaming, episodes stored locally will continue to work Boolean false
Server.Port Port for HTTP server (game has to point to this port), if 0 will use random unused port Unsigned short 0
Server.VideoListPath Path to original, unmodified ./data/videoList.rmdj file String ./data/videoList_original.rmdj
Subtitles.ClosedCaptioning Keep closed-caption annotations such as [ door slams ] in overridden captions Boolean false
Subtitles.MusicNotes Keep ♪♪ music notes in overridden captions Boolean true
VideoList.PatchFile Patch ./data/videoList.rmdj to point to server on startup Boolean true

The default config should work for most of the users, but if you have special requirements you can change above settings.

Example config that disables online streaming and keeps closed-caption annotations:

[Server]
OfflineMode=true

[Subtitles]
ClosedCaptioning=true

Usage

Initially, after installing the hook, with default config - nothing should change in-game. Quantum Streamer on game launch will try to load Server.VideoListPath, after that hook will scan Server.EpisodesPath directory for the locally stored episodes and/or captions_overrides.

VideoList loaded by game (data/videoList.rmdj) has to point to the Quantum Streamer server, by default Quantum Streamer will patch this file, but you can disable this behaviour by setting VideoList.PatchFile to false, but then, you have to patch that file manually - for that, you can use QuantumFetcher tool. Before the first patch, the hook keeps the game's own list as Server.VideoListPath. A kept copy that already points at Quantum Streamer is removed, since it no longer holds the episodes' addresses; verify the game files in Steam to restore the original list.

Each episode data is expected to be in dedicated episode directory (e.g. ./videos/episodes/J1A-X1-X2 is where hook will look for episode J1A-X1-X2 (assuming Server.EpisodesPath is not changed)) Local episodes are expected to be in ISM Smooth Stream format:

*.ism (Server Manifest) should at least define clientManifestRelativePath in head section which should reference filename/relative path for client manifest file. All media files referenced in the Server Manifest will be loaded (if media file exist); each has to end with an mfra fragment index, as QuantumFetcher writes them.

Additionally, SubRip (.srt) files which contain _captions in their filename will be loaded, after that hook will replace captions in specific track (e.g. enus_captions.srt will override enus_captions track) with the ones from the file, allowing you to translate or edit captions in the live action. The .srt files have to be saved as UTF-8.

Credits

Special thanks to:

  • Remedy Entertainment (for making the game)
  • Microsoft Studios (for publishing the game on PC)
  • r00t0 - For help with decoding videoList.rmdj

About

Hook for Quantum Break that enables offline playback of live episodes and subtitle override

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages