Fast Block Place Mod 1.8.9 Apr 2026
This mod removes the delay between placing blocks, allowing you to place them as fast as you can click (limited only by the server’s entity-action rate). It uses to patch the client-side PlayerControllerMP class, which is the most reliable method for 1.8.9. Project Structure FastBlockPlace/ ├── src/main/java/com/example/fastblockplace/ │ ├── FastBlockPlaceMod.java │ ├── Transformer.java │ └── Plugin.java └── src/main/resources/ └── mcmod.info 1. FastBlockPlaceMod.java – Core Mod Class package com.example.fastblockplace; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import org.apache.logging.log4j.Logger;
dependencies { compile 'org.ow2.asm:asm-debug-all:5.0.3' } Create src/main/resources/META-INF/fastblockplace_at.cfg : fast block place mod 1.8.9
private byte[] patchPlayerControllerMP(byte[] classBytes) { ClassReader cr = new ClassReader(classBytes); ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS); ClassVisitor cv = new ClassVisitor(Opcodes.ASM4, cw) { @Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); if (name.equals("clickBlock") && desc.equals("(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;)Z")) { LOGGER.info("Found clickBlock method – removing block hit delay"); return new PatchClickBlock(mv); } return mv; } }; cr.accept(cv, 0); return cw.toByteArray(); } This mod removes the delay between placing blocks,
package com.example.fastblockplace; import net.minecraft.launchwrapper.IClassTransformer; import org.objectweb.asm.*; FastBlockPlaceMod
public class Transformer implements IClassTransformer {
private static class PatchClickBlock extends MethodVisitor { public PatchClickBlock(MethodVisitor mv) { super(Opcodes.ASM4, mv); }
@Mod(modid = FastBlockPlaceMod.MODID, version = FastBlockPlaceMod.VERSION, clientSideOnly = true) public class FastBlockPlaceMod { public static final String MODID = "fastblockplace"; public static final String VERSION = "1.0"; public static Logger logger;