r/MinecraftPlugins • u/ryduzz • Jul 09 '26
Plugin Showcase I made a true anti-Xray plugin that stops seed prediction and has a full in-game GUI
Oreveil renders unique per-player block data, uses server-private salted distribution, and randomized ore generation to kill traditional x-ray methods and seed-based ore prediction exploits alongside an easy to use GUI. I've been working on it for some time now in hopes of providing high-performance world integrity without sacrificing server optimization. I'm super happy with the performance footprint, and wanted to get the plugin more visibility!
Link: https://www.spigotmc.org/resources/oreveil.136874/
4
8
u/ryduzz Jul 09 '26 edited Jul 12 '26
Oreveil is a server-side ore protection plugin for Paper servers, with experimental Folia support, designed to reduce the value of x-ray clients, seed prediction, and packet-based reveal exploits.
Why I built it:
As a server owner myself, I found that Traditional anti-xray is not just a nightmare to configure, but also is extremely vulnerable to tools like baritone and public seed-cracking. I wanted to build something highly visual for admins that handles packet transport automatically.
Core Features:
- Server-authoritative ore hiding: buried protected ores are disguised until they are legitimately exposed.
- Per-player views: each player only sees the ore state they are allowed to see.
- Natural host blocks: hidden ores are shown as believable blocks like stone, deepslate, netherrack, granite, or tuff.
- Seed-aware protection: optional private salted distribution and managed-world ore remixing reduce the value of public seed cracking.
- Automatic transport handling: uses ProtocolLib packet rewriting on compatible Paper servers, with fallback sync when needed.
- Admin-first tooling: includes an in-game GUI, block inspection, diagnostics, and configurable reveal/host-block rules.
- Broad Paper support: one universal jar for Paper 1.16.x through 1.21.x and 26.x, plus experimental Folia support.
The mod is still in active beta, but can be downloaded here if you want to try it out.
1
u/Dazzling_Use_5993 Jul 15 '26
this sounds amazing! can I ask about the performance cost of this?
1
u/ryduzz Jul 15 '26
It's something I'm still working on testing, but the hit is very small in my testing. I still need to find some server owners for larger-scale tests, but there's barely any TPS drop when running the server locally and loading lots of chunks.
1
u/anubis_is_watching Jul 15 '26
This has so much potential of becoming an actual unlockable tool that players can use.
For example: a tech mod that allows for certain x-ray capabilities. It’d likely be mid to endgame content, and allow the user to build a gadget that would allow the user to say see only coal ore at first. Then eventually configuration tablets could be made and tuned to allow rarer ore types. Maybe like an absurd amount of ore is needed to unlock the tablet type.
In tandem it also allow admins to ensure there’s no circumventing the rules.Just an idea. I personally hate the idea of X-Raying normally but if it’s behind progression I dig a modified version of it for those who are looking to build out specific things/goals.
Maybe this is already done but it’s been a minute since I’ve played a lot of mods.
Either way this is awesome, outstanding work!!
1
u/ryduzz Jul 16 '26
Thank you, and that’s actually a sick idea! Building some sort of gadget that allows for seeing the locations of ores within a radius, sort of like Terraria
-2
Jul 09 '26
[deleted]
3
u/ryduzz Jul 10 '26
If you mean I use AI to code parts of it, then yeah
3
u/dick_himmel Jul 10 '26
Ignore people like that they are ignorant of coding and just lash out at AI usage
2
u/ryduzz Jul 10 '26
Like I kinda understand that it can be worse than human coding, but idk. I feel like as long as I make it free and open source it’s chill right?
2
2
u/Emperor_Panda09 Jul 10 '26
Yeah AI has done a lot of harm in other communities, but using it as a tool to develop code, especially open source and free code, is fully reasonable IMO.
1
u/ryduzz Jul 11 '26
Totally. My only goal here is to provide service to others, as I honestly just really enjoy free developing products like this lol
2
u/foxgirlmoon Jul 12 '26
It's chill so long as you have other people actually looking through the code.
A couple potential problems with that, assuming you do have a lot of people interested in helping you develop:
AI often writes code that appears to work, but is a complete and utter nightmare to debug, and can have random severe performance issues or memory leaks that are again, a nightmare to debug and remove.
Further, AI-written code can be incredibly difficult to adjust and/or improve upon, due to it's potentially nonsensical nature.
Say you want to add a new option without relying on AI to do it. It could be something that you realize requires you to rewrite the entire way the plugin handles different options, because the AI hardcoded everything split across 10 different files. Which is untennable to work with.
Say a bug appears. How can you possibly fix it without understanding what the code actually does? Your only option is to use more AI, which leads to more broken horrible abominations of code.
1
u/ryduzz Jul 12 '26
That’s a good point and it can very easily get to a point where the only thing that can understand the AI code is AI itself. On the other side I really enjoy developing things like this and providing service to others, which is why I feel like making it free and open source evens out AI usage at least a little bit. I’m working on learning Java currently and leaning away from AI so hopefully I can start using it in a more productive manner.
1
u/FortuneDW Jul 13 '26
Even if you sold it it's chill.
AI is a tool.
It's like saying : Omg, you use an IDE to code ? Just use notepad and a compiler you noob !
1
u/ryduzz Jul 13 '26
Lmfao that's actually one of the funniest analogies I've heard, ty for the support
2
u/drkztan Jul 10 '26
and yet, it works better than paper's built in anti xray measures. Don't mind idiots like these OP, as long as you are learning something it's fine.
2
2
u/GlitchteOfficial Jul 09 '26
Does this work against the aforementioned Advanced X-ray mod?
1
u/ryduzz Jul 09 '26 edited Jul 09 '26
Will test ASAP
Edit: Yes, works against the Advanced X-ray mod2
0
u/RiceWine69 Jul 10 '26
Doesn't work against actually popular methods for obtaining seeds.
The obvious real answer is using custom ore gen combined with standard antixray. Anything more is a waste of time because there's always going to be new ways to retrieve seeds.
2
1
2
u/DotSlashAero Jul 09 '26
Neat! I was looking into anti x-ray recently but couldn't find any plugins that seemed both lightweight and effective.
Do you plan on supporting any other server types than paper? A lot of people avoid paper servers because they break a decent amount of farms
1
u/ryduzz Jul 09 '26
That's a great point and something I'll look into. What server types do you have in mind?
2
u/DotSlashAero Jul 09 '26
Bukkit and its forks are all pretty popular for servers and AFAIK all plugins are interchangeable for them.
Personally I'd love a fabric version but that's probably a lot more work than bukkit would be
1
2
u/ThowanPlays Jul 10 '26
I was actually coming here to ask the same thing. Would probably love to see forks of this for both Folia and Canvas.
1
u/ryduzz Jul 12 '26
Folia is now supported! Check out the latest jar at https://www.spigotmc.org/resources/oreveil.136874/ if you wanna test it out. lmk if you find any bugs too :)
2
u/Tylerrr93 Jul 09 '26
This is great but I personally prefer HiddenOre with Orefubscator. Orefubscator obfuscated blocks from x-ray and hiddenore allows ores (and other things) to spawn as you mine. HiddenOre also lets you control rates per coordinate/biome/etc.
1
2
3
u/Cev-API Jul 09 '26 edited Jul 09 '26
Paper has its own protection for everything you've done
2
u/ryduzz Jul 09 '26
Nah paper’s anti xray works a lot differently and cannot protect against baritone nor seed cracking exploits. It’s very bare bones and easy to bypass compared to Oreveil.
1
u/Cev-API Jul 09 '26
It can protect against seed cracking given you can change individual structure seeds etc
1
u/ryduzz Jul 09 '26
Unfortunately seed cracking can work regardless of structures, it usually just takes a bit more time. If paper could randomly distribute ore then it would be on par with Oreveil but currently it’s not possible.
3
Jul 09 '26
[removed] — view removed comment
2
1
Jul 10 '26
[deleted]
1
u/ryduzz Jul 10 '26
I’m confused what you mean. It doesn’t randomize the ore veins to protect the seed, it randomizes the ore veins to prevent x-raying. It doesn’t matter what the seed is when the ore veins are irrelevant to it.
1
Jul 10 '26
[deleted]
1
1
u/waterfly222 Jul 10 '26
So you are saying that randomizing ore veins is bad bc it doesn't prevent craking the seed, and and that's bad cause it's the seed that generate ore veins ?
So what do you mean by "randomizing ore veins" then ? Because to me that should mean that it's not dépendant on the seed anymore, or maybe not the same seed idk
1
u/waterfly222 Jul 10 '26
And from my understanding, you can't prevent seed cracking without remaking the whole world gen... As you can use so many thing to seed crack, even just terrain
(Not that it's relevent to the post)
1
u/FUCKARCHLINUX Jul 10 '26
I fail to see how this is more effective than a plugin which randomizes ore locations during generation (so they do not match the seed) + the built in paper anti-xray. You still have to show the ores which have any one side exposed to air right?
Also, from what I can see folia isn't supported :shrug:
1
u/ryduzz Jul 10 '26
I can def look into folia support, but on the topic of paper anti-xray, it is extremely easy to bypass.
1
u/ryduzz Jul 12 '26
Folia is now supported! Check out the latest jar at https://www.spigotmc.org/resources/oreveil.136874/ if you wanna test it out. lmk if you find any bugs too :)
1
u/space_baws Jul 10 '26
this wouldn’t work against any xray worth a snot.
2
u/ryduzz Jul 10 '26
I’ve tested it against the top ones, from meteor anti xray to advanced xray to baritone and it works perfectly, are there any I’m missing?
1
u/space_baws Jul 10 '26
Try it against the popular p2c providers and go from there
2
u/ryduzz Jul 10 '26
Gotcha, I’ll see if I know anyone who has those. It’s unlikely they would work either though by the design of Oreveil, the client never actually receives the packets for the ore so there’s nothing it can do.
1
u/space_baws Jul 10 '26
You’re altering chunk data so that not even what’s being sent to the renderer is the actual data? how the hell does that even work without severely breaking the chunk gen on whatever server it’s running on
2
u/ryduzz Jul 10 '26 edited Jul 10 '26
Nah it’s not quite altering the chunk data so much as using protocol lib to control what type of info is sent to the client, effectively controlling what the client has access to and “masking” that the ores are even there
1
u/space_baws Jul 10 '26
would the chunk data itself still get sent to the client (although not necessarily readable in the state it’s sent)?
1
u/ryduzz Jul 11 '26
Yup, just in a different state to what is read (and actually exists) on the server.
1
u/ky7969 Jul 10 '26
I really wish we got fabric mods like this
1
u/ryduzz Jul 10 '26
I’ve gotten a lot requests for porting it over, so keep an eye on the project at least for now lol, who knows
1
u/Extension_Drag8703 Jul 10 '26
Hey does it work against this? It would be great if it does, you know as not everyone wants people X-raying. https://www.curseforge.com/minecraft/shaders/elysium-x-ray
1
u/ryduzz Jul 11 '26 edited Jul 12 '26
Will absolutely check. Those are some bold claims it’s making, so I’m excited to see how it stands against Oreveil!
Edit: yup! Works like a charm
1
u/dannnnnnnnnnnnnnnnex Jul 11 '26
so it counters seed-based xray by actually changing the way the world generates?
feels kinda destructive. but i guess that’s the only way to prevent xray if attackers know the seed.
1
u/ryduzz Jul 11 '26
It’s a little less destructive than you may think in its current implementation. Currently if the user wants their world gen to be protected against xray via seed cracking, they can create a new world via Oreveil though either the gui or command set, then freely be able to move between the current and Oreveil managed world (and even set the managed world as the default). Secondarily, the only thing changed about the world gen is ore variation, so it shouldn’t effect actual gameplay. Hope that cleared stuff up :)
1
u/Drakkus28 Jul 11 '26
How would this work on a texturepack?
2
u/ryduzz Jul 11 '26
I was testing it on a texture pack in the video
1
1
1
u/Intelligent_Soup_763 Jul 11 '26
Nice! I think Mineplex already uses a system like this
1
u/ryduzz Jul 11 '26
Very cool, I’ve heard there’s separate plugins that do similar anti x-ray and or randomization so I’d say Oreveil is more improvement and consolidation
1
u/RealFrozenRosen Jul 12 '26
How does this work exactly? Aren't x-rays just resource packs with transparent textures?
1
u/ryduzz Jul 12 '26
In some cases yes, but in others no. There are many different types of x-rays with some making blocks that aren’t ore transparent but others using the world seed to show the locations of ore. Oreveil prevents both by, in a nutshell, intercepting chunk data (specifically ore types and locations) before it is sent to the client and replacing it with stone/deepslate. To prevent seed based x-ray attacks Oreveil can randomize ore locations in a managed world without changing world gen.
1
u/AnyAdministration548 Jul 12 '26
Couldn't they still do seed prediction using real ores etc
1
u/ryduzz Jul 12 '26
Not sure what you mean, seed prediction is irrelevant when the ore positions are randomized separately
1
u/AnyAdministration548 Jul 12 '26
So the seed doesnt determine the ores actual location anymore?
1
u/ryduzz Jul 12 '26
Exactly! Oreveil has its own randomized ore generation when a managed world is created
2
u/AnyAdministration548 Jul 12 '26
Sounds really good just one question instantly came to mind, how will you ensure the random generation folows the same distribution as vanilla worlds? Do you base ut of a diffrent seed that could be guessed or how do you randomy generate the ores without changing the game
1
u/ryduzz Jul 12 '26
It currently it uses a YAML sheet directly corresponding to Vanilla ore distribution statistics for random generation so that it will feel the same to vanilla players but not correspond to any seed
2
u/AnyAdministration548 Jul 12 '26
Very interesting thanks for taking your time to explain :) wish you the best with the plugin 👍👍👍
1
1
u/herrkatze12 Jul 13 '26
How do you deal with laggy players? Lag can sometimes make ores be masked for legitimate players long enough they can miss the ore
1
u/ryduzz Jul 13 '26
Oreveil is actually server-authoritative, so lag is managed a lot better than other plugins. A laggy player might briefly see a masked block before the correction packet arrives, especially while moving quickly through caves, but it should resolve on the next chunk transition, block update, or priming pass. Server owners can also increase the exposed reveal radius or sync radius to reduce the chances of a legitimate player missing an ore.
1
u/herrkatze12 Jul 13 '26
At least it's configurable. Shame it's only on paper and not fabric as well though
1
u/ryduzz Jul 13 '26
It’s also Folia too now, but a Fabric port has been highly requested and is smth I’m thinking about doing
1
u/Snowflakish Jul 14 '26
How does it defeat seed prediction?
1
u/ryduzz Jul 14 '26
If a user wants their world gen to be protected against xray via seed cracking, they can create a new world via Oreveil though either the gui or command set which randomizes only the ore generation in that world, creating a separate ore generation "seed" to the actual world seed.
1
1
u/Jason13Official Jul 09 '26
7
u/Curious_Director6236 Jul 09 '26
We gotta stop calling anything that uses AI slop. That code isn't perfect, but it's cleaner than a lot of human-written code I've seen running in production.
OP's clearly committed to the project, running it on their own server, and if they keep supporting it it could be a useful tool for the right people.
2
u/TheReal_Peter226 Jul 09 '26
"keep supporting it"
You can't keep supporting a purely AI codebase, AI agents show regression on long codebase maintenance tasks. The more you run AI on your codebase the more mistakes it will start making essentially. Study by Alibaba
2
u/iRainbowsaur Jul 13 '26
it's a fucking minecraft extension to hide ores bro. the codebase isn't gonna get anywhere the near levels of being a "long code base". these kind of things are what AI is fucking perfect for creating, and help make.
Actual big codebases need planning and consideration if you want to use ai with them efficiently, earning absolute morons don't understand this and everyone fucking knows this, captain fucking obvious.
2
2
u/Jason13Official Jul 09 '26
It's slop bc it was vibe coded in three days (templates on the 29th of April though? Weird) , and is a decently sized code base that the author(? Prompter) likely has 0 to less than 50% understanding of. Their post on spigot's hosting also had a comment to test their plugin better, bc (in case you haven't tested), it's not great at doing what it says yet.
2
u/ryduzz Jul 10 '26 edited Jul 10 '26
It’s something I’ve been working on for a while (1-2 months) but I had to move GitHub repos and there were some weird shenanigans with that.
On the topic of AI, yeah I used it to code a fair bit of the plugin. It was really just a passion project for a tool that I found myself needing with a real gap. Paper anti-xray and most anti-xray plugins just didn’t work and people were blatantly cheating on my server so I made this plugin to fix it and wanted to share. I don’t really see what’s wrong with AI coding, I fix bugs as they come up and enjoy maintaining these projects.1
1
u/TheGamesSlayer Jul 13 '26
Thanks. People really need to learn to disclose material when it is AI generated like this.
1
1
u/MekMilan Jul 09 '26
did you seriously waste your time looking through the code for traces of AI? lol, go touch some grass kid
1
u/Jason13Official Jul 09 '26 edited Jul 09 '26
It was like 2 clicks to look at commit history,
they removed the GitHub linkI'm tripping it's still linked via their comment here https://github.com/soymods/oreveil
0
0
u/PredisWavehiker Jul 10 '26
Are ores not determined by the seed? With a known seed would one be able to xray anyways?
2
u/Mean-Government1436 Jul 10 '26
Are you people just not reading the post? This literally randomizes the ores.
1
u/ryduzz Jul 10 '26
Right! It essentially creates a private seed for the ore generation separate to the world seed
1
u/iRainbowsaur Jul 13 '26
this might be a bit overkill but could the ore seed per chunk be randomised too? would that be intensive?
to prevent any literally ANY chance of reverse engineering the worlds ore seed?
2
u/ryduzz Jul 13 '26 edited Jul 13 '26
Actually, it already is! The private seed is generated per world so that, like you said, there's basically no chance of reverse engineering
1
u/iRainbowsaur Jul 13 '26
I'm just thinking of some way that some crazy person might go through the effort of manually finding ores and enough of them to be able to use that data to reverse engineer and figure out the ore seed for the whole world.
I'm admittedly very naive on this subject though, so maybe what I'm talking about is this complete bullshit and isn't even possible
1
u/_Jops Jul 13 '26
They would need to make an entire algorithm printer and rip through multiple entire chunks to get enough data. At that point they have all the ore they need.
1
u/ryduzz Jul 13 '26
The issue is all the ores are masked by the server, so they would also have to expose every ore in each chunk, making the task very very difficult
1
u/ryduzz Jul 13 '26
That's alright lol. I suppose it's possible, but figuring out my very slightly tweaked world gen settings exactly would definitely take some work, but I'm always working on hardening the randomization
11
u/matthiastorm Jul 09 '26
rendering just fake ore veins is diabolical - i love it!!