Skip to content

In-game DoD Studio window: revisit the whole window's UI (tabs, Settings tab, layout) in one PR for 0.2.1 #899

Open

Description

@ccoventry

For 0.2.1, two changes to the in-game DoD Studio window (goldsrc-hooks/src/studio_panel.rs, goldsrc-hooks/ui/*.res):

1. Remove the Studio tab

It's a leftover from when the window first got real tabs (Playback, Demos, Studio, b2be492) and holds only a "Hook status (console)" button (ds_debug_status) and the build-mode hint. Move the Hook status button to the Console tab, drop studio from the tab names ds_ui_panel <tab> accepts, and update docs/dodstudio_commands.md, Commands.txt and the README. A Studio.res a user edited in build mode stays on disk; it's simply no longer loaded.

2. Put every user-facing ds_* setting on the Settings tab

Today the tab has 16 boxes. These are missing:

  • on/off: ds_spec_deathcam, ds_hud_hide_voice_menus, ds_hud_hide_map_text, ds_hud_hide_clan_text, ds_hud_show_scope, ds_view_use_cl_bob, ds_view_hide_headshot_red_screen, ds_view_hide_screen_shake, ds_map_allow_shaders, ds_demo_other_drives, ds_demo_seek_skip_between (check against the tab), and any others the tab lacks (compare with Commands.txt);
  • not plain on/off: ds_demo_fast_load (0 / 1 / ms), ds_hud_overview_players (0-4), ds_hud_overview_team_marker (0-1, 0-2 after Hide the spectator mode label, Press DUCK, centre text and two overview icons (part of #677) #714), ds_hd_style (a name), ds_demo_ex_interp_max (ms). These need dropdowns or fields.

Leave out what Studio sets itself (ds_spec_lock, ds_capture_*, ds_player_overrides) and ds_debug_*. Group the boxes by area (spectating, HUD, view, players/map/sound, demo, windows), with plain labels (the house style: say what happens). Probe the layout on PRE and POST at 1280x720 and 2560x1440; the tab must still fit, or scroll.

How the tab's values are kept (for the docs and tooltips)

A click saves that one setting to dod_addon\dodstudio_ui\settings.cfg (dod\dodstudio_ui\ without -addons), never config.cfg. The file is applied once when the game starts. Studio's Initial Commands, and any .cfg they exec, run at every demo load after that, so they win for the session, and they never rewrite settings.cfg. A box shows the live value, so clicking one after a .cfg changed it saves the new value. Say this briefly in the tab's help line or the docs.

🤖 Generated with Claude Code

Activity

  1. changed the title [-]In-game DoD Studio window: remove the leftover Studio tab and put every setting on the Settings tab[/-] [+]In-game DoD Studio window: revisit the whole window's UI (tabs, Settings tab, layout) in one PR for 0.2.1[/+] on Oct 21, 2026
  2. ccoventry commented on Oct 21, 2026

    @ccoventry
    OwnerAuthor

    Scope widened by the user: revisit the UI of the whole window and its tab setup in one PR, together with #785 (the layout pass: anchoring, hint-line room, button padding) and #781 (Player list names), so the window changes once. The two items above stay in. Start with the user's design input on the tab set and layout (needs-decision), then build; one PR closes #785, #781 and this.

  3. ccoventry commented on Oct 21, 2026

    @ccoventry
    OwnerAuthor

    Design idea from the user (to work out later): the Playback controls always visible at the top or bottom of the window, not inside a tab, so they can be seen and used from any tab.

  4. self-assigned this
    on Oct 27, 2026
  5. added
    on-devFix merged to dev; pending release to main (auto-close didn't fire)
    on Oct 30, 2026
  6. added a commit that references this issue on Nov 1, 2026
  7. ccoventry commented on Nov 1, 2026

    @ccoventry
    OwnerAuthor

    User, 2026-10-31: for the redesign, keep the Playback controls (the viewdemo VCR bar: time slider, play/pause, speed) and the Console always visible, not behind tabs. They use both all the time while watching demos, and switching tabs to reach them is annoying. The other tabs (Demos, Highlights, Settings, Commands, Studio, Review) can stay tabbed beside or below them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:hooksgoldsrc-hooks companion DLLenhancementNew feature or requestneeds-decisionBlocked on a choice or input from the maintaineron-devFix merged to dev; pending release to main (auto-close didn't fire)priority-mediumMedium priorityreadySpec is clear enough to build now

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions