Need X-ray protect

I need protect x-ray from player in server. Because player find ore easy.
Thank you for every comment.

I have some ideas for an X-Ray blocking plugin, but I’m still trying to plan how it’s going to work. Once I have some ideas on that, I’ll add whatever I need to SpongeAPI and start actual work on it. I’m not making any promises, but I’ll try.

Looking forward to this

One potential idea is to spoof world data sent to players to either make all blocks or no blocks diamond ore. The only blocks left un-spoofed would be blocks the player can directly see or blocks 1-2 blocks away from being visible. This way, people using X-Ray clients while mining will either see all diamond or no diamond, but people playing normally wouldn’t notice anything wrong.

Exactly. Only thing is, there’s no Sponge library for packet manipulation.

I suppose you could actually change it’s type and store the old type as attached Data. Just be sure no-one could see it–at least two blocks on every side of it to form a cube. Then store it’s location somewhere, and if a block nearby is broken revert it to normal? Might be memory intensive…

A better idea would be to force them to use the default resource pack. That would deter about 90% of X-Rayers who use a custom resource pack. For those with mods, there’s almost nothing you can do except catch them elsewhere. Maybe check their stone : mineral mining ratio? That would be neat, a plugin that analyzes that for normal players vs cheaters.

There was a popular bukkit plugin that did that. It’d be nice to see one like it here.

How would this work? Most servers do a lot of trading and such.

Blocks of stone mined vs blocks of ores (accounting for placement ratio). Allowing custom thresholds and such. Maybe also take into account where they are finding the ores–the higher % not at the ore spawn level, the more likely the person is using X-Ray. Take into account the usual signs of X-Ray:

  1. Tunnels digging straight to an ore vein. This minimizes the amount of durability lost and time lost. Therefore, the average X-Rayer will have a higher ratio of ores to blocks mined. “There is an average of 3.097 diamond ore per chunk-sized area” according to the wiki. So, if you assume a “chunk-size area” to be 16x16x64 blocks, the average diamond ore to blocks mined ratio would be approximately 0.00018737792, or .018…%. You could even just consider the levels at which diamonds spawn, because most people know that. Diamond ore occurs between levels 5-12, so at 3.097 diamond ores per “chunk sized area”, reduced to consider the areas where it spawns, you are left with 3.097 diamond ores per 1792 blocks (16 blocks x16 blocks x7 levels), so an average ratio of blocks mined to diamond ores of .0017282366 or .17282366%. So you analyze how many blocks in the correct range a player mines and how many diamond ores he finds. In the beginning you have to be generous, but after 1000 or so mined blocks you can be relatively sure about your data. At that point, people with 12% ratios need to be flagged for review by staff (remember, you can NEVER be sure about X-Ray without taking into consideration pathfinding and sidetunnels, so it’s good to have an admin review it first) and people with 75% ratios can say goodbye. This concept can be expanded to all ores.

  2. Most X-Rayers are using a resource pack, so just force the default pack upon them and kick them (like Hypixel does) if they don’t use the pack.

  3. The rest of the X-Rayers likely use other mods like Forcefield against mobs. Make sure to check for that.

This process could significantly reduce the need for staff to be constantly watching UHC games and such.

Definitely not a numbers guy but that makes a lot of sense. Very logical way to look at it. I don’t understand why people cheat to begin with. Sucks the fun right out of the game. Although I find mining to be therapeutic so I guess that makes me a little bias on this particular subject. is one possible reason. It’s the same reason people use offshore accounts and shell companies; they want to think they are above the law and that the law only applies to mortals.

Interesting. Made my life miserable back when I ran a Cauldron server. Even I played legit when I could have totally did whatever I want. I incidentally found by doing that, the good players were more likely to stick around, not too mention call out those who chose to break the rules.

One thing that I would suggest is that you not enforce the default pack. The problem with that is that it will disable normal resource packs, and a lot of people enjoy those. Besides, people with hacked clients won’t be affected anyway, and they are the majority of xrayers.

That would work. Then again, someone could mine just enough stone to stay below the ratio.

Unfortunately, it’s not possible to prevent someone from modifying the client to get around server-side restrictions. They only get kicked because the Minecraft client says “the user rejected the resource pack”. If someone modified the client to say “the user accepted the resource pack” instead, they could get around it.

Maybe. But maybe not.

Well, that’s why you never reveal how your server/plugins work. Worst case scenario: you just make plugin give staff notification about possible X-ray and then they go, verify themselves and ban/don’t ban

PS. For example Valve never revealed how CS:GO ranking works and so far nobody cracked it. Same goes for overwatch (there are some theories, but nobody knows how system works exactly)

Regardless, the point of the system is to make modders expend the same amount of durability and time as normal players. If you had to mine stone to keep your ratio steady (which would involve counting every ore mined, plus you have no idea what the server’s configured threshold would be), you expend the same amount of time and durability as a normal player for the same amount of diamonds. Therefor, you have no advantage and the system has succeeded. Also, this system would flag them for review, not ban them directly.

See my answer.

After an IRC chat, I’ve determined that this system must be absolutely passive to work. That means no attempted force of resource pack.