Demonstration 1

Orebfuscator - Anti X-RAY:

For all releases of 1.9/1.9.1/1.9.2/1.9.4/1.10: Version 4.1.4

Now with support for CraftBukkit 1.9/1.9.1/1.9.2/1.9.4/1.10!

This plugin is used to counter X-RAY Client mods.

It modifies data that are sent to clients to hide blocks of your choice, such as Ore, chests, dungeons, etc.

It does not manipulate blocks in the world file, thus is safe to use.

ProximityHider is a feature that hides chests that are far from players.


Configuration Guide





Please read compatibility information before downloading as not all releases work with all versions of CraftBukkit.

Latest version should be on BukkitDev, or as a release on the Github page: https://github.com/lishid/Orebfuscator/releases

Please also download ProtocolLib and install it in the plugins folder.


  • Advanced algorithm that hides ore, chest and and anything you specify in the configuration
  • Spout compatible, but optional
  • No modifications to CraftBukkit.jar is needed
  • Customize the blocks you want to hide
  • HIDES DUNGEONS and other blocks that are in the dark
  • Different hiding mode, or scrambling.
  • Extensive configuration. Change updating methods depending on your bandwidth and processing speed.
  • Hide hidden chests and furnaces until a player is close to it.



  • Copy "orebfuscator-v4.1.4.jar" to your plugins folder
  • If you're upgrading from Orebfuscator.jar, move the contents of the "Orebfuscator3" folder to the "Orebfuscator4" folder
  • Restart your server.


See this: https://github.com/lishid/Orebfuscator/wiki


See this: https://github.com/lishid/Orebfuscator/wiki


See this: https://github.com/lishid/Orebfuscator/wiki

Source Code

Here you go! (Hosted on Github) - please post issues and requests for help there


  • This plugin utilizes Hidendra's plugin metrics system, which means that anonymous information of your OS and setup will be collected and sent to mcstats.org
  • Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.


  • Aleksey_Terzi, single-handedly updating to CraftBukkit 1.9!
  • DevotedMC for taking over management of the project
  • AFFORESS, major help on code optimization and spout support!
  • Lishid, for years(!) of maintaining this plugin, and MarioG1 for recent patch support
  • raphfrk, helped with packet processing
  • Many donators!


  • See the issues page for any outstanding problems.


  • A command that generates the world cache for the existing chunks.


Version 4.1.4
  • Improving performance of ChunkReloader
Version 4.1.2
  • It is now possible to use Worlds list either as blacklist (i.e. all worlds are subject for obfuscation excluding listed) or as whitelist (i.e. only listed worlds are subject for obfuscation)
  • Fixed bug with using ProximityHider and Signs. It is now possible to add WALL_SIGN and SIGN_POST to ProximityHider obfuscation.
  • Updated wiki so commands and configuration pages are matching to the current Orebfuscator.
Version 4.1.1
  • Various Small fixes
  • Config file now supports block names additionally to IDs
Version 4.1.0
  • Support for CB 1.10 - thanks Asgarioth!
Version 4.0.14
  • Single jar supports all releases of 1.9.x now!
  • Some chunk reload issues are corrected (on teleport, etc.)
  • Add support for 1.9.4 - this release does not support prior versions.
Version 4.0.12
  • Fixed entity list reload issue
Version 4.0.11
  • Fixed failure to deobfuscate along chunk boundaries under specific conditions.
Version 4.0.10
  • Fixed crash for PaperSpigot servers
Version 4.0.9
  • Fixed crash when chunk section (16 x 16 x 16) has more than 127 different block types
  • Implemented different "transparent block" lists for Engine Mode 1 and Engine Mode 2. For now only difference is with lava block, for mode 1 it is non-transparent, for mode 2 it is transparent.
  • Implemented possibility to specify which blocks are transparent and not in the config file, sections: TransparentBlocks and NonTransparentBlocks.
  • Fix which may have solved java.util.ConcurrentModificationException
  • Fix for phantom blocks (visible after chunk reloaded) when player is digging straight line on the chunk border.
Version 4.0.7-beta
  • Corrected transparent block list. For example, lava blocks marked as transparent and therefore adjacent blocks are not obfuscating anymore
  • Improved performance of ProximityHider function
Version 4.0.5-alpha
  • Fixes teleport / join in the End causing client-side crashes.
  • Fixes failure to deobfuscate immediately on join.
Version 4.0.3-alpha
  • Updated to MC1.9.

Full release notes: In Github Release

Version 3.0.5
  • Updated to MC1.8.3.

Full history: https:github.com/lishd/Orebfuscator/wiki/Version-History




CPU testing with Initial radius and Caching: (for legacy versions)


A quick donation is always appreciated :D

Devoted Patreon or General Inquiry



You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of MCL0stman MCL0stman Oct 22, 2013 at 18:35 UTC - 0 likes

    Sent Lishid an example exploit for orebuscator a few days back. Had not yet heard from them. Posting here as a tickle reminder. Would be fine posting example exploit code privately to Lishid if requested.

  • Avatar of lishid lishid Oct 21, 2013 at 18:18 UTC - 0 likes

    @Bodyash: Go

    Nope, that mod is useless against Orebfuscator.

  • Avatar of lishid lishid Oct 19, 2013 at 02:03 UTC - 0 likes

    @Lord_Bob_Ross: Go

    You need ProtocolLib plugin to work with Spigot.

  • Avatar of Lord_Bob_Ross Lord_Bob_Ross Oct 18, 2013 at 19:37 UTC - 0 likes

    I have a crash error when players login to the server.

    2013-10-18 14:29:35 [SEVERE] Could not pass event PlayerJoinEvent to Orebfuscator v1.9.7
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    	at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30)
    	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478)
    	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463)
    	at net.minecraft.server.v1_6_R3.PlayerList.c(PlayerList.java:207)
    	at net.minecraft.server.v1_6_R3.PlayerList.a(PlayerList.java:103)
    	at net.minecraft.server.v1_6_R3.PendingConnection.e(PendingConnection.java:138)
    	at net.minecraft.server.v1_6_R3.PendingConnection.d(PendingConnection.java:48)
    	at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:139)
    	at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:594)
    	at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240)
    	at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:483)
    	at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:415)
    	at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.ClassCastException: org.spigotmc.netty.NettyNetworkManager cannot be cast to net.minecraft.server.v1_6_R3.NetworkManager
    	at com.lishid.orebfuscator.internal.v1_6_R3.PlayerHook.HookNM(PlayerHook.java:41)
    	at com.lishid.orebfuscator.hook.OrebfuscatorPlayerHook.onPlayerJoin(OrebfuscatorPlayerHook.java:45)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    	... 14 more
  • Avatar of mrcrafter3000 mrcrafter3000 Oct 16, 2013 at 21:10 UTC - 0 likes

    @KleinesGumi: Go

    Got the same problem

  • Avatar of KleinesGumi KleinesGumi Oct 12, 2013 at 10:39 UTC - 0 likes

    2013-10-12 12:31:17 [SEVERE] Exception in thread "Orebfuscator Processing Thread" 2013-10-12 12:31:17 [SEVERE] java.lang.OutOfMemoryError: Java heap space 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagIntArray.load(SourceFile:29) 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101) 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTTagCompound.load(SourceFile:38) 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.b(SourceFile:101) 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTBase.a(SourceFile:89) 2013-10-12 12:31:17 [SEVERE] at net.minecraft.server.v1_6_R3.NBTCompressedStreamTools.a(SourceFile:75) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.internal.v1_6_R3.NBT.Read(NBT.java:100) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.cache.ObfuscatedCachedChunk.Read(ObfuscatedCachedChunk.java:86) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.obfuscation.Calculations.Obfuscate(Calculations.java:259) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.obfuscation.Calculations.ComputeChunkInfoAndObfuscate(Calculations.java:214) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.obfuscation.Calculations.Obfuscate(Calculations.java:76) 2013-10-12 12:31:17 [SEVERE] at com.lishid.orebfuscator.hook.ChunkProcessingThread.run(ChunkProcessingThread.java:123)

  • Avatar of lishid lishid Oct 07, 2013 at 23:32 UTC - 0 likes

    @iGamingStudioX: Go

    There used to be one, but then it got deprecated as you can disable stuff in the main plugin and get the same effect. For best performance go get Spigot, which has a built-in light version of Orebfuscator.

    to expose 2 layers, you can set InitialRadius to 2, but that will consume more CPU.

  • Avatar of iGamingStudioX iGamingStudioX Oct 07, 2013 at 23:28 UTC - 0 likes

    Could you make the stripped down version available again? Many small server could use Orebfuscator to prevent X-rayers but they just can't afford all the speed and RAM. I suggest that you make one that can be chose from mode 1f and 2 and can set the height Orebfuscatoon occurs (Like below sea level) and what blocks will be Orebfuscated. I think the random blocks reappearing can be fixed by exposing blocks behind the first layer that is exposed to the player. I hope you can make the stripped down version with the core only for lightweight servers. Thanks!

  • Avatar of lishid lishid Oct 07, 2013 at 16:55 UTC - 0 likes

    @siemaeniu500: Go

    It's a stripped down version with only the core obfuscation algorithm.

    Mode 2 doesn't take more CPU. maybe like 0.1% more than mode 1.

    Last edited Oct 07, 2013 by lishid
  • Avatar of siemaeniu500 siemaeniu500 Oct 07, 2013 at 16:43 UTC - 0 likes

    @lishid: Go

    In spigot what version of orebufoscator is implemented? Light or full? And mode 2 in spigot will take a lot of cpu ?