Skip to content

SteamClientHomebrew/Millennium

Repository files navigation

   Millennium for Steam®

Static Badge Static Badge Static Badge

Millennium is an open-source low-code modding framework to create, manage and use themes/plugins for the desktop Steam Client without any low-level internal interaction or overhead.

If you enjoy this tool, please consider starring the project ⭐


Installation

Automatic Installation (Recommended)

Installing Millennium is only a few steps. See this page for a more detailed guide.

Manual Installation

For normal users, installing via the installers makes the most sense. However when wanting to either develop Millennium, or when the installers do not work, this option can be used. Check our documentation for a guide on how to do this.

 

Core Features

    • TypeScript (React) frontend container in Steam
    • Python backend container in usermode
    • Foreign function interface binding from Python to JavaScript and vice versa
    • Hook modules in the Steam web browser
      • Overwrite/Modify HTTP requests
      • Load custom JavaScript (Native) into web browser
      • Load custom StyleSheets into web browser

 

Adding Spoken Language Support

Take a look here, it quickly covers what files you'll need to edit in order to add your spoken language to Millennium!

 

Creating Plugins & Themes

Creating themes and plugins for Millennium is relatively straight foward. Our documentation goes over the basics of both, and we have examples for both in examples

 

Platform Support

Supported Platforms:

  • Windows (x86/x64/ARM) NT (10 and newer)
  • Linux (x86/x86_64/i686/i386)
  • OSX (Support planned, WIP)

 

Unix File Structure

/
├─ usr/
│  ├─ lib/
│  │  ├─ millennium/
│  │  │  ├─ libMillennium.so # millennium
│  │  │  ├─ libpython-3.11.8.so # dynamically linked to millennium, allows user plugin backends to run
│  ├─ share/
│  │  ├─ assets/ # builtin plugin that provides base functionality for millennium.
│  │  ├─ shims/
├─ home/
│  ├─ $user/
│  │  ├─ .local/share
│  │  │  ├─ millennium/
│  │  │  │  ├─ .venv/
│  │  │  │  ├─ logs/
│  │  │  │  ├─ plugins/ # user plugins
│  │  ├─ .config/
│  │  │  ├─ millennium/ # config files

 

Building from source

Windows

  1. Download and install MSYS2

  2. Download and install Visual Studio Build Tools

  3. Download and install Visual Studio Code

  4. Open the MinGW32 shell and run

    cd somewhere/you/want/to/put/millennium
    pacman -Syu && pacman -S --needed git mingw-w64-i686-cmake base-devel mingw-w64-i686-toolchain
    
    git clone https://github.com/SteamClientHomebrew/Millennium --recursive
    cd Millennium
    ./vendor/vcpkg/bootstrap-vcpkg.sh
  5. Download Millennium's python backend for Windows, and copy the files to %MILLENNIUM_SRC_DIR%/vendor/python

  6. Build Millennium

    code .

    In Visual Studio Code, make sure you have:

    • C/C++ Extension Pack
    • Prettier

    Then use CTRL+SHIFT+B This will build Millennium and all of its submodules. You can then run Steam with Millennium.

Linux

Note

This guide assumes you're using Visual Studio Code to develop. If you're using an IDE like CLion or Code::Blocks, steps are probably similar but they aren't documented here yet.

If you're using just a basic code editor like emacs, vim, micro, etc. you'll need to run build commands manually.

  1. Setup

    In Visual Studio Code, make sure you have:

    * C/C++ Extension Pack
    * Prettier
    
  2. Clone and Setup Repository

    cd somewhere/you/want/to/put/millennium
    git clone https://github.com/SteamClientHomebrew/Millennium --recursive
    cd Millennium
    ./vendor/vcpkg/bootstrap-vcpkg.sh
  3. Build Millennium

    Use CTRL+SHIFT+B

    This will build Millennium and all of its submodules. You can then run Steam with Millennium.