docs: the Windows plugin dir is ProgramData, not the config dir #2

Merged
jknapp merged 1 commits from docs/windows-plugin-path into main 2026-09-09 23:44:21 +00:00
Owner

The packaging section claimed <config>/obs-studio/plugins/<name>/bin/64bit is "exactly the layout OBS searches on Linux and Windows". The layout is right; the base directory is not the same on both.

obs-studio's AddExtraModulePaths() (frontend/widgets/OBSBasic.cpp in 32.x, UI/window-basic-main.cpp in 30.x) uses GetAppConfigPath on Linux/macOS but GetProgramDataPath on Windows — os_get_program_data_pathCSIDL_COMMON_APPDATAC:\ProgramData. So Windows scans C:\ProgramData\obs-studio\plugins\, never %APPDATA%\obs-studio\ (CSIDL_APPDATA), which on Windows is where OBS keeps its config.

This bit a director on 2026-09-09: a correctly-shaped install under AppData\Roaming produced an OBS log with zero mention of the module. Worth calling out because the failure is silent — OBS names any module it finds but cannot use (is disabled, Failed to initialize module, Module ... not loaded), so no line at all means the file is not on a scanned path.

Docs only; no build or code change. The streamer-tools download page carried the same error and is fixed in that repo's PR #36.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9

The packaging section claimed `<config>/obs-studio/plugins/<name>/bin/64bit` is "exactly the layout OBS searches on Linux and Windows". The *layout* is right; the *base directory* is not the same on both. obs-studio's `AddExtraModulePaths()` (`frontend/widgets/OBSBasic.cpp` in 32.x, `UI/window-basic-main.cpp` in 30.x) uses `GetAppConfigPath` on Linux/macOS but `GetProgramDataPath` on Windows — `os_get_program_data_path` → `CSIDL_COMMON_APPDATA` → `C:\ProgramData`. So Windows scans `C:\ProgramData\obs-studio\plugins\`, never `%APPDATA%\obs-studio\` (`CSIDL_APPDATA`), which on Windows is where OBS keeps its config. This bit a director on 2026-09-09: a correctly-shaped install under `AppData\Roaming` produced an OBS log with **zero mention** of the module. Worth calling out because the failure is silent — OBS names any module it finds but cannot use (`is disabled`, `Failed to initialize module`, `Module ... not loaded`), so no line at all means the file is not on a scanned path. Docs only; no build or code change. The streamer-tools download page carried the same error and is fixed in that repo's PR #36. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9
jknapp added 1 commit 2026-09-09 23:44:17 +00:00
docs: the Windows plugin dir is ProgramData, not the config dir
Build / macOS (macos-latest) (push) Successful in 36s
Build / Linux (ubuntu-24.04) (push) Successful in 55s
Build / macOS (macos-latest) (pull_request) Successful in 33s
Build / Linux (ubuntu-24.04) (pull_request) Successful in 1m9s
Build / Windows (windows-latest) (push) Successful in 10m51s
Build / Windows (windows-latest) (pull_request) Successful in 10m27s
bfc38f45ca
The packaging section claimed `<config>/obs-studio/plugins/<name>/bin/64bit`
is "exactly the layout OBS searches on Linux and Windows". The layout is
right; the base directory is not the same on both. obs-studio's
`AddExtraModulePaths()` uses `GetAppConfigPath` on Linux/macOS but
`GetProgramDataPath` (`CSIDL_COMMON_APPDATA`) on Windows, so Windows scans
`C:\ProgramData\obs-studio\plugins\`, never `%APPDATA%\obs-studio\`
(`CSIDL_APPDATA`) — which on Windows is where OBS keeps its config.

This bit a director on 2026-09-09: a correctly-shaped install under
`AppData\Roaming` produced an OBS log with zero mention of the module. Noted
here because the failure is silent — OBS names any module it finds but cannot
use, so an absence of any line means the file is not on a scanned path at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzGnvQ6wfD7bw7PZN35ft9
jknapp merged commit 1571d7ecea into main 2026-09-09 23:44:21 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: CyberCoveLLC/obs-streamer-tools-plugin#2