Quickstart
This walkthrough installs Conduit, scaffolds a tiny /hello command-driven game mod, and runs it against a dev Minecraft server. Total time: ~10 minutes.
Prerequisites
Section titled “Prerequisites”- JDK 25 on your PATH (
java -versionshould print25.x.x) - Gradle wrapper (every Fabric template ships one — you don’t need a system install)
- A reachable copy of the Conduit Maven artifacts. For now, that means cloning
zlexo/conduitand running./gradlew publishToMavenLocalonce.
1. Make a Fabric mod
Section titled “1. Make a Fabric mod”Start from the Fabric template mod or scaffold one with mr generate. Make sure your gradle.properties has:
minecraft_version=26.1.2loader_version=0.19.2loom_version=1.16-SNAPSHOTfabric_api_version=0.149.1+26.1.22. Add Conduit dependencies
Section titled “2. Add Conduit dependencies”In your mod’s build.gradle:
repositories { mavenLocal()}
dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" implementation "net.fabricmc:fabric-loader:${project.loader_version}" implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
// Conduit modules — depend on only what you need. implementation "me.zlex:conduit-core:0.8.0+mc26.1.2" implementation "me.zlex:conduit-render:0.8.0+mc26.1.2"
// Bundle them in your jar (Jar-in-Jar) for one-file delivery. include "me.zlex:conduit-core:0.8.0+mc26.1.2" include "me.zlex:conduit-render:0.8.0+mc26.1.2"}3. Register your command
Section titled “3. Register your command”package me.you.hello;
import com.mojang.brigadier.Command;import me.zlex.conduit.teleport.SafeTeleport;import net.fabricmc.api.ModInitializer;import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;import net.minecraft.commands.Commands;import net.minecraft.network.chat.Component;
public class HelloMod implements ModInitializer { @Override public void onInitialize() { CommandRegistrationCallback.EVENT.register((dispatcher, registry, env) -> dispatcher.register(Commands.literal("hello") .executes(ctx -> { var p = ctx.getSource().getPlayer(); p.sendSystemMessage(Component.literal("Hi from Conduit!")); // SafeTeleport handles cross-dim + chunk-load safely. var dest = new net.minecraft.world.phys.Vec3(p.getX(), p.getY() + 50, p.getZ()); SafeTeleport.teleport(p, (net.minecraft.server.level.ServerLevel) p.level(), dest, p.getYRot(), p.getXRot(), arrived -> arrived.fallDistance = 0f); return Command.SINGLE_SUCCESS; }))); }}4. Run
Section titled “4. Run”./gradlew runServerJoin your dev server, type /hello, and you should levitate fifty blocks up safely. That’s Conduit’s SafeTeleport doing the chunk-ticket dance for you.
What to read next
Section titled “What to read next”- Game lifecycle — wire your mod into the phase machine instead of a flat command.
- In-world UI — paint interactive panels in front of your players.
- Architecture — the module dependency stack.