Fast: Block Place Mod 1.8.9
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;
@Mod.EventHandler public void init(FMLInitializationEvent event) { logger.info("FastBlockPlace Mod enabled – block placing delay removed"); } } This patches net.minecraft.client.multiplayer.PlayerControllerMP method clickBlock to remove the 4 tick cooldown ( blockHitDelay ).
package com.example.fastblockplace; import net.minecraft.launchwrapper.IClassTransformer; import org.objectweb.asm.*; fast block place mod 1.8.9
private static class PatchClickBlock extends MethodVisitor { public PatchClickBlock(MethodVisitor mv) { super(Opcodes.ASM4, mv); }
@IFMLLoadingPlugin.MCVersion("1.8.9") public class Plugin implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return new String[]{"com.example.fastblockplace.Transformer"}; } This mod removes the delay between placing blocks,
import java.util.logging.Logger;
@Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { logger = event.getModLog(); logger.info("FastBlockPlace Mod is initializing (1.8.9)"); } FastBlockPlaceMod
@Override public void injectData(Map<String, Object> data) {}
@Override public void visitVarInsn(int opcode, int var) { // Remove the line: this.blockHitDelay = 4; if (opcode == Opcodes.BIPUSH && var == 4) { // Skip the bipush 4 super.visitInsn(Opcodes.POP); // Remove the push LOGGER.info("Patched: removed blockHitDelay = 4"); return; } super.visitVarInsn(opcode, var); }
@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;