MapShuffler
Small console utility to enumerate .bsp map files from a directory, shuffle their order, and write the shuffled list to a text file.
Prerequisites
- .NET 10 SDK (the project targets
net10.0).
Build
From the repository root run:
dotnet build MapShuffler/MapShuffler.csproj
Usage
Syntax:
dotnet run --project MapShuffler -- <output.txt> <maps_directory>
<output.txt>: path to the output text file that will be (over)written.<maps_directory>: directory containing.bspfiles (top-level only).
Example:
dotnet run --project MapShuffler -- shuffled_maps.txt /home/user/maps
Behavior notes:
- The program searches the provided directory (non-recursively) for files with the
.bspextension (case-insensitive). - Output contains one entry per line: the map filename with the
.bspextension removed. - The list is shuffled using a Fisher–Yates shuffle and written in UTF-8.
- If there are no
.bspfiles found the program will write an empty file at the specified output path. - The program will create the parent directory for the output file if it does not exist.
- Existing output files are overwritten.
Exit codes:
0— success1— incorrect arguments2— input directory not found99— unexpected error
See the implementation in MapShuffler/Program.cs.
If you'd like different behavior (recursive search, full paths in output, interactive prompts, or one-file-per-map), tell me and I can update the tool.