Program that randomizes characters and their weapons in Halo 3 for Halo: The Master Chief Collection. Intended for use in randomized speedruns, or casual playthroughs with random enemies. Feel free to adapt or modify the code. I am more than happy to accept improvements in the form of pull requests.
ATTENTION: This program uses some very exerpimental or "hacky" methods to accomplish it's goals. Please use at your own risk, and know that any project contributors are not responsible for any potential damages. Feel free to go through the source code at your leisure.
- 64-bit Windows Operating System (Should be required for MCC anyway)
- Halo: MCC for PC (Steam only supported currently)
For self-build instructions, see Build Instructions below.
- Go to Releases.
- Download the latest or desired release.
- Place h3randomizer.exe in it's own directory (it will create files).
- Launch the game without Anti-Cheat.
- Run the .exe file as Administrator and it should automatically hook to the game.
- Visual Studio 2022
- Python Development Module
- C++ Development Module
- Python 3.9 or Later (3.10.6 preferred)
- Additional Requirements:
- pymem - used for basic memory access - install via
pip install pymem
- pyinstaller - used to build executable - install via
pip install pyinstaller
- pybind11 - C++ <--> Python binding - installation instructions in link
- tkinter - used for GUI - included in modern python
- pymem - used for basic memory access - install via
Having Visual Studio 2022 with the Python and C++ development workflows and all other requirements, simply open the visual studio solution. I've only set things up for Debug configuration, and x64 is required.
The H3Randomizer_CPP visual studio project has some required include directories that should work if your confgiuration is similar to mine (Python 3.10 installed in %LOCALAPPDATA%/Programs/Python310), however there's always a chance that it won't. Below is a list of things to double-check in the H3Randomizer_CPP Project Properties.
Configuration Properties > C/C++ > General > Additional Include Directories:
{PythonInstallDir}\include
- pybind11\include (if installed with pip, should be in
{PythonInstallDir}\Lib\site-packages\pybind11\include
)
Linker > General > Additional Library Directories:
{PythonInstallDir}\libs
- Right-click "H3Randomizer_CPP in the Solution Explorer and click "Build".
- This places a few files in H3Randomizer/x64
- Copy the generated "/x64/Debug/H3Randomizer_CPP.pyd" file to "/H3Randomizer/" (the python project folder).
- Open a command prompt/powershell in "/H3Randomizer/"
pyinstaller main.spec
- Build should be placed as an exe file in /H3Randomizer/dist