Skip to content

Installation and Upgrading

Pawel Osmolski edited this page Aug 6, 2026 · 3 revisions

DarkOneJSP3 Installation and Upgrading

1. Requirements

Install these components before building or restoring the layout:

DarkOneJSP3 includes customised scripts and JScript Panel samples. It does not replace installed component DLLs.

2. Back up first

Close foobar2000, then back up:

  • the foobar2000 profile;
  • the current Columns UI layout or exported FCL;
  • the existing DarkOneJSP3 folder; and
  • the installed foo_jscript_panel3 samples folder.

3. Fresh installation

The package contains two top-level folders:

DarkOneJSP3\
user-components-x64\

Merge both into the directory used by the active foobar2000 profile. Do not copy only one of them, and do not install the same files into multiple profile locations.

Standard installation (non-portable)

By default, a standard foobar2000 v2 installation stores its active profile at:

%APPDATA%\foobar2000-v2\profile\

%APPDATA% normally expands to:

C:\Users\<username>\AppData\Roaming

Merge the supplied folders into the profile directory. The resulting paths should be:

%APPDATA%\foobar2000-v2\profile\DarkOneJSP3\
%APPDATA%\foobar2000-v2\profile\user-components-x64\foo_jscript_panel3\samples\

Paste this path into the File Explorer address bar to open it directly:

%APPDATA%\foobar2000-v2\profile

Do not place the package folders beside foobar2000.exe for a normal non-portable installation. If the profile location was customised, use the actual path represented by %fb2k_profile_path% instead.

Portable installation

A portable installation commonly uses the installation root itself:

<foobar2000>\DarkOneJSP3\
<foobar2000>\user-components-x64\foo_jscript_panel3\samples\

or its profile subfolder:

<foobar2000>\profile\DarkOneJSP3\
<foobar2000>\profile\user-components-x64\foo_jscript_panel3\samples\

Use the structure that matches %fb2k_profile_path% for the active installation.

JScript Panel files

The supplied user-components-x64 tree contains customised JScript Panel sample and helper files. Merge it into the active profile so the files reach the installed foo_jscript_panel3 sample directory.

These enhanced samples are standalone and can also be used by other themes. Existing filenames and legacy entry-script imports are preserved, but retaining a backup is still recommended because the files replace the installed sample tree. See Enhanced Sample Library for the compatibility contract.

Do not delete or overwrite the foo_jscript_panel3 component DLL. Component binaries are not supplied by this package.

4. Building or restoring the Columns UI layout

Recommended: manual layout setup

Recreate the exact hierarchy and custom titles in Layout and Panel Map. This is the recommended setup because it creates component instances directly for the local installation and makes every script assignment visible.

Load these files in the six numbered JSplitter instances:

DarkOneJSP3\jsplitter\loaders\JSplitter 01 - Root.txt
DarkOneJSP3\jsplitter\loaders\JSplitter 02 - Main Columns.txt
DarkOneJSP3\jsplitter\loaders\JSplitter 03 - Info Stack and Tabs.txt
DarkOneJSP3\jsplitter\loaders\JSplitter 04 - Album Art and Spectrum.txt
DarkOneJSP3\jsplitter\loaders\JSplitter 05 - Bottom Controls.txt
DarkOneJSP3\jsplitter\loaders\JSplitter 06 - Display and Waveform.txt

Each loader enables the intended draw mode and imports its maintained external controller script.

Optional FCL convenience

The full package contains a maintainer-exported convenience file at:

DarkOneJSP3\fcl\DarkOneJSP3.fcl

Importing it is optional and is not the primary setup method. FCL files contain component-instance metadata that can vary between installations. After import, verify the complete hierarchy, custom titles and script assignments against Layout and Panel Map. Project tooling does not patch or generate the FCL; a new copy is included only when the maintainer deliberately exports and replaces the convenience snapshot.

When no FCL is present, or when an imported layout does not match the installed components, use the manual layout method above. After confirming either method, export a fresh local FCL for backup.

Recommended queue panel

Use the native Queue Viewer component as the fifth child of DOJSP3.InfoStack and give it the exact custom title:

DOJSP3.Queue

The native component provides complete playback-queue editing, including adding, removing and reordering entries.

Optional scripted queue fallback

A JScript Panel 3 fallback is supplied at:

DarkOneJSP3\jscript\DarkOneJSP3 - Queue Viewer.txt

It provides DarkOne styling, multi-selection, keyboard navigation and safe commands for the source playlist items. JScript Panel 3 no longer exposes the playback-queue mutation functions required for scripted add, remove, reorder or clear operations, so this fallback is not a complete queue editor. Its custom title must still be DOJSP3.Queue.

Required Album Notes title

The fourth child of DOJSP3.InfoStack must:

  • load samples\Album Notes.txt; and
  • use the exact custom title DOJSP3.AlbumNotes.

The standalone samples\MusicBrainz.txt panel may be used elsewhere, but not as the consolidated InfoStack child.

5. Post-install checklist

  1. Restart foobar2000.
  2. Confirm that all six InfoStack tabs can be selected.
  3. Confirm that Album Notes opens without a child-panel error.
  4. Confirm that DOJSP3.Queue contains the native Queue Viewer component, or deliberately uses the optional DarkOneJSP3 scripted fallback.
  5. Confirm that both upper dividers (Black by default) and the lower dividers align.
  6. Confirm that the display and waveform occupy the lower centre area.
  7. Set Quick Search Toolbar to Frame style: None and RGB 30, 30, 30.
  8. Configure Waveform Minibar as described in Configuration Guide.
  9. Open the foobar2000 console and check for [DarkOneJSP3] errors.
  10. Export a working FCL for your own backup.

6. Upgrading and hotfixes

Full-package upgrade

  1. Close foobar2000.
  2. Back up the current installation and layout.
  3. Extract the new full archive over the same root or profile.
  4. Allow files to overwrite.
  5. Restart foobar2000 and review the console.

Hotfix upgrade

Apply a hotfix only to the baseline named in APPLY_HOTFIX.txt. Hotfix archives include every changed documentation file plus changed scripts, metadata and validator files. They do not replace or delete DarkOneJSP3.fcl unless a release explicitly states that a refreshed maintainer export is included.

Persistent JScript Panel and JSplitter properties are normally retained. If a panel still runs cached script text after an update, reload it or restart foobar2000.

Shared bottom-area state is stored under js_data and is retained across upgrades. Older state from DarkOneJSP3\shared\bottom-area-state.txt is migrated automatically. Runtime state and reset-command files are generated locally and are not included in release archives.

7. Rollback

Close foobar2000 and restore the backed-up DarkOneJSP3 and JScript Panel sample folders. Re-import your backed-up Columns UI layout only when the layout itself was changed.


Back to Home · Repository

Clone this wiki locally