The open source mapping mod for Forge.
Blaze Map is designed to be easily extensible, providing an API to make it simple for other mods to integrate their own mapping needs. See Cartography as an example.
Blaze Map also works independently on both the client and the server, meaning you can either connect to a server with Blaze Map to centralise the mapping work or you can connect to a vanilla server and have the mapping run purely client side.
To build Blaze Map locally, make sure to have a copy of the Rubidium binary (jar) stored under /libs
.
This is because Rubidium is a build time dependency, even if only an optional runtime dependency.
You can see what version of the Rubidium binary is needed by looking at which version is listed
in build.gradle
under "dependencies".
You may need to create the /libs
folder at the root of the project.
To set up your IDE to be able to access the deobfuscated Minecraft classes, make sure your IDE is configured for both Java 17 and Gradle and then run the setup applicable to your IDE:
gradlew genEclipseRuns
gradlew genIntellijRuns
gradlew genVSCodeRuns
To build and run the local dev server in single player mode (client with integrated server):
gradlew runClient
To build and run just the server:
gradlew runServer
To view all available commands:
gradlew tasks
To build the prod jar:
gradlew jar
The built jar can then be found under /build/libs
.
To build the prod jar and then move it into the mod folder of your Minecraft instance in one command (using CMD or PowerShell on Windows):
# Replace <path-to-mc-instance> with the actual path to your Minecraft instance first
del "build\libs\BlazeMap-*.jar" & gradlew jar && del "<path-to-mc-instance>\mods\BlazeMap-*" && copy "build\libs\BlazeMap-*.jar" "<path-to-mc-instance>\mods"
You can find the logs for the latest run of that server at "<path-to-mc-instance>\logs\latest.log"
.
To test why a mixin isn't working from a prod jar, add the following to the JVM Arguments in the
Minecraft Launcher. This will add mixin debug logs to the normal server logs as well as outputting
the mixed in version of each .class
to .mixin.out
in that instance's folder:
-Dmixin.debug.export=true -Dmixin.debug.verbose=true -Dmixin.debug.countInjections=true
To easily start a local Minecraft server with Forge for the sake of testing how Blaze Map works when only installed client side, you can spin up a local server in docker with the following:
# Replace <minecraft-version> with your desired Minecraft version, eg 1.18.2
docker run -it -p 25565:25565 -e EULA=TRUE -e VERSION=<minecraft-version> -e TYPE=FORGE -e ONLINE_MODE=FALSE itzg/minecraft-server
There are other ways you can start up a local Minecraft server too of course, but this is one of the simplest.