BioRand 7 is a cloud randomizer and mod-generation toolkit for Resident Evil 7 Biohazard based on the BioRand infrastructure.
This repository contains the .NET randomizer library, command-line tools, data-generation utilities, tests, REFramework Lua scripts, and reverse-engineering notes that support it.
BioRand 7 is a fan-made project and is not affiliated with or endorsed by Capcom. You need a legally owned copy of Resident Evil 7 including all DLCs to use game-derived inputs locally.
BioRand 7 is in active beta development. Item, weapon, inventory, recipe, and several progression-safety systems are already implemented; enemy and chapter-related work is still especially sensitive and should be tested carefully.
For current design notes and planned work, see:
- Generates RE7 randomizer output as a patch PAK, Fluffy Mod Manager ZIP, or extracted
natives/folder. - Supports seeded generation and JSON configuration profiles.
- Randomizes items, key item locations, item drops, bird cages, starting inventory, inventory stack limits, and crafting recipes.
- Emits an offline HTML key-item spoiler with numbered pickup markers on RE7 floor-plan images.
- Includes weapon stat randomization for damage, ammo capacity, and reload speed.
- Includes enemy randomization options for enemy classes, multipliers, placement, health, speed, damage, and scale.
- Adds REFramework artifacts when features require runtime support.
- Provides standalone mod export commands for bundled optional mods.
- Uses embedded, spreadsheet-derived, and generated data so behavior can be tested without a local RE7 install.
For players, use the Steam Windows RT/DX12 version of RE7 with its DLC installed. The older dx11_non-rt branch is unsupported. The SDK and Git requirements below apply to building the tools yourself.
- Close RE7 and back up your saves before changing an installation. Start a new game for a new seed or changed progression settings.
- Download the seed's Patch ZIP. It includes all required shared assets. Extract all its contents into the folder containing
re7.exe, including both patch PAKs when supplied; placing the ZIP there does not install it. Keep the directory structure, includingreframework/autorun/BioRand7.lua, itsBioRand7/modules, andreframework/data/BioRand7/config.json. - When the output includes REFramework scripts, install the RE7 RT version of REFramework so its
dinput8.dllsits next tore7.exe. Most randomizer profiles need this runtime, including randomized weapons and extra enemies. The generated ZIP normally supplies the BioRand scripts, not REFramework itself. - Alternatively, enable the Fluffy Mod ZIP in Fluffy Mod Manager. It also includes the shared assets. Follow the same REFramework requirement. Use one installation method and one seed at a time; disable the old Fluffy seed or remove the previously installed BioRand patch PAKs before switching methods.
Older downloads may still list a separate Additional Assets ZIP. Install it alongside an older Patch ZIP or older Fluffy archive that does not include shared assets, or regenerate the seed to get a complete archive. If an installation hangs when entering particular rooms, first check that all files were extracted, the RT/DX12 game version, and that only one BioRand seed is installed. If the hang persists, provide the seed/config, exact room or transition, Fluffy version and Data/Log.txt when applicable, and whether the same seed loads using the Patch installation after disabling the Fluffy mod.
When upgrading, disable the previous Fluffy seed or remove its BioRand patch PAKs, including any separately installed asset PAK. Remove its BioRand Lua entrypoint/module directory before installing the replacement, including when the new profile does not require scripts. Remove any legacy BioRand managed plugin or autorun script from an older C# installation so two runtimes cannot run together; preserve unrelated mods and plugins. Keep the seed's config, logs, build version, and optional spoilers for support.
To uninstall, disable the Fluffy mod or remove all BioRand patch PAKs supplied by the seed, plus reframework/autorun/BioRand7.lua, reframework/autorun/BioRand7/, and reframework/data/BioRand7/. Remove only files installed by BioRand; do not remove vanilla PAKs or another mod's runtime.
Chapter shuffling is unavailable in public profiles until return routes are validated. Old profiles with it enabled are rejected with an explanation. Generation uses the CSV snapshot embedded in the application by default; the advanced spreadsheet-refresh option is for development and can change an existing seed's results.
- .NET 10 SDK
- Git with Git LFS
- A local Resident Evil 7 install with all DLCs for local setup/mod generation workflows
- Windows is recommended for game-related workflows
Large embedded assets, including src/Biohazard.BioRand.RE7/_Data/silver_birthday_patches.zip, are stored with Git LFS. Install Git LFS before cloning when possible:
git lfs installFor an existing clone, fetch the LFS payloads before building or running tests:
git lfs pullFrom the repository root:
dotnet restore .\biorand-re7.sln
dotnet build .\biorand-re7.sln --no-restore
dotnet test .\biorand-re7.sln --no-build --verbosity normalThe REFramework runtime also has executable Lua tests, independent of the game and baseline PAK:
lua tests/lua/run.luaCI runs these with Lua 5.4. See REFramework Lua validation for the runtime API rules and in-game checks.
CI tests both Debug and Release. Pushes to master and manually triggered release checks require BIORAND_RE7_TEST_PAK_URL and BIORAND_RE7_TEST_PAK_SHA256; a run without PAK-backed tests is not release validation. Fork pull requests can run the tests that do not need game data.
The CLI's generate -o destination includes its runtime files: .pak writes scripts/config beside the PAK, a directory receives the loose game files and runtime, and .zip writes the Fluffy archive with companion downloads beside it. Logs and spoilers stay with that destination. setup and setup --full both extract the baseline required for generation.
Randomizer throughput benchmarks live in src/Biohazard.BioRand.RE7.Benchmarks/ and use the embedded baseline PAK, %USERPROFILE%\.biorand\biorand-re7.pak, or a path supplied through BIORAND_RE7_BENCHMARK_PAK.
Run them from the repository root in Release mode:
dotnet run -c Release --project .\src\Biohazard.BioRand.RE7.Benchmarks\Biohazard.BioRand.RE7.Benchmarks.csprojTo run a single scenario:
dotnet run -c Release --project .\src\Biohazard.BioRand.RE7.Benchmarks\Biohazard.BioRand.RE7.Benchmarks.csproj -- --filter *DefaultProfile*The RealisticProfile scenario uses the checked-in profile under src/Biohazard.BioRand.RE7.Benchmarks/Profiles/. Benchmarks disable dynamic Google Sheets downloads by default; set BIORAND_RE7_BENCHMARK_DOWNLOAD_DATA=1 to include that external fetch cost.
Some runtime data is embedded under src/Biohazard.BioRand.RE7/_Data/. Changes there affect generated seeds, not only tests.
Refresh dynamic CSV data from the Google Sheets spreadsheets:
dotnet run --project .\src\biorand-re7\biorand-re7.csproj -- updateRun data generators:
dotnet run --project .\src\Biohazard.BioRand.RE7.DataGen\Biohazard.BioRand.RE7.DataGen.csproj -- generate config
dotnet run --project .\src\Biohazard.BioRand.RE7.DataGen\Biohazard.BioRand.RE7.DataGen.csproj -- generate areas item_placements item_definitions weapon_definitions enemies
dotnet run --project .\src\Biohazard.BioRand.RE7.DataGen\Biohazard.BioRand.RE7.DataGen.csproj -- generate area_scene_targets -f Json
dotnet run --project .\src\Biohazard.BioRand.RE7.DataGen\Biohazard.BioRand.RE7.DataGen.csproj -- rsz-to-cs app.TypeName --with-enumsGenerated files are written to GeneratedFiles/. Some generators also copy outputs into _Data/.
The key item route graph image is refreshed into docs/key_item_route_graph.png when the DataGen project builds.
src/Biohazard.BioRand.RE7/ Core randomizer library
src/biorand-re7/ Command-line app
src/Biohazard.BioRand.RE7.Benchmarks/ BenchmarkDotNet throughput benchmarks
src/Biohazard.BioRand.RE7.DataGen/ Data and code generators
src/Biohazard.BioRand.RE7/_Data/reframework/ REFramework Lua autorun scripts
src/Biohazard.BioRand.RE7.Tests/ xUnit regression tests
docs/ Notes, roadmap, and research docs
assets/ Project assets and bundled mod assets
Contributions are welcome, especially focused bug fixes, tests, documentation, data corrections, and carefully scoped randomizer improvements.
Start with CONTRIBUTING.md. For issues, use the existing GitHub templates and attach the randomizer ZIP output when reporting crashes or softlocks. Do not attach full vanilla game PAKs, game install dumps, local credentials, or private files.
BioRand 7 would not be possible without a few amazing people and tools:
- IntelOrca's BioRand infrastructure
- Battlezone's REasy
- kagenocookie's REE Content Editor
- praydog's RE Framework
- alphaZomega's many contributions to RE modding
- Silver's spiffy patches for the Jack's 55th Birthday skills
This project is licensed under the MIT License.
