CLASSIC analyzes crash logs and game/mod setups for Bethesda titles (currently Fallout 4, with Skyrim support in progress). It provides detailed diagnostics and remediation guidance across hundreds of automated checks.
As of the current codebase, CLASSIC is a native C++ + Rust application:
- GUI:
classic-gui/(Qt 6, C++) - CLI:
classic-cli/(C++) - Business logic:
ClassicLib-rs/(Rust workspace) - C++ ↔ Rust bridge:
ClassicLib-rs/cpp-bindings/classic-cpp-bridge/
Maintained Python integration bindings exist under ClassicLib-rs/python-bindings/ for integration scenarios.
For older historical context, see CLASSIC - Readme.pdf.
Nexus Mods: https://www.nexusmods.com/fallout4/mods/56255
Detailed Buffout 4 installation instructions
- Fallout 4 Script Extender
- Address Library for F4SE Plugins
- Buffout 4 NG (OG/NG/VR), Buffout 4 (OG), or Addictol (OG/NG/AE)
- BSArch (required for some file scan workflows)
- Open the latest release
- Download the
.7zarchive from Assets - Extract with 7-Zip
- Run:
CLASSIC.exefor GUIclassic-cli.exefor CLI
Release bundles include CLASSIC Data/ and required runtime files.
- Visual Studio with C++ Desktop workload (MSVC toolchain)
- vcpkg
VCPKG_ROOTenvironment variable configured (example:C:\vcpkg)- Rust toolchain (
cargo) - CMake 3.25+
- Ninja
- Qt 6 (for GUI)
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Test
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Test
# Selected C++ tests through the wrappers
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Test -CTestName "ThreadPool executes all enqueued tasks"
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Test -IntegrationTestName help,version
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Test -CTestName classic-gui-test-scan-settings-wiringCLI integration tests use crash-log fixtures from sample_logs/FO4 (git submodule). Initialize submodules before running tests:
git submodule update --init --recursivecargo build --workspace --manifest-path ClassicLib-rs/Cargo.toml
cargo test --workspace --manifest-path ClassicLib-rs/Cargo.toml
cargo fmt --all --manifest-path ClassicLib-rs/Cargo.toml -- --check
cargo clippy --workspace --all-targets --all-features --manifest-path ClassicLib-rs/Cargo.toml -- -D warnings# CLI
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1
# GUI
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1Use the build scripts instead of raw CMake commands, raw ctest, or direct test executable launches so VS Dev Shell and C++ test environment setup stay correct.
GitHub Actions workflows:
ci-cpp.yml- C++ CLI/GUI build and test pipeline onwindows-latestci-rust.yml- Rust format/lint/build/testci-typescript.yml- Node bindings parity gates + Bun/Node runtime testsci-python-bindings.yml- Python bindings parity gates + smoke testsbenchmarks.yml- benchmark/performance pipeline
classic-cli/— C++ command-line scannerclassic-gui/— C++ Qt 6 desktop GUIClassicLib-rs/— Rust business logic + bindingsCLASSIC Data/— runtime data, databases, help, graphics
- Keep C++ changes in
classic-cli/orclassic-gui/focused and testable. - Keep core logic in Rust crates under
ClassicLib-rs/business-logic/. - Run relevant C++/Rust checks before opening a PR.
- Keep docs aligned with architecture changes (especially this README and
AGENTS.md).