Orebfuscator - Anti X-RAY
- Native Minecraft Version:
- Tested Minecraft Versions:
- Source Code:
- Aleksey_Terzi, ProgrammerDan
Version: 4.4.3 (CraftBukkit 1.9, 1.9.1, 1.9.2, 1.9.4, 1.10, 1.11, 1.12, 1.13, 1.13.1, 1.13.2 )
This plugin is used to counter X-RAY client mods, texture packs, chest radar, and other similar exploits
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.
Be certain to update to 4.4.3! -- Includes critical fixes for 1.13.2 support.
As of 4.4.1, now supports 1.13!
As of 4.3.3, Proximity Hider has been enhanced to use line-of-sight checks, not just proximity! Upgrade today.
Please message us if you'd like any older versions.
- For Bukkit 1.8
- For Bukkit 1.8.3
- For Bukkit 1.8.4-1.8.8
- Note: ProtocolLib 3.6.5 is required for legacy releases.
Latest version is always available as a release on the Github page: https://github.com/lishid/Orebfuscator/releases
Please also download ProtocolLib and install it in the plugins folder.
- Version 4.0.0 or better is required.
- For Orebfuscator 4.0.14 on 1.9.4 servers, build 277 or newer is required.
- For Orebfuscator 4.1.x on 1.10 servers, build 293 or newer is required.
- For Orebfuscator 4.2.x on 1.11 servers, we recommend latest 1.11 stable build.
- For Orebfuscator 4.3.x on 1.12 servers, we recommend 4.3.0 (for 1.12) stable build.
- For Orebfuscator 4.4.x on 1.13 servers, we recommend 4.4.0 (for 1.13) stable build.
- Download link: https://www.spigotmc.org/resources/protocollib.1997/
- 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.
- Hide hidden chests and furnaces until a player can see it.
- Copy "orebfuscator-4.4.3.jar" or latest to your plugins folder
- If you're upgrading from an earlier release (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
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, 1.11, and 1.12!
- DevotedMC for taking over management of the project
- Lishid, for making and maintaining this for so long.
- AFFORESS, major help on code optimization and spout support!
- raphfrk, helped with packet processing
- Many donators!
Release 4.1.14 has significant improvements, please update right away and report any issues. For PaperSpigot users, updating is critical.
Use 4.2.1 or later for 1.11 support!
Use 4.3.0 or later for 1.12 support!
Use 4.4.1 or later for 1.13.x support!
Use 4.4.3 or later for 1.13.2 support!
- A command that generates the world cache for the existing chunks.
- Support for Minecraft 1.13.2 latest builds (CraftBukkit/Spigot/etc)
- Fixes for reported issues during use -- please update
- Support for Minecraft 1.13 and 1.13x (CraftBukkit/Spigot/etc)
- Some enhancements under the covers, including better support for tile entity hiding and state management
- Includes fixes for portions of #164
- NEW FEATURE: Gaze based proximity hiding. If you can't see it due to blocks in the way, it stays proximity hid, regardless of your physical closeness! For full details, read here: PR#16
- New example configs! Find them here: https://github.com/lishid/Orebfuscator/tree/master/Plugin/src/main/resources/resources
- Support for Minecraft 1.12 (CraftBukkit/Spigot/etc)
- #135 : Resolved issue that plugin doesn't work unless you delete the config and force reload and clear cache after startup
- Support for Minecraft 1.11 (CraftBukkit/Spigot/etc)
- Remove ChunkReloader due to performance issues at scale.
- Addressed #66. Limit Cache retention configuration options added.
- Proximity Hider blocks are by default orebfuscated, if both are active.
- Implemented #62. Per World Configuration -- have unique configurations per world.
- Addressed DevotedMC#8. Allow for unique proximity Y height per material hidden.
- Fixed #113. Item frames sometime disappeared.
- Fixed #124. Glitches when used FastAsyncWorldEdit.
- Fixed #125. Prevent obfuscation for NPC, for ex. NPC from plugin Citizens.
- Fixed #128. EntityChangeBlockEvent was not causing block updates.
- Fixing ChunkLoader error: #110
- Improving performance of ChunkReloader
- 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.
- Added new page: https://github.com/lishid/Orebfuscator/wiki/About-deobfuscation-on-block-break
- Various Small fixes
- Fix which might resolves problem described in https://github.com/lishid/Orebfuscator/issues/100
- Config file now supports block names additionally to IDs
- Support for 1.10 (Thanks Asgarioth!)
- Support for all 1.9.x Craftbukkit releases in one jar
- Fixes related to Chunk reload not deobfuscating until movement (post teleport, etc.)
- Point release support for 1.9.4
- Fixed entity list refresh issue
- Fixed failure to deobfuscate along chunk boundaries under specific conditions
- Fixed crash for PaperSpigot servers
- 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.
- Corrected transparent block list. For example, lava blocks marked as transparent and therefore adjacent blocks are not obfuscating anymore
- Improved performance of ProximityHider function
- Fixes teleport / join in the End causing client-side crashes.
- Fixes failure to deobfuscate immediately on join.
Full release notes In Github Release
- Support for Minecraft 1.9.
Legacy Version History
Good news! We've had some "at-scale" with over 100 people online simultaneously. I'm pleased to report that after fixing some performance issues in 4.1.10, Orebfuscator 4.1.14 until latest consumes less then 0.05% of tick time with 100+ players on a fairly modest server machine. You cannot beat that kind of performance, with this feature set, at that kind of load.
That said, if you run a larger server (100+ players), we'd be especially grateful if you could share your timings report with us.
A quick donation is always appreciated
Devoted Patreon or General Inquiry or Devoted's Website
The definitive Anti X-Ray plugin for CraftBukkit
I love this plugin. Stops xray with no affect to normal players gameplay. Whilst some say its too performance intensive I think its worth it. If i had to ask for anything more it would be improvements to performance but i understand this plugin by nature of what it does is performance intensive.
[07:41:34 WARN]: java.io.IOException: No data to read.
[07:41:34 WARN]: at com.lishid.orebfuscator.chunkmap.ChunkReader.readByte(ChunkReader.java:95)
[07:41:34 WARN]: at com.lishid.orebfuscator.chunkmap.ChunkMapManager.readSectionHeader(ChunkMapManager.java:346)
[07:41:34 WARN]: at com.lishid.orebfuscator.chunkmap.ChunkMapManager.moveToNextSection(ChunkMapManager.java:324)
[07:41:34 WARN]: at com.lishid.orebfuscator.chunkmap.ChunkMapManager.moveToNextLayer(ChunkMapManager.java:268)
[07:41:34 WARN]: at com.lishid.orebfuscator.chunkmap.ChunkMapManager.readNextBlock(ChunkMapManager.java:229)
[07:41:34 WARN]: at com.lishid.orebfuscator.obfuscation.Calculations.obfuscate(Calculations.java:171)
[07:41:34 WARN]: at com.lishid.orebfuscator.obfuscation.Calculations.obfuscateOrUseCache(Calculations.java:69)
[07:41:34 WARN]: at com.lishid.orebfuscator.hook.ProtocolLibHook$1.onPacketSending(ProtocolLibHook.java:84)
[07:41:34 WARN]: at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195)
[07:41:34 WARN]: at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149)
[07:41:34 WARN]: at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:588)
[07:41:34 WARN]: at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:564)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ProtocolInjector.packetQueued(ProtocolInjector.java:338)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketSending(ProtocolInjector.java:298)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:367)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector.access$800(ChannelInjector.java:66)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled(ChannelInjector.java:332)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled(ChannelInjector.java:302)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:127)
[07:41:34 WARN]: at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:95)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.NetworkManager.b(NetworkManager.java:200)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.NetworkManager.sendPacket(NetworkManager.java:163)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1462)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerConnection.sendPacket(PlayerConnection.java:1435)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerChunk.sendChunk(PlayerChunk.java:194)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerChunk.a(PlayerChunk.java:128)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerChunkMap.addPlayer(PlayerChunkMap.java:285)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerList.a(PlayerList.java:311)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerList.onPlayerJoin(PlayerList.java:410)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.PlayerList.a(PlayerList.java:180)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.LoginListener.b(LoginListener.java:170)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.LoginListener.Y_(LoginListener.java:66)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.NetworkManager.a(NetworkManager.java:253)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.ServerConnection.c(ServerConnection.java:130)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1118)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:943)
[07:41:34 WARN]: at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:841)
[07:41:34 WARN]: at java.lang.Thread.run(Thread.java:748)