A Unity-based replay viewer for EchoVR demo files.
Originally created by David Robidas (@robidasdavid) and Zzenith (2020). This is the EchoTools fork -- the most actively maintained version.
| Format | Source | Container |
|---|---|---|
.echoreplay |
Spark / legacy capturer | JSON + zstd (ButterReplays v1-v3) |
.nevrcap |
nEVR platform | Protobuf v1 + zstd |
.tape |
echotools/tapedeck CLI | Protobuf v2 + zstd (Envelope stream) |
- Unity 6000.3.x (Unity 6) -- project targets 6000.3.4f1
- buf -- protobuf toolchain (generates C# from
.protodefinitions) - just -- command runner (optional, for build shortcuts)
- git-lfs -- binary assets are stored with LFS
Linux (Arch):
pacman -S just git-lfs
# buf: https://buf.build/docs/installation
buf_version=1.50.0 && \
curl -sSL "https://github.com/bufbuild/buf/releases/download/v${buf_version}/buf-Linux-x86_64" -o ~/.local/bin/buf && \
chmod +x ~/.local/bin/bufLinux (Ubuntu/Debian):
sudo apt install git-lfs
# just
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin
# buf (same as above)Windows (winget):
winget install Casey.Just
winget install GitHub.GitLFS
winget install Bufbuild.Bufgit lfs install
git clone https://github.com/EchoTools/demo-viewer.git
cd demo-viewer# Check prerequisites
just doctor
# Generate C# from protobuf definitions
just proto
# Build
just build-linux
# Output: Build/Linux/ReplayViewerUnity must be installed at ~/Unity/Hub/Editor/6000.3.4f1/Editor/Unity, or set UNITY_PATH:
UNITY_PATH=/path/to/Unity just build-linux# Check prerequisites
just doctor
# Generate C# from protobuf definitions
just proto
# Build
just build-windows
# Output: Build\Windows\ReplayViewer.exeUnity must be installed at the default Hub location, or set UNITY_PATH:
$env:UNITY_PATH = "C:\Program Files\Unity\Hub\Editor\6000.3.4f1\Editor\Unity.exe"
just build-windowsjust build-macos # macOS build
just build-all # all platforms
just test # run Unity tests
just clean # remove build artifacts + Unity cacheLaunch the built executable. Open the menu (tilde key) and select a replay file or paste a path. For VR mode, launch with -useVR.
| Key | Action |
|---|---|
| WASD | Camera movement |
| Q / E | Descend / ascend |
| Shift | Speed boost |
| Mouse wheel | Adjust speed |
| Input | Action |
|---|---|
| Left / right stick | Movement / look |
| LB / RB | Descend / ascend |
| A | Play / pause |
| D-pad left / right | Rewind / fast-forward |
| Triggers | Analog scrub |
Assets/
Scripts/
GameManager.cs Singleton entry, scene/mode management
Game.cs Core game-state logic
ReplayLoader/Replay.cs Frame playback driver
ButterReplays/ .echoreplay decompressors (v1-v3)
NevrCap/ .nevrcap reader + frame converter
Tape/ .tape v2 reader + frame converter
EchoVRAPI/ Data model (Frame, Player, Team, Disc, etc.)
Network/ VelNet multiplayer (shared viewing)
Scenes/
Game Scene.unity Primary replay scene
Greenscreen.unity Chroma-key compositing
Plugins/ Runtime DLLs (Protobuf, ZstdSharp)
Prefabs/, Models/ 3D assets
Arena_V3/, Arena V4/ Arena environments
Packages/ Unity package manifest
ProjectSettings/ Unity project settings
proto/ Protobuf definitions (managed by buf)
justfile Build recipes (just --list)
buf.yaml / buf.gen.yaml Buf module + codegen config
GPL-3.0 -- see LICENSE.