Skip to content

evildarkarchon/CLASSIC-Fallout4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,499 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLASSIC (Crash Log Auto Scanner & Setup Integrity Checker)

Overview

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++)
  • Rust workspace shell: repository root (Cargo.toml, Cargo.lock, .cargo/config.toml)
  • Shared/runtime crates: foundation/
  • Business logic crates: business-logic/
  • C++ ↔ Rust bridge: cpp-bindings/classic-cpp-bridge/
  • Node bindings: node-bindings/classic-node/
  • Python bindings: python-bindings/
  • Rust TUI app: ui-applications/classic-tui/

See the Workspace Migration Matrix for old-to-new command, path, and artifact translations.

For older historical context, see CLASSIC - Readme.pdf.

Nexus Mods: https://www.nexusmods.com/fallout4/mods/56255


Requirements

Fallout 4

Detailed Buffout 4 installation instructions

Skyrim (work in progress)


Installation

Option 1 (Recommended): Download prebuilt release

  1. Open the latest release
  2. Download the .7z archive from Assets
  3. Extract with 7-Zip
  4. Run:
    • CLASSIC.exe for GUI
    • classic-cli.exe for CLI

Release bundles include CLASSIC Data/ and required runtime files.

Option 2: Build from source (Windows)

Prerequisites

  • Visual Studio with C++ Desktop workload (MSVC toolchain; optional LLVM clang-cl/lld-link components for clang-cl builds)
  • vcpkg
  • VCPKG_ROOT environment variable configured (example: C:\vcpkg)
  • Rust toolchain (cargo)
  • CMake 3.25+
  • Ninja
  • Qt 6 (for GUI, installed with vcpkg)

Build CLI

pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Compiler clang-cl

The clang-cl option keeps the MSVC ABI target but also directs Cargo cc-rs/cxx_build bridge glue compilation to use clang-cl instead of the default cl.exe.

Build GUI

pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Compiler clang-cl

Build with tests

pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Test
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Test
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Test -Compiler clang-cl
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Test -Compiler clang-cl

# 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-wiring

CLI integration tests use crash-log fixtures from sample_logs/FO4 (git submodule). Initialize submodules before running tests:

git submodule update --init --recursive

Development quick reference

Rust workspace (repo root)

cargo build --workspace
cargo test --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings

Binding parity quick reference

# From node-bindings/classic-node
bun run parity:gate

# From repo root
python tools/python_api_parity/check_parity_gate.py --repo-root .
python tools/cxx_api_parity/check_parity_gate.py --repo-root .
python validate_stubs.py --rust-dir .

Need the full old-to-new mapping? Start with the Workspace Migration Matrix.

C++ apps

# CLI
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1
pwsh -ExecutionPolicy Bypass -File classic-cli/build_cli.ps1 -Compiler clang-cl

# GUI
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1
pwsh -ExecutionPolicy Bypass -File classic-gui/build_gui.ps1 -Compiler clang-cl

Use 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. When -Compiler clang-cl is selected, the scripts also pass clang-cl to Cargo cc-rs build scripts for the CXX bridge glue.


CI

GitHub Actions workflows:

  • ci-cpp.yml - C++ CLI/GUI build and test pipeline on windows-latest for MSVC and clang-cl
  • ci-rust.yml - Rust format/lint/build/test
  • ci-typescript.yml - Node bindings parity gates + Bun/Node runtime tests
  • ci-python-bindings.yml - Python bindings parity gates + smoke tests
  • benchmarks.yml - benchmark/performance pipeline

Repository layout

  • classic-cli/ — C++ command-line scanner
  • classic-gui/ — C++ Qt 6 desktop GUI
  • foundation/ — shared runtime and support crates
  • business-logic/ — Rust business logic crates
  • cpp-bindings/classic-cpp-bridge/ — C++ bridge into Rust
  • node-bindings/classic-node/ — Node/Bun bindings
  • python-bindings/ — Python bindings and parity artifacts
  • ui-applications/classic-tui/ — Rust TUI app
  • CLASSIC Data/ — runtime data, databases, help, graphics

Contributing

  1. Keep C++ changes in classic-cli/ or classic-gui/ focused and testable.
  2. Keep core logic in Rust crates under business-logic/.
  3. Run relevant C++/Rust checks before opening a PR.
  4. Keep docs aligned with architecture changes (especially this README and AGENTS.md).

Migration note: older docs may still mention ClassicLib-rs/...; treat those as historical only and use the Workspace Migration Matrix for the live repo-root contract.

About

Crash Log Auto-Scanner for Buffout 4. Script that scans crash logs generated by Buffout 4 and provides troubleshooting advice depending on what it finds.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 68.4%
  • Python 14.7%
  • C++ 6.9%
  • TypeScript 5.3%
  • PowerShell 3.4%
  • CMake 0.7%
  • Other 0.6%