Repository navigation
DoD Studio 0.2.0-9 (experimental)
Pre-release
Pre-release
On-demand experimental build from dev — not for general use. Built from commit e9298df.
What's new
Capture
- Seek Between Clips: a batch now plays your original demos and jumps between clips instead of fast-forwarding patched copies — about twice as fast, and your demos are never rewritten.
- The game stays out of your way: batches run at full speed with DoD behind your windows or minimised, without stealing focus or the mouse. Untick Keep the Game Behind Your Windows While Capturing to watch it record instead.
- HLTV demos list every player's highlights, and capturing one follows that player in first person — including players who left before the demo ended.
- Players tab: give each player their own spray and crosshair in your POV and HLTV clips, with fallbacks for everyone else. Make your own crosshair with Vertex's crosshair maker and add the file it gives you.
- Finish clips automatically when a batch ends, named from your own template; command profiles save your command lists; a summary strip shows the whole setup above Start Capture Batch.
- Safer batches: Studio refuses demos that changed since the scan, warns about demos or maps the game can't play, remembers maps a session crashed on, and asks before closing during a batch.
Review and projects
- Review highlights: play every highlight in the game and answer Yes, Maybe or No before capturing; long gaps between kills fast-forward, and a box picks which answers a review plays.
- HLTV reviews play the players you choose — by default the teammates who didn't record that half themselves, or anyone you pick, or a whole team — in match order or one player at a time.
- While a review runs, the game's demo controls are locked, so a stray click can't seek or load another demo.
- The Master Demo Queue groups demos by match, player, map, folder, date or demo type, and shows each demo's capture status and review answers as coloured counts.
- Projects keep your work: an older project offers to rescan its demos and keeps your marks, notes and kill ranges; splitting a demo that recorded several maps keeps them too.
Render
- Tick the takes you want, then render, cancel, retry, remove or delete just those. Scan for Takes works at any time, even while rendering, and adds new takes without touching the rest.
- A render batch that a restart interrupted comes back with Recover and carries on.
In the game
- DoD Studio's own window in the game: Highlights, Demos, Playback, Console and Review tabs; resizable windows that remember where you left them; ESC behaves.
- The Demos tab browses every drive, and
viewdemoplays a demo from any drive with no copy. Demos load about twice as fast, with the progress shown along the top of the window. - Spectating looks like POV: one switch (
ds_spec_match_pov) gives a watched player the gun animations, gunshots, grenade priming, crosshair, gun lowering and prone camera of a POV demo; the sniper scope shows in demos too, with black around it at a wide FOV. - The kill feed: bigger icons (
ds_hud_deathmsg scale 2), your own font, and sharper HD icons. - Hide what you don't want in a clip: the head-hit red screen and grenade shake, the spectator bars, map text, clan-match text, HLTV messages, the voice and hand-signal menus, the scoreboard, the crosshair, any sprite, HUD icon or particle, and more.
- Jump around a demo:
ds_demo_seek_to/_by, and the in-game Highlights tab's Go button.
Looks
- HD textures: AI-upscaled world textures, models, sprites, HUD icons, decals, detail textures and skies, up to 4096 px, built from the HD Textures page, on both the original and the 25th Anniversary engine.
- Sprays: players' real sprays in HLTV demos, in full quality from PNGs, instead of a bullet hole.
- Overviews page: clean, colour-coded map overviews made from the map itself, edited and saved for the game.
- Blender page: re-render a highlight in Blender from an
mirv_agrcapture.
Demo tools
- Demo Analyzer: kill map with positions and engagement distance, a Flags tab (captures, blocks, cap breaks), filters by player, and SteamIDs in every format. A damaged demo is read up to where it breaks, and says so.
- Demo Auditor: Rename Demos from a template (with
{half}and{match}), Split Maps for demos that span several maps, and Duplicates across every drive at once, deleting to the Recycle Bin. - Cache all: analyse a whole folder ahead of time, so demos open instantly.
Getting started
- A Setup window on first launch, and a checklist on the Capture page, walk you through what DoD Studio needs.
- An update button beside Help says when a new version is out.
Fixes
- The first demo of a session is no longer too dark; detail textures no longer switch off by position; several game crashes are guarded (temp entities, a previous map's collision data, an early HUD message, and a first-frame race in DoD Studio's own hook).
- Studio's window no longer freezes on a slow folder (such as a Google Drive) or at start-up.
- Safety: the hook DLL refuses to join servers, so it can never run on a VAC-secured server.
New
dodstudio_pov_live_bob 1makes a POV demo's view and gun sway by the cl_bob you set now (POV demos never bobbed before). (#710)- a Game folder setting, so DoD Studio can launch and build for a mod folder other than dod (for example a separate dod_movies copy). (#711)
- Delete Take on the Render tab sends a finished take's raw frames to the Recycle Bin, keeping its render history. (#712)
- hide the spectator camera's mode label and the green "Press DUCK for Spectator Menu" line (
ds_spec_hide_text), centre-screen server text (ds_hud_hide_center_text), and the overview map's camera icon (ds_hud_overview_team_marker 2) and speaker icon (ds_hud_overview_hide_speaker). (#714) - HD decals: bullet holes, scorch marks, blood and map logos get sharper AI-upscaled versions, built from the HD Textures page. (#730)
- change the kill feed's font from the console:
dodstudio_deathmsg font "Verdana" 28 bold shadow(andfont default). (#731) - HD HUD icons: the kill feed and weapon icons, crosshairs, scopes and numbers get sharper versions at the same size. (#733)
- make the kill feed's weapon icons bigger with
dodstudio_deathmsg scale 2; the layout follows. (#734) - the Demo Analyzer's Flags tab counts cap breaks: a defender who kills the capper and stops a capture gets one. (#743)
dodstudio_spec_deathcam 1— in HLTV demos, when the player you are watching in first person dies, the view becomes the death cam his own recording shows (the camera pulls back from his body and turns to the killer for 2.4 s), then returns to his eyes. Off by default, so a shoutcast can keep the game's own view. (#749)- Tick the takes you want on the Render tab, then render, cancel, retry, remove or delete just those; Clear Queue empties the list. (#755)
- Rename Demos and clip names can use {half} and {match}, and the Master Demo Queue can group the demos of one match together. (#759)
- The HD page says which maps each style covers, and warns when a map in hd_maps.txt has no HD textures in the chosen style. (#762)
- A Setup window on first launch, and a checklist on the Capture page, walk a new user through what DoD Studio needs (movie copy of Half-Life, HLAE, FFmpeg, output folders, demos). (#763)
- A button links a demo folder on any drive into the game folder, so the game can play those demos in place; Remove unlinks it without touching the folder. (#764)
- with the DoD Studio hook DLL,
viewdemo "D:/folder/demo"plays a demo from any drive in the game, no link or copy needed. (#778) - the in-game Demos tab browses every drive (Up from a drive opens This PC, every drive in one list), has Back, Forward and Up buttons that grey out where they can't go, a Go to list with the game folder, Studio's analysed demos, This PC, each drive, Studio's demo folders and the folders visited lately, remembers its folder between sessions, and shows an icon for every row; the game's own Load Demo window lists drives and shows short folder names; Enter on an empty box or list no longer prints an error. (#780)
- untick "Show folders' demo counts" on the in-game Settings tab and folders open faster, with no "(N demos)" counts. (#792)
- The in-game DoD Studio window shows how far the demo and its highlights have loaded along the top of every tab, and the highlights start loading as soon as a demo plays; the Highlights tab is simpler (no status line or Min kills, the Player box names a POV demo's player). (#804)
- demos played with viewdemo finish loading faster, so you can jump anywhere in them sooner. (#805)
dodstudio_hide_assetcan hide HUD sprites too, a whole sheet (sprites/hud_icons.spr) or one icon by itshud.txtname (icon_bandage), so blank sprite files are no longer needed for that. (#809)- a Maybe answer for highlights you want to look at again, a box beside Review highlights that plays only Unmarked, Keep, Maybe or Skip highlights, and with no demo ticked it reviews every demo in the list. (#821)
- reviewing an HLTV demo plays only the players you pick (by default, teammates who didn't record that half themselves), with the camera on each player in first person. (#825)
- reviewing an HLTV demo with several players can play their highlights in match order or one player at a time. (#829)
- a Players tab in Configuration gives each player their own spray and crosshair in your POV and HLTV clips, with fallbacks for everyone else (no more bullet holes for sprays) and a switch to turn it all off. (#833)
- opening a project made with an older DoD Studio offers to rescan its demos, and keeps your marks, notes, status and kill ranges even when the new scan draws a highlight differently. (#835)
- the Master Demo Queue's "Group by match" checkbox is now a "Group by" dropdown: group the queue by match, player, map, folder, date or demo type, each group under a header line with its demo and highlight counts. (#837)
- a review of HLTV demos can play any players you pick, or a whole team from the Teams list, even with no POV demos in the queue; the pick is saved with the project. (#839)
dodstudio_hide_voice_menus 1hides the numbered voice-command and hand-signal menus that pop up when the recording player used them. (#840)- Make your own crosshair from the Players tab with Vertex's crosshair maker, then add the file it gives you so it shows in the crosshair lists. (#846)
- while Review highlights runs, the demo bar, Load Demo and DoD Studio's Playback, Demos and Highlights controls are locked, so a stray click can't seek, pause or load another demo; Stop on the Review tab unlocks them, and the Review tab's own buttons are greyed out while no review runs. (#847)
- Scan for Takes works at any time, even while rendering, and adds new takes to the queue without touching the ones already there. (#854)
- the Demo Auditor's Duplicates tab can check several folders, or every drive, in one audit, so a copy on one drive pairs with its original on another. Deleted copies go to the Recycle Bin unless you choose Delete Permanently. (#863)
- when a new version of DoD Studio is out, a green "Update available" button appears beside the Help menu; click it to download and install. (#869)
ds_hud_objectives scale <1..8>draws the objective flags and the objective timer bigger, for captures at 1440p and above, like the kill feed'sscale. (#895)
Fixed
- the first ESC after loading a second demo no longer jumps playback back to the demo's start and pauses it. (#715)
- a Launch Preview that has to use a patched demo now loads it after your configs, so the world isn't drawn darker than your brightness settings. (#720)
- minimising the game during a batch no longer records black frames; it's parked off-screen instead and comes back when you click it. (#737)
- Clip names now use the team names from the project's Teams list for {team_name} and {opponent}, and an untagged side gives unknown (or your |fallback) instead of nothing. (#753)
- The Capture page now lists every player's highlights for an HLTV demo, the same list the in-game Highlights tab shows. (#765)
- In a spectated first-person view, the gun no longer pops up for a moment when a sprinting player changes direction. (#767)
- in the in-game DoD Studio window's Console tab, the suggestion list no longer jumps between off-screen and below the input line while you type. (#769)
- Studio no longer freezes while the Demo Analyzer's Explorer reads a slow folder, such as a Google Drive. (#791)
- in the in-game DoD Studio window's Console tab, Up and Down walk through the command history again on the 25th Anniversary build, instead of stopping after one command. (#793)
- in the game's own Load Demo window,
../and the folders are listed first, before the demos, in every folder. (#794) - the Demos tab's Clear button beside the Player box is greyed out while no player is picked. (#802)
- the in-game Highlights tab no longer shows an empty list (scroll bar at the bottom) after switching to a demo with fewer highlights. (#803)
- In the in-game DoD Studio window's Demos tab, the Demo File column can be dragged wider again, so long demo names are no longer cut off. (#806)
- in demos, the sniper scope no longer shows the map around its edges with a wide FOV (
gl_widescreen_yfov 1ormirv_fov); everything outside the scope is black. (#807) - A demo whose recording broke partway (a server crash, a cut file) is now analysed up to the break, and the Demo Analyzer and the in-game Highlights tab say how far it was read. (#815)
- the demo loading bar no longer sits at 99% for the last part of a long demo. (#816)
- the Game Folder list no longer offers folders the game can't start (like valve on the movie installs). (#817)
- a render batch brought back with Recover after a restart now starts, reloading the page no longer hides the render queue, a clip being rendered no longer says Interrupted, and the render list uses the whole window. (#818)
- with match POV on, a spectated player's bayonet stab or rifle-butt strike now plays in first person. (#820)
- opening a project no longer switches the HLAE and hl.exe paths in Settings to the ones it was saved with. (#827)
- Splitting a demo that recorded more than one map now keeps its highlights' picks, Review marks, notes, status, clip names and kill ranges instead of dropping them. (#834)
- while Review highlights plays an HLTV demo, a stray click, jump or duck no longer moves the camera off the highlight's player or changes the spectator mode. (#838)
- Adding a whole drive with + Add Folder now shows how far the folder search has got, Cancel Scan works while it searches, and deleted demos in the Recycle Bin are no longer added. (#851)
- the "Render Batch Interrupted" dialog at start-up now closes as soon as you click Recover or Discard, and the Render tab says it is recovering the batch. (#858)
- Studio's window no longer stalls at start-up while it checks disk space, FFmpeg, weapon names and the rename Undo. (#859)
- with HLTV set to Players I pick, the picked players sit on a line of their own and the Add a player / Add a team lists no longer jump around as you pick. (#862)
- Studio no longer asks to recover a render batch at start-up when every clip in it had already finished. (#864)
- picking the wrong program as FFmpeg no longer starts it. (#913)
- an installed DoD Studio loads its own hook DLL into the game again. (#916)
Changed
- every in-game DoD Studio console command has a new, shorter name that says what part of the game it changes (for example
dodstudio_hide_scoreboardis nowds_hud_hide_scoreboard); your Studio settings move over by themselves, and old names in your own configs are flagged. (#719) - batches fast-forward between clips several times faster, without drawing the world while skipping; your fps settings come back for each clip. (#736)
- capture batches start a few seconds sooner: no primer demo is played first when the hook DLL is loaded. (#741)
- clips closer together than 0.5 s (was 1 s) now record as separate takes, and the game launches with fewer HLAE flags. (#742)
- after an update that changes the analyzer cache, most of your already-analysed demos upgrade in seconds instead of being analysed again. (#745)
- The capture summary above Start Capture Batch now also shows the command profile in use (and whether it was edited) and the codec the finish step will use. (#752)
- Capture batches now play the original demos and seek between clips by default; a demo on another drive is copied into the game folder for the batch and removed afterwards. (#757)
- The clip-name template shows its placeholders in the same grouped rows as Rename Demos, with {name} and {full_name} ({player} still works). (#761)
- The app now installs and shows as "DoD Studio". Installing it removes the old "DoD Tools Studio" entry and shortcuts by itself; your settings carry over. If you installed the old app from the .msi, uninstall "DoD Tools Studio" from Apps yourself. (#766)
- the demo queue's Pending, Captured and Rendered columns are now one Status column of coloured counts, and a new Review column counts each demo's not reviewed / Keep / Maybe / Skip highlights. (#824)
- in-game help and console text say "they" instead of "he" for players. (#836)
- in the Demo Auditor's duplicates list you can choose which copy to keep, in one group or for every group at once by folder; each copy is checked byte for byte against the kept one before it goes to the Recycle Bin, so a different demo is never deleted by mistake. (#871)
- better defaults for a new install: clips start 5 s before the first kill and end 5 s after the last, capture is 120 fps (1920x1080 on a big enough screen), Match POV and the sniper scope are on, fewer pop-up notifications, a ready-made "Clean clips" command profile, and renders follow each take's own frame rate. (#898)
- Setup helps you pick ffmpeg.exe and a copy of your dod folder for movies, Launch Game shows in every build, and the Clean clips profile hides more. (#912)
All 314 pull requests
- chore: rustfmt the whole tree and gate CI on cargo fmt --check (#235) (#344)
- ci: refuse PRs into main from any branch but dev (#345)
- ci: save the Rust cache from dev so PRs stop compiling from scratch (#346)
- ci: close issues when their PR merges into dev (#347)
- ci: drop --with-deps from the Windows Playwright install (#348)
- docs(analysis): the 64-byte limit is the demo's command field, not Cbuf (#349)
- chore: point every old repo URL at dod-studio (#261) (#350)
- feat(goldsrc-hooks): HD textures (world, models, sprites, detail, sky) and the tools/hd build scripts (#377)
- fix(goldsrc-hooks): guard DoD's six unchecked temp-entity calls (#374) (#378)
- docs(goldsrc-hooks): triage core.dll+0x16d6 and the entnum fatal as #207 (#375) (#379)
- docs: correct the playdemo filename rule from the console tests (#376) (#380)
- docs: VAC-safety audit and warnings on every route into hl.exe (#373) (#381)
- feat(studio): HD Textures page, part 1: status, upscaler download, movie.cfg lines (#372) (#382)
- fix(goldsrc-hooks): guard the engine's hull trace against a previous map's collision data (#384) (#386)
- perf(hd): remember texture hashes, so the map-texture scan takes seconds (#383) (#387)
- feat(hd): read hd_maps.txt and my_styles.txt from the install's dodstudio_hd folder (#385) (#388)
- feat(studio): HD page part 2 -- build from the app with the scripts' own Python (#372) (#389)
- feat(studio): HD page misses view (#372 part 3a) (#390)
- feat(studio): HD page custom-style form (#372 part 3b) (#391)
- feat(studio): HD page style comparison on your own maps (#372 part 3c) (#392)
- feat(goldsrc-hooks): hull-trace guard for the 25th Anniversary hw.dll (#384) (#393)
- perf(hd): faster HD builds: less wrap padding, plain alongside AI (#383) (#394)
- fix: three small issues from the backlog sweep (#354 #351 #85) (#395)
- feat(goldsrc-hooks): ESC closes no GameUI window on the 25th Anniversary build (#369, #408) (#396)
- fix(goldsrc-hooks): first demo of a session no longer too dark (#365) (#397)
- feat(goldsrc-hooks): decals and ex_interp on the 25th Anniversary build (#370) (#398)
- feat(goldsrc-hooks): HD textures on the 25th Anniversary hw.dll, full parity (#370) (#399)
- chore: build-and-launch.ps1 (was run.ps1) builds the goldsrc-hooks DLL too (#400)
- feat(native): pass -demoedit on every HLAE launch (#401)
- fix(hd): write HD files batch by batch, and show their progress (#404)
- test(patch): directory entries still point at their segments after injection (#405) (#406)
- feat(goldsrc-hooks): dodstudio_seek_to / _by jump viewdemo playback (#405) (#407)
- feat(goldsrc-hooks): the Load Demo window lists and opens folders (#408) (#409)
- feat(goldsrc-hooks): resizable GameUI windows that remember their place (#408) (#410)
- feat(goldsrc-hooks):
engine <cmd>buttons work inside GameUI windows (#408) (#411) - feat(native): pass -addons on every HLAE launch (#408) (#412)
- feat: Studio sends console commands to the game it launched (#413) (#414)
- feat: Blender page runs the mirv_agr pipeline (#403) (#416)
- fix(capture): refuse a batch whose source demo changed since the scan (#196) (#417)
- fix(analysis): a same-map level change ends the demo too (#217) (#418)
- feat(capture): the patching status line says what each job is doing (#75) (#419)
- feat(capture): the capture progress bar counts clips, not game sessions (#76) (#420)
- feat(goldsrc-hooks): dodstudio_reload_demo plays the last demo again (#330) (#421)
- feat(studio): the HD page picks which maps to build (#372) (#422)
- feat(goldsrc-hooks): HD textures up to 4096 a side, gl_max_size decides (#423)
- docs: features.md, what DoD Studio does today (#435)
- feat(goldsrc-hooks): dodstudio_allow_shaders turns on world shaders in demos (#436)
- feat(studio): window title names the git branch and dev-server port (#446)
- feat(studio): a local build's update check reports versions, never installs (#447)
- fix(capture): refuse a 64+ byte Initial or Scheduled Command up front (#453) (#454)
- fix(scan): the scan status shows the count and the demo being parsed (#433) (#455)
- fix(studio): Add Folder always scans, and says when a folder is gone (#432) (#456)
- feat(scan): say which demos a scan could not read, and why (#23) (#457)
- feat(capture): write each batch's manifest to %APPDATA%\dod-studio\manifests (#19) (#458)
- fix(capture): FF Speed reaches the helper cfg; timing fields can hold 0 (#459, #460) (#461)
- docs: fix stale links, counts and defaults; archive five retired planning docs (#462)
- fix(studio): Highlight Details Time and Dur. match the demo player's clock (#464) (#470)
- feat(studio): a hand-set highlight status is marked and can be undone (#105) (#471)
- feat(studio): the demo scan worker count is a setting (#246) (#472)
- feat(goldsrc-hooks): dodstudio_deathmsg block takes a SteamID or self (#468) (#473)
- feat: two value rules replace the override and shadowed warnings (#216) (#474)
- chore: stale counts and text in goldsrc-hooks and the patch builder (#475)
- test(studio): Vitest unit tests, npm run test:unit (#31) (#476)
- feat(studio): a loaded project finds moved demos, marks missing ones, and lets you locate them (#21) (#477)
- feat(studio): warn when config.cfg is not read-only (Part of #478) (#479)
- fix(studio): the capture disk estimate measures highlights by kill time (#480)
- fix(goldsrc-hooks): gl_spriteblend 0 at the first sprite load no longer sticks (#467) (#481)
- feat: the game sends capture markers to Studio over a pipe (Part of #434) (#482)
- fix: crosshair leaves hide_hudelement (#312), hide_sprite becomes hide_asset with list/add/del/clear (Part of #333) (#483)
- refactor: one demo file key, one .dem walk, one HTML escape (#484)
- feat(studio): filter demos by player in the Analyzer and the Master Queue (#437, #174) (#486)
- feat(studio): clip names from a template name the rendered files (Part of #441) (#487)
- chore: sysinfo 0.29 -> 0.39, process lookups in one place (#234) (#489)
- ci: releases carry GitHub's generated notes from PR titles (#165) (#490)
- feat(studio): Master Queue quick filters, kills and POV only (#54) (#491)
- feat(studio): a Review mark per highlight, Keep or Skip (#44) (#492)
- ci: publish docs/wiki to the GitHub wiki on push to main (#355) (#493)
- feat(goldsrc-hooks): dodstudio_hide_hltv_messages hides the HLTV proxy's text at playback (#30) (#494)
- feat(goldsrc-hooks): dodstudio_hide_map_text hides a map's own on-screen text (#287) (#495)
- feat(render): sortable job table and a whole-batch progress bar (#40) (#496)
- VAC hard stop: the hook DLL refuses connect, retry and reconnect (#451) (#497)
- feat(web-analyzer): analyse several demos at once, export JSON (#102) (#498)
- feat(render): named render presets (#108) (#499)
- feat(render): reservations learn each codec's real size per frame (#120) (#500)
- feat(render): Export Marker List, a CSV of captured highlights (Part of #110) (#501)
- feat(studio): command profiles, named sets of both command lists (#442) (#502)
- feat(render): render history per take (Part of #438) (#503)
- feat: report whether hl.exe gets 2 GB or 4 GB of memory (Part of #430) (#504)
- feat(studio): project Teams list from clan tags in player names (Part of #445) (#505)
- feat(capture): capture summary strip above Start Capture Batch (Part of #443) (#506)
- feat(studio): finish a batch's clips automatically when it ends (part of #440) (#507)
- AGR capture mode: one mirv_agr file per highlight for Blender (Part of #450) (#508)
- refactor(native): split patch/builder.rs into a builder/ module (#509)
- perf(native): sweep analyzer caches older schema versions left behind (#510)
- perf(analysis): free the decoded demo off the calling thread (#511)
- perf(native): the capture scan reads the analyzer cache it writes (#512)
- Demo Analyzer: kill positions, engagement distance and a Kill Map tab (#448, first slice) (#513)
- perf(goldsrc-hooks): stop rescanning hw.dll every frame for the ex_interp clamp (#514)
- refactor(goldsrc-hooks): split anim_fix, share the sequence cache (review #6 + E5) (#515)
- perf(native): read the process list at most every 250 ms during a batch (#516)
- feat(analysis): cap credits with co-cappers, flag ownership, cap blocks, teamkills/suicides, stats CLI (Part of #192) (#517)
- perf(native): Render Studio's scan reads each BMP stream folder once (#518)
- refactor(native): bsp tests to their own file; hlcr media_probe split out (#519)
- refactor(patch): split decal_strip.rs; decal flush writes unedited frames verbatim (#522)
- fix(studio): a project saves its own demo folders, not the app's pinned list (#523)
- feat(studio): check Steam is running and signed in before starting the game (#524)
- fix(capture): an early Cancel closes the HLAE launcher too (#525)
- feat(capture): read error boxes from the game and HLAE, and say what they mean (#526)
- refactor(studio): #21's missing/moved/copied-demo code moves out of main.js (#532)
- fix(goldsrc-hooks): dodstudio_deathmsg shows blocked SteamIDs as STEAM_0:X:Y plus the name (#537) (#539)
- feat(studio): highlight status colours from one shared map, each dropdown option in its own colour (#527) (#540)
- feat(studio): an × clears the Master Demo Queue search, Esc too (#529) (#541)
- fix(studio): capture footer status: two lines max, full text on hover, no log pointers (#534) (#542)
- fix(studio): text-field side effects refresh ~150 ms after typing, so undo can't leave them stale (#535) (#543)
- fix(studio): Steam started by Start Steam stays open when DoD Studio closes (#544)
- fix(goldsrc-hooks): the session's first demo no longer crashes when it sends InitHUD early (#546) (#547)
- feat(studio): closing DoD Studio during a capture batch asks first (Part of #545) (#548)
- feat(goldsrc-hooks): the game quits itself at a batch's end when Studio isn't watching (Part of #545) (#549)
- feat(tools): game_probe.py, scripted in-game tests with a report (#550)
- feat(goldsrc-hooks): dodstudio_hide_spectator_bars hides the spectator panel on screen (#328) (#551)
- feat(goldsrc-hooks): spectated grenades follow what a POV demo plays, priming included (#552)
- feat(goldsrc-hooks): play the gunshots an HLTV demo has no fire event for (#553)
- feat(goldsrc-hooks): dodstudio_spec_match_pov, one switch for matching a spectated view to POV (#554)
- feat(goldsrc-hooks): spectator crosshair hides when the player's own would (#310) (#556)
- feat(goldsrc-hooks): in-eye camera drops to the ground for a prone player (#329) (#557)
- feat(goldsrc-hooks): dodstudio_spec_lock and dodstudio_spec_target keep an HLTV camera on one player (#206) (#558)
- feat(goldsrc-hooks): the spectated gun lowers off screen when the player's own would (#559) (#560)
- fix(goldsrc-hooks): quick-switch shots and instantly caught grenades in the spectated view (#561)
- fix(goldsrc-hooks): keep the top-of-screen HUD clear of the spectator bar (#563)
- feat(goldsrc-hooks): dodstudio_panel, DoD Studio's own window in the game (Part of #408) (#565)
- fix: tell HLTV demos by the proxy's connect message, not "HLTV Proxy" (#566) (#567)
- fix: four small Studio bugs (#358, #357, #356, #352) (#568)
- feat(studio): Cache all, analyse a folder's demos ahead of time (#569) (#570)
- fix(goldsrc-hooks): Studio's commands wait until the game is up (#564) (#571)
- fix(studio): an open Explorer folder no longer shows "Loading…" for good (#572) (#574)
- refactor: one definition of a highlight, analysis::highlights (Part of #573) (#575)
- feat: Launch Preview plays the original demo, Highlights tab in game (#434 step 2) (#576)
- feat(goldsrc-hooks): dodstudio_hud_map_players -- which players the overview map shows (#304) (#577)
- feat: Overviews page and high-quality overviews -- made from the BSP, edited, saved for the game (#371) (#578)
- feat(analyzer): player details show SteamID64, classic and SteamID3, each copyable (#536) (#582)
- feat(hd): the HD page says how much of the game each style covers (Part of #426) (#583)
- feat(auditor): Rename Demos, from one template per demo type, with undo (#469) (#584)
- feat(studio): remove the Advanced Diagnostics block from Highlights (#130) (#586)
- feat: warn before capturing or previewing a demo the game's engine can't play (Part of #207) (#587)
- feat(render): Combine Clips joins rendered clips into one video (#107) (#588)
- feat(studio): type-ahead for console names in Initial and Scheduled Commands (#215) (#589)
- feat: remember maps a session crashed on, and warn before the next batch on them (Part of #207) (#590)
- feat(goldsrc-hooks): dodstudio_debug_position prints where the view and the player are (Part of #581) (#591)
- feat(studio): a Last Batch panel under Highlight Details says how the batch went (Part of #172) (#592)
- feat(analyzer): a Flags tab shows captures, breaks, blocks and cappers (Part of #192) (#593)
- ci: run the Vitest unit tests in the frontend job (#31) (#595)
- feat(goldsrc-hooks): a panic in the hook DLL leaves a PANIC line in its log (#597)
- feat(studio): Start stays disabled until the hl.exe and HLAE paths are set (#598)
- fix(goldsrc-hooks): long forward seeks step 5 s per frame, so jumped-over joins and team picks arrive (#596) (#601)
- docs: a separate Half-Life copy for movies is recommended, not required (#607)
- feat(goldsrc-hooks): the crash recorder logs each distinct breakpoint address once (#610)
- fix(goldsrc-hooks): the no-answer query test uses a silent socket, not a freed port (#616)
- fix(goldsrc-hooks): dodstudio_spec_match_pov stands down in a POV demo (#613) (#617)
- feat(goldsrc-hooks): dodstudio_hide_clan_text hides all clan-match text (#608) (#618)
- feat(goldsrc-hooks): dodstudio_hide_asset hides DoD's particles too (#614) (#619)
- feat(goldsrc-hooks): the Demos and Highlights lists show their sort column and direction (#611) (#620)
- fix(studio): Highlight Details' Notes wrap and can be resized (#605) (#625)
- feat: split a multi-map demo into one demo per map, on a Split Maps tab in the Demo Auditor (#624) (#626)
- fix(goldsrc-hooks): the DoD Studio window's tabs keep their bottom row at the bottom when resized (#609) (#627)
- test(goldsrc-hooks): serialise tests sharing HUD-hiding statics (#628)
- feat: Review highlights — play every highlight in game and answer Yes/No (#623) (#629)
- feat: HD files in dod_addon\dodstudio_hd, falling back to dod\dodstudio_hd (#415) (#630)
- feat(goldsrc-hooks): Player list grouped by SteamID, with each player's other names (#579) (#631)
- docs(claude.md): repo rules out of agent memory, relay-era rules out (#637)
- docs: clean up docs/ -- index, command tiers page, stale history out (#638)
- docs: bring docs and READMEs up to date with dev (#639)
- fix: user-visible text that no longer matched the app (#640)
- chore: no personal SteamID or home paths in tracked files (#641)
- docs: split oversized docs, merge the spectator camera docs, archive finished plans (#642)
- docs: demo-salvage facts into docs/, and the process-polling rule matches the code (#647)
- fix(errors): clearer Rust error and log text (audit 4) (#648)
- docs(comments): drop session narrative and stale dates; rustdoc 0 warnings (audit 1a) (#649)
- fix(errors): name the crashed task and failed paths; capitalise map-tool errors (#651)
- test(analysis): optimised-vs-unoptimised test finds demos again and shares the analyzer list (#652)
- docs(goldsrc-hooks): fix comments that missed the Highlights tab and folder counts (#653)
- ci: test and lint the hook DLL as 32-bit; check the web analyzer and shipped Python (#654)
- test(dod): cover every user-message parser; StartProgF no longer panics on a corrupt duration (#655)
- docs(claude): rules for comments, renames, the docs index and personal data (#656)
- test: a real demo in CI -- parse/re-encode round trip and known-good analysis (#657)
- ci: releases test before publishing; experimental keeps its old build until the new one is ready; current action versions (#658)
- chore(deps): drop five unused dependencies and the unused fs plugin (#659)
- fix(analysis): a grenade kill after dying stays in the life it was thrown in, even a life with no kills (#664)
- feat: Review highlights fast-forwards long gaps between kills (#665) (#667)
- docs: the in-game tab is Highlights, not Killstreaks (#653 leftovers) (#670)
- fix(render): a cancelled or failed render removes its partial file (#671)
- chore: remove unreferenced pub items from the 2026-09-10 audit (#633) (#672)
- chore(strings): drop the 91 loc keys nothing reads (part of #237) (#673)
- [R&D] demo_integrity probe: delta-chain continuity check (#41) (#674)
- refactor(studio): named keys for highlight and render-job statuses (#35) (#675)
- test: fail when web-analyzer's copied analyzer code drifts (part of #238) (#676)
- R&D: hw.dll survey remainder -- demo reader and HLAE loose ends (#300) (#678)
- feat(analyzer): a multi-map demo says so, with Split now (#217) (#681)
- feat(queue): a multi-map demo in the Master Queue offers Split (#217) (#682)
- Cache all and the Master Queue scan read cached demos first (#687) (#688)
- refactor(studio): Save / Load / New Session move into project_session.js (Part of #683) (#689)
- fix: the Highlights tab says when the hook DLL and DoD Studio use different analyzer caches (#684) (#690)
- feat: warn when gl_max_size shrinks HD textures, in the game and on the HD page (#680) (#691)
- refactor(studio): Clear Untracked / Selected / All move into queue_actions.js (Part of #683) (#692)
- refactor(studio): the Master Queue scan moves into queue_scan.js (Part of #683) (#693)
- refactor(studio): saving and loading the settings form move into settings_sync.js (Part of #683) (#694)
- chore: duplication follow-ups (args, hl.exe handling, time formatting, key text) (#485) (#695)
- Warn about commands the engine's demo filter drops (#679) (#696)
- feat(capture): the capture status line says how long the batch has left (#643) (#697)
- refactor(studio): Configuration's wiring moves into config_wiring.js; main.js under 800 lines (#683) (#698)
- Ask before reusing a game started with other launch settings (#666) (#699)
- R&D: dodstudio_schedule runs commands at demo times from the hook, measured against injected frames (Part of #434) (#700)
- feat: capture batches run at full speed with DoD covered or minimised (dodstudio_run_in_background) (#701)
- Seek Between Clips: the hook DLL runs a capture batch on the original demos (#434) (#702)
- Patched batches start their first demo after the game's configs, so clips match the user's brightness (#705)
- HLTV demos list every player's highlights, and their capture follows the player (#247) (#706)
- dodstudio_pov_live_bob: POV demos bob by the cl_bob set now (#359) (#710)
- Game folder setting for -game <mod>, default dod (#402) (#711)
- Render tab: Delete Take sends a take folder to the Recycle Bin (part of #644) (#712)
- Hide the headshot red screen and the grenade screen shake in POV demos (#606) (#713)
- Hide the spectator mode label, Press DUCK, centre text and two overview icons (part of #677) (#714)
- The first ESC after a second viewdemo no longer jumps to the demo's start (part of #663) (#715)
- Detail textures no longer drop out by camera position: bypass the engine's detail cache (#703, #463) (#718)
- In-game commands get shorter names grouped by what they change: ds_hud_hide_scoreboard and so on (#555) (#719)
- The patched Launch Preview starts its demo after the configs, so the world isn't built darker (part of #662) (#720)
- dodstudio_show_demo_scope: the sniper scope overlay shows in demos (part of #307) (#721)
- Keep the Game Behind Your Windows While Capturing: a Capture setting, full speed either way (#434) (#722)
- HD decals: decals.wad through the texture hook (#729) (#730)
- Kill-feed font from the console: dodstudio_deathmsg font <face> <size> [bold] [shadow] (#562) (#731)
- HD HUD sprite atlases through the texture hook, uploaded with mipmaps (part of #728) (#733)
- Kill-feed scale: dodstudio_deathmsg scale <S> draws the icons bigger, layout follows (part of #728) (#734)
- analysis: the clock offset between two demos of one half, from their paired kills (#708) (#735)
- Batches fast-forward uncapped and without drawing the world between clips (#724) (#736)
- A minimised game is parked off-screen during a batch, so it keeps recording (#723) (#737)
- analysis: match and half from a demo's contents, 68/68 on WSOD25 (part of #685) (#738)
- Demo integrity check: deltas built on frames the file doesn't have, in analysis and hl-demo-auditor --integrity (#41) (#739)
- With the hook DLL, patched batches start on chain_01 with no primer demo (#365 follow-up) (#741)
- Launch lines send only -afxForceAlpha8 1 (#69); takes closer than 0.5 s merge (#9) (#742)
- Per-player cap breaks: the defender who kills the capper and stops the capture (#192) (#743)
- Highlights keep the slot from when the kills happened, so players who left still show (HLTV h2: 23 → 155) (#744)
- Analyzer cache upgrades: a schema bump upgrades old entries instead of re-parsing every demo (70% of the library) (#745)
- Fix a first-frame crash: the per-frame work ran on two threads at once and patched the same code byte (#746)
- Release notes from each PR's Release note line, plus a 0.2.0 summary (#747)
- Start the 0.2 line: the app's version is 0.2.0, so the next stable release is v0.2.0 (#748)
- dodstudio_spec_deathcam: the POV death cam when the watched player dies in an HLTV demo (#709) (#749)
- Capture summary shows the command profile and the finish codec (#443) (#752)
- Clip names take team names from the project's Teams list (#445) (#753)
- The Anniversary engine has no first-load lighting bug: document it and prove it in the verify tool (#370) (#754)
- Render tab: tick the takes to render, bulk Cancel/Retry/Remove/Delete, Clear Queue (#70) (#755)
- CLAUDE.md: one naming rule for branches, PR titles and issue titles (#756)
- Capture batches seek between clips by default, and copy demos from another drive (part of #434) (#757)
- Rename Demos and clip names can use {half} and {match}; the Master Queue groups a match's demos (#685) (#759)
- Clip Name Template uses the same grouped placeholder rows as Rename Demos (#751) (#761)
- HD page says which maps each style covers and warns about hd_maps.txt gaps (#426) (#762)
- First-run Setup window and a Capture-page checklist for what DoD Studio needs (#599) (#763)
- A button links a demo folder on any drive into the game folder, with loop-safe folder scans (#376) (#764)
- Capture page and the in-game Highlights tab share one highlight list; HLTV demos list every player (#573) (#765)
- The app's Windows name is DoD Studio, identifier com.dodstudio.app (#258) (#766)
- Spectated first-person gun stays down when a sprinting player changes direction (part of #704) (#767)
- In-game Console tab: the suggestion list stays under the input line instead of flickering (#769)
- viewdemo "D:/folder/demo" plays a demo from any drive in the game, no link or copy needed (#776) (#778)
- In-game Demos tab: browse every drive and This PC, Back/Forward/Up, a Go to list, icons, Enter fixed, and Studio's analysed demos in one list (part of #779, #777) (#780)
- Studio keeps responding while the Explorer reads a slow folder (#789) (#791)
- Demos tab: untick Show folders' demo counts and folders open faster, with no counting (#787) (#792)
- In-game Console tab: Up and Down walk through the whole command history on the Anniversary build (#786) (#793)
- Load Demo window: ../ and folders come first, before the demos, in every folder (#790) (#794)
- Demos tab: the player Clear button is greyed out while no player is picked (#800) (#802)
- In-game lists: Highlights tab fills at the top after a demo switch; one shared list fix for every list (#796) (#803)
- DoD Studio window: every tab shows how far the demo and its highlights have loaded, and highlights start loading as soon as a demo plays (#797) (#804)
- viewdemo loads demos faster: up to 8 ms of each frame instead of 33 packets (#798) (#805)
- Demos tab: the Demo File column can be dragged wider again (#801) (#806)
- Sniper scope in demos: black outside the scope at any FOV (#799) (#807)
- Hide HUD sprites with dodstudio_hide_asset: a whole sheet or one hud.txt icon (#808) (#809)
- Highlights tab: rows are freed after each refill, no memory leak (#812) (#814)
- A damaged demo is analysed up to where it breaks, and the Demo Analyzer and Highlights tab say how far it was read (#811) (#815)
- Demo loading bar no longer sits at 99% for the last part of a long demo (#810) (#816)
- Game Folder list leaves out folders the game can't start (#768) (#817)
- Render tab: a recovered batch starts, and a page reload shows the queue again (#770, #771) (#818)
- Match POV: bayonet stabs and rifle-butt strikes play in first person (part of #813) (#820)
- Review: a Maybe answer, and review only Unmarked, Keep, Maybe or Skip highlights (#661) (#821)
- Demo queue: one Status column and a new Review column of coloured counts (#824)
- Review highlights in HLTV demos: only the players you pick, with the camera on them (#822) (#825)
- Opening a project no longer switches the HLAE and hl.exe paths (#827)
- Review: play an HLTV demo's highlights in match order or one player at a time (#829)
- Players tab: each player's spray and crosshair in your clips, with fallbacks for everyone else (part of #428, #368) (#833)
- Splitting a demo keeps its highlights' marks, notes, status and kill ranges (part of #217) (#834)
- Opening a project offers to rescan demos scanned by an older DoD Studio, keeping your marks and notes (#835)
- In-game help and console text say they/their instead of he/his (#836)
- Master Demo Queue: group by match, player, map, folder, date or demo type from one dropdown (#823) (#837)
- Review highlights: a stray click or jump no longer moves an HLTV highlight's camera (part of #826) (#838)
- Review highlights: pick any players or a whole team for HLTV demos (#828) (#839)
- Hide the voice-command and hand-signal menus that pop up in POV demos (#840)
- Players tab: make your own crosshair with Vertex's crosshair maker and add the file it gives you (#842) (#846)
- Review highlights: the demo bar, Load Demo and the in-game window's seek controls are locked while a review runs (#826) (#847)
- Adding a whole drive: show the folder search's progress, let Cancel stop it, and skip the Recycle Bin (#843) (#851)
- Render tab: Scan for Takes works at any time, even while rendering, and merges into the queue (#772) (#854)
- Players tab no longer asks for crosshair previews before the Half-Life path has loaded (#852) (#856)
- Render recovery dialog closes as soon as you click Recover or Discard (#853) (#858)
- Studio's window no longer stalls at start-up on disk, FFmpeg, weapon-name and rename checks (part of #853) (#859)
- Review: picked HLTV players sit on their own line, so the Add a player and Add a team lists stay put (#845) (#862)
- Demo Auditor: find duplicate demos across several folders or every drive in one audit, and delete them to the Recycle Bin (#844) (#863)
- Render: Studio no longer says a render batch was interrupted when nothing was left to render (#864)
- CLAUDE.md: say that a worktree with its own target folder needs the hook DLL copied in (#865)
- CI: the Rust jobs no longer build the 32-bit hook DLL, so checks finish sooner (#867)
- Studio says an update is out with a button beside Help, no need to open the menu (#868) (#869)
- Release notes: the 0.2.0 summary covers everything going into the release (#870)
- Demo Auditor: fixes from testing the whole page before 0.2.0 (part of #844) (#871)
- CLAUDE.md: findings about demos are surveyed across many players, not one recorder (#887)
- Updating from DoD Tools Studio puts DoD Studio in the Start menu and removes the old folder (part of #258) (#892)
- Objective flags and timer can be drawn bigger for high-resolution captures: ds_hud_objectives scale (#891) (#895)
- Better defaults for a new install: 5 s around each clip, 120 fps capture, Match POV on, a Clean clips profile, renders at each take's own frame rate (#898)
- Front page: what DoD Studio does, where to download it and what you need, for 0.2.0 (#908)
- Setup helps pick FFmpeg and a dod copy for movies, Launch Game for everyone, a cleaner Clean clips (0.2.0 polish) (#912)
- Picking the wrong program as FFmpeg no longer starts it (#913)
- An installed DoD Studio loads its own hook DLL into the game again (#916)
Full diff: v0.1.4...e9298df