AntiXray-1.2.0.jar
What's new
AntiXray v1.2.0
The honeypot works now.
Three separate bugs meant that on a normal world, obfuscation covered a fraction of what it claimed and detection could barely fire at all. This release fixes all three, and splits the ore field into camouflage and bait so that every valuable ore an X-ray user can see is a trap.
Fixed: obfuscation stopped a few seconds after a player joined
MaxTrapsPerPlayercapped a per-player list of every fake position at 40,000 — but at the default reach one player's field is roughly 100,000 positions- The cap was hit almost immediately, new chunks stopped being obfuscated, and protection only resumed in scraps as the client unloaded chunks
- This is what "fake ores show up in random chunks, not the ones I'm standing in" actually was
- The field is no longer stored. Which rock becomes a fake, which ore is masked, where a section's bait sits — all of it is a pure function of the block position and the surrounding terrain, identical for every player, so a break recomputes the answer instead of looking it up
- Nothing per-player is kept but which chunk sections a client has already been sent
Fixed: MaxY left the surface unprotected
- The old default of
128sits below the surface on ordinary worlds — a player standing at y140 had everything at and above eye level untouched - Now
256 - To be clear about what this knob is: it's a CPU limiter, not what keeps the surface clean. Every fake requires a fully-buried block, so exposed terrain is skipped no matter how high this is set. Lower it only on a strictly-underground server
Fixed: honeypots were nearly impossible to trip
- The break handler checked whether the block was still fully enclosed — but it never is. To break a block you must be able to see its face, so the check rejected essentially every genuine hit
- Traps are now recognised by position alone
New: the ore field has two tiers
The single FakeOrePalette split in two, and that split is what makes detection trustworthy:
| Camouflage | Trap | |
|---|---|---|
| Config | FakeOrePalette, FakeOreDensity | TrapOrePalette, TrapChancePerSection |
| Ores | common metals (copper, iron) | valuable ores (gold, mithril, …) |
| Density | hundreds per chunk | ~one per 12 sections |
| Mining near it | revealed before you reach it | never revealed |
| Breaking it | nothing | honeypot hit |
Real valuables are masked as plain rock and the camouflage field is common-only, so a cheater cannot tell bait from anything else — because there is nothing else.
Changed: honeypot hits are a rate, not a lifetime tally
- Hits used to accumulate forever, so an honest miner who tunnelled blind into a trap once a month would eventually flag themselves
- Hits are now counted inside
HoneypotWindowSeconds(default 30 min), like the mining-rate heuristic already was - What separates a cheater isn't the total — it's how many they find in a short time
HoneypotFlagThresholddrops from4to3to suit the window
Server compatibility is now declared
manifest.jsondeclaresServerVersion: ">=0.5.6 <0.6.0"instead of"\*"- The server enforces this itself: outside the range the plugin is refused at load with an incompatibility message, rather than half-working against an API it wasn't built for
- Hytale 0.6.0 introduces native spectate, which replaces this plugin's custom follow-camera — the range deliberately stops before it
- 1.0.0 and 1.1.0 declared
"\*", so they will happily load on 0.6 and misbehave instead of refusing. Upgrade before you update the server
Also in this release
- One source of truth for the version. The banner, panel title and update check all read the version the server parsed from
manifest.json, which the build fills in fromgradle.properties. A constant in the source could previously drift from the built jar and make the update check compare the wrong number - Status tab reports camouflage and trap ids separately (
Ore ids resolved: 12 camouflage, 8 trap) — a non-zero camouflage count with zero traps means detection can't fire MaxChunksPerTickraised from8to16, so the field keeps up with a player walking- The debug Nearest traps tool reads the recomputed field instead of the removed position list
- Portuguese translations for every new string (
en\_usandpt\_brremain at full key parity) - A
RELEASING.mdchecklist, since the in-game update check depends on the tag matching what the jar reports
Upgrading
- Replace
AntiXray-1.1.0.jarwithAntiXray-1.2.0.jarin your server'smods/folder - Restart
Config: two keys were added (TrapOrePalette, TrapChancePerSection, Detection.HoneypotWindowSeconds) and existing files pick up their defaults automatically — nothing was renamed or removed, and your suspicion data carries over.
Two defaults worth reviewing if your config.json pins them to the old values, because they are the fixes above:
Obfuscation.MaxY— set it to256unless your server is strictly undergroundObfuscation.FakeOrePalette— if yours is still\["Ore\_\*"\], the camouflage field includes valuables and every trap is buried under identical-looking bait, so detection will never fire. Narrow it to the common metals
Requires a Hytale server in the >=0.5.6 <0.6.0 range. Built and tested against 0.5.7.
<sub>Requires a Hytale server. No client mod needed.</sub>
This mod has no additional files